Назад | Перейти на главную страницу

выполнение команды от имени root с / bin / su и без дает разные результаты

Немного предыстории: у меня есть машина с установленной SLES 11. Я запускаю сценарий bash, одна из строк которого /bin/su $USER -c SOME_CMD.

К сожалению, SOME_CMD что происходит после -c продолжает терпеть неудачу, даже если USER=root или любого другого пользователя. Однако если /bin/su $USER -c часть опущена, тогда все идет гладко. Более того, я запускал сценарий на RHEL5, и он работал нормально.

В любом случае, у меня вопрос, почему это происходит? Если это проблемы с разрешениями, то почему, когда я запускаю это как root с /bin/su а без я получаю разные результаты?

P.S. извиняюсь, если кто-то еще спрашивал об этом раньше, я много гуглил и не получил ничего удовлетворительного.


РЕДАКТИРОВАТЬ Ладно, разобрался, надеюсь. Вместо бега /bin/su я использовал /user/bin/sudo -u $MY_USER_1 MY_ENV_VAR="/home/user1" SOME_CMD. Я не понимаю, почему я должен использовать sudo, хотя. Я привык запускать команду от имени другого пользователя, используя su и не беспокоясь о проблемах с разрешениями, но я думаю, что на SLES 11/SuSE.

В любом случае, спасибо всем, кто хотел или помог мне.

Это потому, что правильный синтаксис команды

/bin/su -c SOME_CMD USER

Видеть man su.

Вы не должны ничего назначать переменной $USER, BTW, потому что это системная переменная, которая содержит имя текущего пользователя, вошедшего в систему.