Ich sehe einige der Benutzer, die ich im /home
Verzeichnis in CentOS finden kann, aber nicht den Rest der Benutzer.
Benutzer, die im Verzeichnis aufgeführt sind /home
, kann ich mich als diese Benutzer mit dem Befehl anmelden
su username
Um die restlichen Benutzer zu finden, musste ich den folgenden Befehl verwenden:
cut -d: -f1 /etc/passwd
Um mich als einer dieser anderen Benutzer anzumelden, muss ich den Befehl
sudo -u username
Was ist der Unterschied?
Antwort1
Wenn Sie einen ähnlichen Befehl wie Ihren ausführen:
$ cut -d: -f1,6,7 /etc/passwd
root:/root:/bin/bash
bin:/bin:/sbin/nologin
daemon:/sbin:/sbin/nologin
adm:/var/adm:/sbin/nologin
lp:/var/spool/lpd:/sbin/nologin
sync:/sbin:/bin/sync
shutdown:/sbin:/sbin/shutdown
halt:/sbin:/sbin/halt
mail:/var/spool/mail:/sbin/nologin
operator:/root:/sbin/nologin
games:/usr/games:/sbin/nologin
...
gareth:/home/gareth:/bin/bash
...
Ihnen wird auffallen, dass die einzigen Konten mit einem /home
Verzeichnis diejenigen sind, bei denen a) die zweite Spalte oben einen Pfad zu einem Verzeichnis innerhalb enthält /home
und b) die dritte Spalte ( /bin/bash
) eine Shell enthält.
Alle anderen Benutzer können sich nicht anmelden, da sie entweder eine Shell von haben /sbin/nologin
, die – wie der Name schon sagt – keine Anmeldung zulässt, oder eine Shell mit einem bestimmten Befehl, wie z. B. /sbin/halt
.
Sie können Befehle als die anderen Benutzer ausführen oder sogar eine Shell ausführen:
$ sudo -u daemon whoami
daemon
$ sudo -u daemon bash
$ whoami
daemon
$ echo $HOME
/
Sie haben darin jedoch kein Home-Verzeichnis /home
.
Noch wichtiger ist, dass Sie sich bei einer Anmeldeaufforderung oder mit su
oder ssh
bei diesen Konten nicht anmelden können, da die Shell ist /sbin/nologin
und ihre Passwörter deaktiviert wurden (suchen Sie nach einem !!
oder einem *
in der 2. Spalte von sudo less /etc/shadow
).
Diese Konten sind alleSystemKonten, die von Diensten wie E-Mail oder DHCP verwendet oder zum Herunterfahren des Systems verwendet werden.
Sie sollten als diese Benutzer eigentlich keine Befehle ausführen sudo
.