web-dev-qa-db-fra.com

-bash: / dev / null: autorisation refusée

J'essaie de créer un nouvel utilisateur sur un système Centos 6.

Tout d'abord, je fais

useradd kevin

Ensuite, j'ai essayé d'exécuter des commandes en tant qu'utilisateur

su - kevin

Cependant, j'obtiens les messages d'erreur suivants

-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
[kevin@gazelle ~]$

Et je ne peux pas faire grand-chose en tant qu'utilisateur.

Les autorisations sur /dev/null sont les suivants:

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

À peu près les mêmes que sur mon Mac,

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

C'est possible, mais vraiment peu probable, que j'ai touché le dev.

En tant qu'utilisateur root, j'ai essayé d'ajouter kevin au groupe root:

usermod -a -G root kevin

Cependant, je reçois toujours /dev/null permission refusée erreurs.

Pourquoi le nouvel utilisateur ne peut-il pas écrire dans /dev/null?
De quels groupes le nouvel utilisateur devrait-il faire partie?
Ne suis-je pas en train d'usurper l'identité de l'utilisateur correctement?
Existe-t-il un guide pour les débutants sur la configuration des utilisateurs/autorisations sous Linux?

30
Kevin Burke

Il est évident que quelqu'un a déplacé un fichier normal vers/dev/null. Le redémarrage le recréera, ou fera

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

Comme @Flow l'a noté dans un commentaire, vous devez être root pour ce faire.

58
Mark Plotnick

Cela devrait résoudre le problème (en tant que root):

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

Que font ces commandes:

  • rm supprime le faux fichier créé parce que celui attendu était manquant;
  • mknod crée un périphérique de caractères nommé /dev/null avec les nombres majeurs et mineurs appropriés pour un noyau Linux;
  • chmod définit les autorisations pour que tous les utilisateurs puissent lire et écrire dans /dev/null.
15
jlliagre

La solution suggérée par Mark ne fonctionnait pas sur OpenBSD. toutefois

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

a fait l'affaire. J'ai testé cela sur OpenBSD 5.6. Lorsque la réponse acceptée est exécutée,/dev/null bloquera et décevra très mal toute lecture de code.

4
meschi

Cela m'est arrivé sur les fenêtres de l'application Ubuntu, en essayant d'exécuter un script qui écrivait dans /dev/null. Les autorisations étaient correctes pour les deux /dev et /dev/null.

Il s'est avéré que le problème était les sauts de ligne Windows dans le fichier de script. Fonctionnement :

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

Résolu le problème pour moi.

2
Arthur.V

Publication de la réponse Mac OS X pour la postérité ...

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