Це типовий випадок використання для sudo
.
Ви змішуєте, sudo
що дозволяє запускати команди як іншому користувачеві і легко налаштовується (ви можете вибірково вказати, який користувач може виконати, яку команду, як користувача), а su
хто переключиться на іншого користувача, якщо ви знаєте пароль (або root). su
завжди виконує написаний оболонку /etc/passwd
, навіть якщо su -c
вона використовується. Через це su
не сумісний із /usr/sbin/nologin
.
Ви повинні використовувати
sudo -u secure /home/someuser/secure.script
Як sudo
можна налаштувати, ви можете керувати тим, хто може використовувати цю команду, і якщо йому / їй потрібно ввести пароль, щоб запустити її. Вам потрібно редагувати , /etc/sudoers
використовуючи visudo
для цього. (Будьте уважні під час редагування / etc / sudoers і завжди використовуйте візуально для цього. Синтаксис не тривіальний, і одна помилка може заблокувати вас із вашого кореневого облікового запису.)
Цей рядок у sudoers дозволяє кожному в групі somegroup
виконувати команду як secure
:
%somegroup ALL=(secure) /home/someuser/secure.script
Це дозволяє кожному в групі somegroup
виконувати команду як secure
без введення пароля:
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
Це дозволяє user1
запустити команду як secure
без введення пароля:
user1 ALL=(secure) /home/someuser/secure.script
sudo su
, дивіться unix.stackexchange.com/questions/218169/…