switch to user with nologin shell

Manche User, wie zb. der www Account, haben als Shell /usr/sbin/nologin eingetragen, was ein login verhindert. So weit ganz gut, jedoch ist es gelegentlich erforderlich unter diesem User verschiedene Anwendungen / Scripte auszuführen (Beispiel: der Updateprozess von Piwik bei größeren Installationen).

Ein einfaches su www wird mit This account is currently not available. quitiert und jedes mal die Shell temporär ändern wäre mehr als nervig, aber zum Glück geht es auch einfacher.

Zu erst wie gewohnt auf dem System mit seinem User einloggen, danach mit su zu root wechseln (Root-Zugriff ist zwingend erforderlich) und im Anschluss mit su -m www -c ‘/bin/sh’ zum gewünschten User wechseln. Entscheidend ist der Parameter -m, dadurch wird verhindert das u.a. die Umgebungsvariable shell benutzt bzw. verändert und ausgeführt wird, mit -c ‘/bin/sh’ wird dann die gewünschte Shell / Anwendung oder das Script ausgeführt.

Nähere Infos bekommt ihr unter su(1) und environ(7).