Digamos que eu tenha um diretório que somente root possa acessar:
$ sudo -s
$ mkdir ~/rootonly
$ chmod 000 ~/rootonly
Dentro desse diretório é um com permissões globais-tudo:
$ cd ~/rootonly
$ mkdir openforall
$ chmod 777 openforall
Não, se eu quiser acessar esse diretório como um usuário normal, aparentemente não consigo (como seria de esperar):
$ su me
$ cd ~/rootonly/openforall/
bash: cd: /home/me/rootonly/openforall: Permission denied
$ touch ~/rootonly/openforall/foo
touch: cannot touch '/home/me/rootonly/openforall/foo': Permission denied
No entanto, se eu primeiro cd como root no diretório, e então su para o usuário normal, ele funciona:
$ sudo -s
$ cd /home/me/rootonly/openforall
$ su www-data
$ touch test
$ ls
$ -rw-r--r-- 1 www-data www-data 0 2011-08-05 14:17 test
Por que isso funciona? O primeiro caso é apenas um comportamento específico de "cd", que tenta passar pela pasta da hierarquia de diretórios por pasta? Em outras palavras, para um invasor ignorando o bash, o kernel fornece uma entrada para acessar "openforall" se o caminho for conhecido?
Estou interessado no que está acontecendo nos bastidores aqui.