Dies ist ein typischer Anwendungsfall für sudo.
Sie mischen, sudowas die Ausführung von Befehlen als anderer Benutzer ermöglicht und in hohem Maße konfigurierbar ist (Sie können selektiv angeben, welcher Benutzer welchen Befehl als welcher Benutzer ausführen kann) und suwelcher zu einem anderen Benutzer wechselt, wenn Sie das Kennwort kennen (oder root sind). suLäuft immer die eingeschriebene Shell /etc/passwd, auch wenn sie su -cbenutzt wird. Aus diesem Grund suist nicht kompatibel mit /usr/sbin/nologin.
Du solltest benutzen
sudo -u secure /home/someuser/secure.script
Wie sudokonfigurierbar können Sie steuern, wer diesen Befehl verwenden kann und ob er / sie ein Kennwort eingeben muss, um ihn auszuführen. Sie müssen bearbeiten /etc/sudoersverwenden , visudodies zu tun. (Seien Sie vorsichtig, wenn Sie / etc / sudoers bearbeiten, und verwenden Sie immer visudo, um dies zu tun. Die Syntax ist nicht trivial und ein Fehler kann Sie von Ihrem Root-Konto ausschließen.)
Diese Zeile in sudoers ermöglicht es jedem in der Gruppe somegroup, den Befehl wie folgt auszuführen secure:
%somegroup ALL=(secure) /home/someuser/secure.script
Auf diese Weise kann jeder in der Gruppe somegroupden Befehl ausführen, secureohne ein Kennwort einzugeben:
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
So können Sie user1den Befehl ausführen, secureohne ein Kennwort einzugeben:
user1 ALL=(secure) /home/someuser/secure.script
sudo sufinden unix.stackexchange.com/questions/218169/...