it-swarm.com.de

-bash: / dev / null: Berechtigung verweigert

Ich versuche, einen neuen Benutzer auf einem Centos 6-System zu erstellen.

Zuerst tue ich

useradd kevin

Dann habe ich versucht, Befehle als dieser Benutzer auszuführen

su - kevin

Ich erhalte jedoch die folgenden Fehlermeldungen

-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
[[email protected] ~]$

Und ich kann als dieser Benutzer nicht viel tun.

Die Berechtigungen für /dev/null Sind wie folgt:

-rwxr-xr-x  1 root root           9 Jul 25 17:07 null

Etwa das gleiche wie auf meinem Mac,

crw-rw-rw-   1 root   wheel         3,   2 Jul 25 14:08 null

Es ist möglich, aber wirklich unwahrscheinlich, dass ich dev berührt habe.

Als Root-Benutzer habe ich versucht, kevin zur Gruppe root hinzuzufügen:

usermod -a -G root kevin

Ich erhalte jedoch immer noch die Fehlerberechtigung /dev/null.

Warum kann der neue Benutzer nicht in /dev/null Schreiben?
Zu welchen Gruppen sollte der neue Benutzer gehören?
Identifiziere ich mich nicht korrekt als Benutzer?
Gibt es eine Anleitung für Anfänger zum Einrichten von Benutzern/Berechtigungen unter Linux?

30
Kevin Burke

Jemand hat offensichtlich eine reguläre Datei nach/dev/null verschoben. Durch einen Neustart wird es neu erstellt oder durchgeführt

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

Wie @Flow in einem Kommentar bemerkt hat, müssen Sie root sein, um dies zu tun.

58
Mark Plotnick

Dies sollte das Problem beheben (als root):

rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null

Was diese Befehle tun:

  • rm entfernt die gefälschte Datei, die erstellt wurde, weil die erwartete fehlte;
  • mknod erstellt ein Zeichengerät mit dem Namen /dev/null mit den entsprechenden Haupt- und Nebennummern für einen Linux-Kernel.
  • chmod legt die Berechtigungen fest, mit denen alle Benutzer lesen und in /dev/null schreiben können.
15
jlliagre

Die von Mark vorgeschlagene Lösung funktionierte unter OpenBSD nicht. jedoch

mknod -m 666 /dev/null -c 2 2

hat den Trick gemacht. Ich habe dies auf OpenBSD 5.6 getestet. Wenn die akzeptierte Antwort ausgeführt wird, blockiert/dev/null jeden Code, der daraus gelesen wird, ziemlich schlecht.

4
meschi

Dies ist mir unter Windows in der Ubuntu-Anwendung passiert, als ich versucht habe, ein Skript auszuführen, das in /dev/null. Die Berechtigungen waren für beide /dev und /dev/null.

Es stellte sich heraus, dass das Problem Windows Newlines in der Skriptdatei war. Laufen :

dos2unix.exe c:\path\to\script.sh

Das Problem wurde für mich gelöst.

2
Arthur.V

Veröffentlichung der Mac OS X-Antwort für die Nachwelt ...

Sudo su \
&& rm -rf /dev/null \
&& mknod /dev/null c 3 2 \
&& chmod 666 /dev/null
0
Julian