O problema veio das permissões para / dev:
# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev
Então / dev não foi acessível pelos usuários.
# chmod a+x /dev
# chmod a+r /dev
Resolveu o problema.
Em postgres de usuários:
$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied
Pensei na raiz do usuário, as permissões estão corretas:
# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null
Eu tentei recriá-lo:
# rm /dev/null && mknod -m 0666 /dev/null c 1 3
Mas o resultado é o mesmo. Eu estou em um VPS com um debian 7 e kernel 2.6.32 em um x86_64
Eu tive um problema semelhante e vim aqui procurando os sintomas, mas a solução não se encaixava no meu caso. Então, gostaria de adicionar outro motivo possível, mesmo que não seja exatamente adequado ao OP.
No meu caso especial, usei proot
(um bom chroot
wrapper). Mas as permissões estavam corretas em /dev/null
e /dev
em si.
Por acaso, era a montagem do diretório chroot
, que eu fiz via thunar
como um usuário normal. Então, neste caso, a montagem não tem as permissões corretas.
Você tem um tempo ruim para encontrar isso, porque você não vê essas permissões quando olha apenas os arquivos.
O caminho geral da solução seria iniciar as condições de verificação no local do problema ( /dev/null
) e sair para o próximo nível ( /dev
), depois a montagem, o sistema de arquivos etc., o que vier a seguir.
Em cada etapa, você pode ter várias pré-condições, cada uma com seus próprios níveis externos. Por exemplo. o usuário pode estar em um grupo errado, o que leva ao arquivo de configuração do grupo, que pode ter permissões erradas, etc.
Obviamente, você tem que seguir um tipo de árvore em geral.
Eu mesmo não consegui resolver isso, então foi o que eu fiz:
mycommand.sh | echo -n
O comando echo
não presta atenção à entrada padrão, portanto, ele será descartado. E o -n
é para que uma nova linha inútil não seja impressa no stdout.
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun
isto é o que resolve o meu problema no VPS. Por favor note que depois de reiniciar o seu servidor - você executou este comando novamente
Tags permissions linux