Це типовий випадок використання для 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/…