Você precisa executar permissões em /home/bob/inputs
. Você pode configurá-lo com:
chmod a+x /home/bob/inputs
Estou trabalhando em um cluster do RHEL 5. Eu quero que meu programa Fortran leia o arquivo /home/bob/inputs/input_1
Pedi a Bob que me desse permissão para ler todo o conteúdo de inputs
:
[bob@server]$ chmod -R a+r /home/bob/inputs/*
Eu os vinculei a um diretório compartilhado:
[david@server]$ ln -s /home/bob/inputs/ /home/share/inputs/
O programa My (Fortran) tentou ler /home/share/inputs/input_1
e disse:
File /home/share/inputs/input_1 not found!
Eu tentei localizar o arquivo eu mesmo (no processo, bob deu a+rwx
permissões):
[david@server]$ls -ltrh /home/share/inputs/input_1
lrwxrwxrwx 1 bob bob 33 Oct 25 15:42 /home/share/inputs/input_1 -> /home/bob/inputs/input_1
A partir disso, concluí que a) inputs_1
existe eb) todos os usuários têm rwx
de permissão.
Eu tentei ler:
[david@server]$ more /home/share/inputs/input_1
/home/share/inputs/input_1: No such file or directory
E me disseram que não existe.
Eu procuro o arquivo de destino /home/bob/inputs/input_1
, mas não tenho permissão.
[david@server]$ls -ltrh /home/bob/inputs/input_1
ls: /home/bob/inputs/input_1 Permission denied
Algo bizzare acontece se eu ls
o conteúdo do diretório:
[david@server]$ls -ltrh /home/bob/inputs/
?--------- ? ? ? ? ? input_1
?--------- ? ? ? ? ? input_2
?--------- ? ? ? ? ? input_3
... (n-4 lines omitted)
?--------- ? ? ? ? ? input_n
embora se bob fizer isso, ele fica:
-rwxrwxrwx 1 bob bob 269 May 24 input_1
... (n-2 lines omitted)
-rwxrwxrwx 1 bob bob 2.0K Jan 19 input_n
Execute ls -ld /home/bob/inputs/
. Acho que você verá que bob lhe deu permissão de leitura no diretório, mas não permissão de execução, ou seja, algo como drwxr--r--
. Em um diretório, a permissão de leitura permite ver a lista de arquivos enquanto a permissão de execução permite acessar arquivos no diretório. Existem raras circunstâncias em que é útil tornar um diretório executável e não legível; o contrário é bem inútil. Quase o tempo todo, um diretório deve ser acessível (legível e executável) ou não acessível (nem legível nem executável).
Veja Por que os diretórios precisam o executável (X) permissão para ser aberto? para mais explicações.
Solução: peça ao bob para executar chmod a+rx ~/inputs
.
Tags directory permissions ls symlink