13 votes

ne peut pas accéder à /dev/null : Permission refusée, bien que crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

Sur l'utilisateur postgres :

$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied

Pensée sur l'utilisateur root, les permissions sont correctes :

# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

J'ai essayé de le recréer :

# rm /dev/null && mknod -m 0666 /dev/null c 1 3

Mais le résultat est le même. Je suis sur un VPS avec un debian 7 et un kernel 2.6.32 sur un x86_64.

20voto

lalebarde Points 655

Le problème venait des permissions sur /dev :

# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev

Donc /dev n'était pas accessible par les utilisateurs.

# chmod a+x /dev
# chmod a+r /dev

J'ai résolu le problème.

1voto

Harald Points 11

J'ai eu un problème similaire, et je suis venu ici en cherchant les symptômes, mais la solution ne correspondait pas à mon cas. J'aimerais donc ajouter une autre raison possible, même si elle ne correspond pas exactement à l'OP.

Dans mon cas particulier, j'ai utilisé proot (une belle chroot enveloppe). Mais les permissions étaient correctes sur /dev/null y /dev lui-même.

Il se trouve que c'est le mont de la chroot ce que j'ai fait via thunar comme un utilisateur normal. Donc, dans ce cas, le montage n'avait pas les bonnes permissions.

Vous avez un mauvais moment pour trouver cela, parce que vous ne voyez pas ces permissions, en regardant seulement les fichiers.

La solution générale consiste à commencer à vérifier les conditions à l'endroit où se situe le problème ( /dev/null ) et passer au(x) niveau(x) suivant(s) ( /dev ), puis le montage, le système de fichiers etc., tout ce qui vient ensuite.

À chaque étape, vous pouvez avoir plusieurs conditions préalables, chacune ayant ses propres niveaux extérieurs. Par exemple, l'utilisateur peut être dans un mauvais groupe, ce qui conduit au fichier de configuration du groupe, qui peut avoir de mauvaises permissions, etc.

Évidemment, il faut suivre une sorte d'arbre en général.

0voto

Mark Stewart Points 708

Je ne pouvais pas résoudre ce problème moi-même, alors voilà ce que j'ai fait :

mycommand.sh | echo -n

El echo ne fait pas attention à l'entrée standard, elle sera donc rejetée. Et le -n c'est pour qu'une nouvelle ligne inutile ne soit pas imprimée dans la sortie standard.

0voto

zore Points 1
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun

C'est ce qui a résolu mon problème sur le VPS. Veuillez noter qu'après avoir redémarré votre serveur, vous devez exécuter cette commande à nouveau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X