Este é um caso de uso típico para sudo
.
Você está misturando o 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 qual usuário) e su
que alterna para outro usuário se você souber a senha (ou é root). su
sempre executa o shell escrito /etc/passwd
, mesmo que su -c
seja usado. Por isso, su
não é compatível com /usr/sbin/nologin
.
Você deveria usar
sudo -u secure /home/someuser/secure.script
Como sudo
é configurável, você pode controlar quem pode usar esse comando e se ele / ela precisa digitar uma senha para executá-lo. Você precisa editar /etc/sudoers
usando visudo
para fazer isso. (Tome cuidado ao editar o / etc / sudoers e sempre use o visudo para fazer isso. A sintaxe não é trivial e um erro pode impedi-lo de acessar sua conta root.)
Essa linha em sudoers permite que qualquer pessoa do 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 inserir uma senha:
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
Isso permite user1
executar o comando como secure
sem inserir uma senha:
user1 ALL=(secure) /home/someuser/secure.script
sudo su
, consulte unix.stackexchange.com/questions/218169/…