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