Nachdem ich List all human users gelesen hatte, bemerkte ich, dass sich in meinem Ubuntu-System ein Benutzerkonto namens nobody befindet.
Außerdem habe ich festgestellt, dass ich mich mit folgendem Befehl und meinem Passwort vom Terminal aus in dieses Konto einloggen kann:
sudo su nobody
Es stört mich überhaupt nicht, aber ich möchte wissen, was der Zweck dieses Benutzers ist? Wird es standardmäßig bei einer Neuinstallation von Ubuntu erstellt oder wird es durch die Installation eines bestimmten Pakets erstellt?
users
username
switch-user
Radu Rădeanu
quelle
quelle
sudo su nobody
return Dieses Konto ist derzeit nicht verfügbar. weil die Shell für den Benutzernobody
auf/usr/sbin/nologin
(getent passwd nobody
) gesetzt ist.root_squash
on" ordnen Sie "root" niemandem auf Remote-Systemen zu. Dies ist mehr oder weniger genau das Gegenteil von dem, was diese Antwort besagtAntworten:
Hier können Sie Dinge ausführen, für die keine besonderen Berechtigungen erforderlich sind. Es ist normalerweise für anfällige Dienste (httpd usw.) reserviert, sodass sie im Falle eines Hacks nur minimalen Schaden am Rest des Systems verursachen.
Vergleichen Sie dies mit der Ausführung als echter Benutzer. Wenn dieser Dienst kompromittiert wird (Webserver werden gelegentlich dazu ausgenutzt, beliebigen Code auszuführen), wird er als dieser Benutzer ausgeführt und hat Zugriff auf alles, was der Benutzer hatte. In den meisten Fällen ist dies so schlimm wie root zu werden.
Sie können ein bisschen mehr über den nobody-Benutzer im Ubuntu-Wiki lesen:
So beantworten Sie Ihre Follow-ups:
Warum kann ich mit nicht auf dieses Konto zugreifen
su nobody
?sudo grep nobody /etc/shadow
zeigt Ihnen, dass niemand ein Passwort hat und Sie können nichtsu
ohne ein Konto Passwort. Der sauberste Weg istsudo su nobody
stattdessen. Das wird dich in einer ziemlich trostlosensh
Hülle zurücklassen.Können Sie ein bestimmtes Beispiel nennen, bei dem angegeben ist, dieses Konto zu verwenden?
Wenn für die Operationen eines Programms keine Berechtigungen erforderlich sind. Dies ist am bemerkenswertesten, wenn es keine Festplattenaktivität geben wird.
Ein reale Welt Beispiel hierfür ist
memcached
(eine Schlüssel-Wert - In-Memory - Cache / Datenbank / Sache), sitzt auf meinem Computer und mein Server unter dem niemandem Konto ausgeführt wird . Warum? Da es einfach keine Berechtigungen benötigt und es einem Konto zu geben, das Schreibzugriff auf Dateien hatte, wäre ein unnötiges Risiko.quelle
su nobody
und 2) können Sie ein bestimmtes Beispiel angeben, wann angegeben ist, dieses Konto zu verwenden?su
ein gewöhnlicher Benutzer sind, müssen Sie das Kennwort des Zielbenutzers eingeben. Versuchen Sie essudo -i
dannsu nobody
über die Root-Shell (für die kein Kennwort erforderlich ist).Network File System
Zuordnungenroot
zunobody
lokaler Root können nicht auf alles zugreifen, wie dies bei der Remote-Root der Fall ist.nobody
NFS tatsächlich / hauptsächlich als Linux-Standardbasis verwendet .Informationen stammen aus http://en.wikipedia.org/wiki/Nobody_(Benutzername) .
quelle
nobody
ist ausschließlich für NFS bestimmt und sollte nicht von anderen Diensten und auf keinen Fall von Systemadministratoren verwendet werden. Vielen Dank.Der Benutzer nobody ist nur für NFS reserviert.
Die obigen Antworten sind eher falsch, da davon ausgegangen wird, dass
nobody
es sich um eine "generische" anonyme Benutzer-ID handelt.Im UNIX / Linux-Zugriffssteuerungsmodell gibt es keine anonymen / Gast-Benutzer-IDs. Dies sind schlechte Vorschläge:
nobody
, vor allem Server, um den Schaden zu begrenzen , die von einem böswilligen Benutzer die Kontrolle über sie gewonnen getan werden könnte. “ , Wegen der, der folgt: " Allerdings ist die Nützlichkeit dieser Technik reduziert , wenn mehr als ein Daemon wird so ausgeführt, weil dann die Kontrolle über einen Daemon die Kontrolle über alle anderen geben würde ".memcached
(ein Cache / eine Datenbank / ein Ding mit Schlüsselwert im Arbeitsspeicher), das auf meinem Computer und auf meinem Server unter demnobody
Konto ausgeführt wird. Warum? Weil es einfach keine Berechtigungen benötigt und diese gibt Ein Konto, das Schreibzugriff auf Dateien hatte, wäre nur ein unnötiges Risiko. "Der
nobody
Benutzername mit der Benutzer-ID 65534 wurde für einen bestimmten Zweck erstellt und reserviert und sollte nur für diesen Zweck verwendet werden: als Platzhalter für "nicht zugeordnete" Benutzer und Benutzer-IDs in NFS-Baumexporten.Das heißt, sofern keine Benutzer- / ID-Zuordnung für NFS-Baumexporte eingerichtet ist, werden alle Dateien im Export als Eigentum von angezeigt
nobody
. Damit soll verhindert werden, dass alle Benutzer auf dem importierenden System auf diese Dateien zugreifen (es sei denn, sie haben "andere" Berechtigungen), da keine von ihnen (außerroot
) sein kann / werden kannnobody
.Daher ist es eine sehr schlechte Idee, sie
nobody
für einen anderen Zweck zu verwenden, da der Zweck darin besteht, ein Benutzername / eine Benutzer-ID für Dateien zu sein, auf die niemand zugreifen darf.Der Wiki-Eintrag ist auch sehr falsch.
Die UNIX / Linux-Praxis besteht darin, für jede "Anwendung" oder jeden Anwendungsbereich, der eine separate Zugriffssteuerungsdomäne benötigt, ein neues Konto zu erstellen und diese niemals
nobody
außerhalb von NFS wiederzuverwenden .quelle
root_squash
on,root
wird dem Benutzer zugeordnetnobody
, so dass Dateien mit Eigentümernobody
absolut keinen Sinn machen würden. Darüber hinaus ist die Aussage, dass Dateien, deren Eigentümer niemand ist, für niemanden unzugänglich sein sollen, wenig sinnvoll, da Dateiberechtigungen nicht im Besitz von UNIX sind. Ich sage nicht, dass alles in der Antwort falsch ist, nur dass Elemente davon für mich wenig oder keinen Sinn ergeben :)nobody
. Es sagt Ihnen, dassnobody
NFS zum Zuordnen von Berechtigungen verwendet werden soll, und das ist der wichtigste Punkt für mich. Wie NFS verwendetnobody
ist weniger interessant als die Tatsache , dass es nicht verwendennobody
. Vielen Dank.man exports
, ist er möglicherweise sehr verwirrt.Der
nobody
Benutzer wird standardmäßig bei einer Neuinstallation erstellt (aktiviert auf Ubuntu Desktop 13.04).quelle
nobody ist ein spezielles Benutzer- und Gruppenkonto. Da es sich um einen tatsächlichen Benutzernamen (und Gruppennamen) handelt, der von Prozessen und sogar Benutzern verwendet werden kann, ist er nicht buchstäblich niemand . Beispielsweise haben einige Apache-Konfigurationen niemanden als Benutzer / Gruppe, dem die Website-Dateien und -Verzeichnisse gehören. Das Problem tritt auf, wenn mehrere Prozesse den Benutzer nobody verwenden, z. B. NFS-Verzeichnisse und der Webserver.
quelle
Kleinere Korrekturen am ' Der Benutzer nobody ist nur für NFS reserviert. ' Antworten. Der
nobody
Benutzer wird zu diesem Zeitpunkt auch für nichtprivilegierte Container mit Bindemounts verwendet.Dies stammt aus systemd-nspawn, insbesondere der Mount-Option --bind:
systemd-nspawn
quelle