ошибка su -session-command - PullRequest
       33

ошибка su -session-command

0 голосов
/ 03 ноября 2011

У меня очень простая и раздражающая проблема, я пытаюсь запустить свою базу данных как отдельный пользователь, но * su --session-comman * мне не удается!

##############################

#!/bin/bash

objectdb-start.sh

OBJECTDB_HOME=/opt/java-tools/objectdb-2.3.0_04
JAVA_USER=javauser

CMD="su --session-command=\"${OBJECTDB_HOME}/bin/objectdb.sh start\" ${JAVA_USER}"

echo $CMD
$CMD

##############################

Тогда есть эта ошибка:

[root@Taturana bin]# ./objectdb-start.sh
su --session-command="/opt/java-tools/objectdb-2.3.0_04/bin/objectdb.sh start" javauser
su: user start" does not exist

Есть идеи?

PS: я использую Fedora 15

1 Ответ

1 голос
/ 03 ноября 2011

Избегавшие двойные кавычки доставляют вам неприятности.Они не работают в командной строке, как вы, очевидно, ожидаете.Поэтому оболочка видит пространство и интерпретирует start" как второй аргумент su, указывая имя пользователя.

Действительно ли важно выводить командную строку на консоли?Вам, вероятно, будет лучше с чем-то вроде этого:

su --session-command="${OBJECTDB_HOME}/bin/objectdb.sh start" $JAVA_USER

Или используйте вместо него sudo:

sudo -u $JAVA_USER $OBJECTDB_HOME/bin/objectdb.sh start
...