Непонятки с sudoers

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

apvs
Сообщения: 37

Непонятки с sudoers

Сообщение apvs »

В линуксовой системе есть два пользователя: user1 и user2.

Залогинившись под user1, мне нужно запустить скрипт от user2.

Делаю sudo -i -u user2 /home/user2/myscript.sh
Но эта команда требует ввода пароля от user1. А мне нужно её выполнение без пароля.

Добавляю в /etc/sudoers

user1 ALL=(ALL) NOPASSWD: /home/user2/myscript.sh

но пароль по-прежнему просит. Как правильно сделать?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18115
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Непонятки с sudoers

Сообщение Bizdelnick »

В команде опция -i лишняя.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

apvs
Сообщения: 37

Re: Непонятки с sudoers

Сообщение apvs »

Без -i переменные окружения из юзерского (user2) .bash_profile не будут читаться, а мне они нужны. Хотя в данном случае их можно в скрипте экспортировать.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18115
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Непонятки с sudoers

Сообщение Bizdelnick »

-i запускает пользовательскую оболочку, а на это у user1 прав нет, Вы ему только /home/user2/myscript.sh разрешили.
И в любом случае полагаться в скрипте на то, что будут определены переменные из .bash_profile, нельзя. Он ведь может запускаться и другим способом без логин-шелла, например из crontab, может запускаться из шелла, отличного от bash (dash, ash, zsh, …), и т. д. Короче, не надо так делать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: