Por que eu posso gravar em diretórios não executáveis montados com sshfs?

0

Percebi que posso criar um cd em diretórios não executáveis montados com sshfs .

Primeiro, criei diretórios com todos os oito modos possíveis:

$ pwd
/mnt/remote
$ for i in {0..7}; do mkdir test_$i; chmod $i$i$i test_$i; done
$ ll
total 32K
d--------- 2 <user> <user> 4,0K Okt 19 12:39 test_0
d--x--x--x 2 <user> <user> 4,0K Okt 19 12:39 test_1
d-w--w--w- 2 <user> <user> 4,0K Okt 19 12:39 test_2
d-wx-wx-wx 2 <user> <user> 4,0K Okt 19 12:39 test_3
dr--r--r-- 2 <user> <user> 4,0K Okt 19 12:39 test_4
dr-xr-xr-x 2 <user> <user> 4,0K Okt 19 12:39 test_5
drw-rw-rw- 2 <user> <user> 4,0K Okt 19 12:39 test_6
drwxrwxrwx 2 <user> <user> 4,0K Okt 19 12:39 test_7

Então, eu simplesmente verifiquei se eu poderia cd em cada um deles.

$ for i in {0..7}; do cd test_$i; echo $?; cd /mnt/remote; done
0
0
0
0
0
0
0
0

Portanto, cd é bem-sucedido mesmo para os diretórios não executáveis, o que deve ser impossível. *

De acordo com a sugestão nos comentários, eu também tentei listar o diretório depois de abri-lo:

$ for i in {0..7}; do cd test_$i && ls >/dev/null; echo $?; cd /mnt/remote; done
ls: reading directory .: Permission denied
2
ls: reading directory .: Permission denied
2
ls: reading directory .: Permission denied
2
ls: reading directory .: Permission denied
2
0
0
0
0

Os diretórios interessantes aqui são test_4 e test_6 , pois eles têm permissão de leitura, mas não têm permissão de execução. No entanto, ls é bem-sucedido para ambos. Ele falha para test_0 a test_3 , que estão sem permissão de leitura.

Por que isso acontece?

*: Para confirmar isso, fiz o mesmo experimento na minha máquina local:

$ for i in {0..7}; do cd test_$i; echo $?; cd ~/work/permission_tests; done
cd: permission denied: test_0
1
0
cd: permission denied: test_2
1
0
cd: permission denied: test_4
1
0
cd: permission denied: test_6
1
0

Por isso, dá os resultados esperados lá.

    
por iFreilicht 19.10.2017 / 13:20

0 respostas