Este é um caso de uso típico para sudo
.
Você está misturando sudo
, que permite executar comandos como outro usuário e é altamente configurável (você pode especificar seletivamente qual usuário pode executar qual comando como usuário) e su
que alterna para outro usuário se você souber a senha (ou são root). su
sempre executa o shell escrito em /etc/passwd
, mesmo se su -c
for usado. Por causa disso su
não é compatível com /usr/sbin/nologin
.
Você deve usar
sudo -u secure /home/someuser/secure.script
Como sudo
é configurável, você pode controlar quem pode usar este comando e se ele precisa digitar uma senha para executá-lo. Você precisa editar /etc/sudoers
usando visudo
para fazer isso. (Tenha cuidado ao editar / etc / sudoers e sempre use visudo para fazer isso. A sintaxe não é trivial e um erro pode bloquear você da sua conta root.)
Esta linha em sudoers permite que qualquer pessoa no grupo somegroup
execute o comando como secure
:
%somegroup ALL=(secure) /home/someuser/secure.script
Isso permite que qualquer pessoa no grupo somegroup
execute o comando como secure
sem digitar uma senha:
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
Isso permite que user1
execute o comando como secure
sem digitar uma senha:
user1 ALL=(secure) /home/someuser/secure.script