В линуксовой системе есть два пользователя: user1 и user2.
Залогинившись под user1, мне нужно запустить скрипт от user2.
Делаю sudo -i -u user2 /home/user2/myscript.sh
Но эта команда требует ввода пароля от user1. А мне нужно её выполнение без пароля.
Добавляю в /etc/sudoers
user1 ALL=(ALL) NOPASSWD: /home/user2/myscript.sh
но пароль по-прежнему просит. Как правильно сделать?
Непонятки с sudoers
Модератор: Bizdelnick
-
- Модератор
- Сообщения: 21257
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Непонятки с sudoers
В команде опция -i лишняя.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 52
Re: Непонятки с sudoers
Без -i переменные окружения из юзерского (user2) .bash_profile не будут читаться, а мне они нужны. Хотя в данном случае их можно в скрипте экспортировать.
-
- Модератор
- Сообщения: 21257
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Непонятки с sudoers
-i запускает пользовательскую оболочку, а на это у user1 прав нет, Вы ему только /home/user2/myscript.sh разрешили.
И в любом случае полагаться в скрипте на то, что будут определены переменные из .bash_profile, нельзя. Он ведь может запускаться и другим способом без логин-шелла, например из crontab, может запускаться из шелла, отличного от bash (dash, ash, zsh, …), и т. д. Короче, не надо так делать.
И в любом случае полагаться в скрипте на то, что будут определены переменные из .bash_profile, нельзя. Он ведь может запускаться и другим способом без логин-шелла, например из crontab, может запускаться из шелла, отличного от bash (dash, ash, zsh, …), и т. д. Короче, не надо так делать.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |