Ich habe einen speziellen Benutzer in / etc / passwd erstellt mit:
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
Ich möchte die Anmeldung dieses Benutzers nicht zulassen (über Konsole, ssh, ftp, auf irgendeine Weise).
Er dient nur zum Ausführen eines Skripts über:
sudo su secure -c '/home/someuser/secure.script'
Aber es gibt mir This user is currently not available.
. Wie richte ich es ein, damit das Skript auf diese Weise ausgeführt werden kann, ohne dass sich dieser Benutzer (Konsole, ssh, ftp, ...) beim System anmeldet?
Ich habe festgestellt, dass /usr/sbin/nologin
der Computer bei der Eingabe über die Befehlszeile mit antwortet This account is currently not available.
.
sudo su
finden unix.stackexchange.com/questions/218169/...Antworten:
Dies ist ein typischer Anwendungsfall für
sudo
.Sie mischen,
sudo
was 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) undsu
welcher zu einem anderen Benutzer wechselt, wenn Sie das Kennwort kennen (oder root sind).su
Läuft immer die eingeschriebene Shell/etc/passwd
, auch wenn siesu -c
benutzt wird. Aus diesem Grundsu
ist nicht kompatibel mit/usr/sbin/nologin
.Du solltest benutzen
sudo -u secure /home/someuser/secure.script
Wie
sudo
konfigurierbar 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/sudoers
verwenden ,visudo
dies 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ührensecure
:Auf diese Weise kann jeder in der Gruppe
somegroup
den Befehl ausführen,secure
ohne ein Kennwort einzugeben:So können Sie
user1
den Befehl ausführen,secure
ohne ein Kennwort einzugeben:quelle
Ich habe herausgefunden, dass das Hauptproblem "
/usr/sbin/nologin
" in ist./etc/passwd
Wenn ich su in diesem Fall ausführen möchte, muss es-s /bin/bash
innen sein, also zum Beispiel:su -s /bin/bash -c '/home/someuser/secure.script' secure
quelle
su
verwendet standardmäßig die in / etc / passwd geschriebene Shell. Mitsu
können Sie sich als Benutzer eines anderen Benutzers anmelden.nologin
druckt die Meldung "Dieser Benutzer ist derzeit nicht verfügbar." und Ausgänge.sudo
verwendet keine Shell, um einen Befehl auszuführen, daher funktioniert auch die Verwendung vonsudo
withoutsu
. Weitere Informationen finden Sie in meiner Antwortsudo
.su
verwendet die in angegebene Shell/etc/passwd
.Sie brauchen nicht zu verwenden
su
mitsudo
.Deshalb nicht mischen
su
mitsudo
: verwendensudo -u secure '/home/someuser/secure.script'
.quelle
Dies ist möglicherweise nicht zu 100% relevant für die Frage, kann jedoch jemandem helfen, der eine ähnliche Warnmeldung erhalten hat
This user is currently not available
1) Erkundigen Sie sich bei Ihrem Hosting-Unternehmen, ob Sie Shell-Zugriff erhalten haben.
2) Wenn Sie CWP7 verwenden: Setzen Sie Shell Access auf ON
quelle
su
,sudo
und alle möglichen anderen Dinge. 2) In der Frage gibt es keinen Hinweis darauf, dass sich die betreffende Installation hinter einem Web-Control-Panel in irgendeiner Form befindet.