GNU/Linux >> Linux Esercitazione >  >> Linux

Le autorizzazioni della directory principale sono importanti quando si accede a una sottodirectory?

Se ho una cartella principale con qualche permesso restrittivo, diciamo 600, e se le cartelle/file figlio hanno il permesso 777, tutti saranno in grado di leggere/scrivere/eseguire il file figlio anche se la cartella principale ne ha 600?

Risposta accettata:

La regola precisa è:puoi attraversare una directory se e solo se hai il permesso di esecuzione su di essa.

Quindi ad esempio per accedere a dir/subdir/file , è necessario eseguire l'autorizzazione su dir e dir/subdir , più i permessi su file per il tipo di accesso desiderato. Entrando in casi d'angolo, non sono sicuro che sia universale che tu abbia bisogno dell'autorizzazione di esecuzione sulla directory corrente per accedere a un file tramite un percorso relativo (lo fai su Linux).

Il modo in cui accedi a un file è importante. Ad esempio, se hai i permessi di esecuzione su /foo/bar ma non su /foo , ma la tua directory attuale è /foo/bar , puoi accedere ai file in /foo/bar attraverso un percorso relativo ma non attraverso un percorso assoluto. Non puoi passare a /foo/bar in questo scenario; un processo più privilegiato ha presumibilmente eseguito cd /foo/bar prima di andare senza privilegi. Se un file ha più collegamenti reali, il percorso che utilizzi per accedervi determina i tuoi vincoli di accesso.

I collegamenti simbolici non cambiano nulla. Il kernel usa i diritti di accesso del processo chiamante per attraversarli. Ad esempio, se sym è un collegamento simbolico alla directory dir , è necessario eseguire l'autorizzazione su dir per accedere a sym/foo . I permessi sul collegamento simbolico stesso possono o meno avere importanza a seconda del sistema operativo e del filesystem (alcuni li rispettano, altri li ignorano).

La rimozione dell'autorizzazione di esecuzione dalla directory principale limita in modo efficace un utente a una parte dell'albero delle directory (in cui deve passare un processo con più privilegi). Ciò richiede che gli elenchi di controllo di accesso siano utili. Ad esempio, se / e /home sono off-limits per joe (setfacl -m user:joe:0 / /home ) e /home/joe è joe la directory home di 's, quindi joe non sarà in grado di accedere al resto del sistema (incluso l'esecuzione di script di shell con /bin/sh o binari collegati dinamicamente che devono accedere a /lib , quindi dovresti approfondire per un uso pratico, ad es. setfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib ).

Correlati:ottieni "Autorizzazione negata" durante il reindirizzamento dell'output di sudo echo "xyz" su un file??

L'autorizzazione di lettura su una directory dà il diritto di enumerare le voci. A volte è utile concedere il permesso di esecuzione senza concedere il permesso di lettura:i nomi delle voci servono come password per accedervi. Non riesco a pensare a qualsiasi utilità nel concedere il permesso di lettura o scrittura a una directory senza il permesso di esecuzione.


Linux
  1. Come uccidere un processo figlio python creato con subprocess.check_output() quando il genitore muore?

  2. L'accesso all'heap è serializzato?

  3. Autorizzazione exec imprevista da mmap quando i file di assemblaggio sono inclusi nel progetto

  4. autorizzazione file in zip/7z/rar?

  5. Aggiunta di una riga nel file hosts, ottenere l'autorizzazione negata quando si utilizza sudo - Mac

Come modificare le autorizzazioni in Linux

Accesso ai registri di accesso non elaborati in cPanel

Autorizzazioni di accesso di /dev/mem

Cosa fa il permesso di esecuzione?

Autorizzazione negata quando si accede alla cartella condivisa di VirtualBox quando si è membri del gruppo vboxsf

Come posso impostare i bit di parità quando utilizzo lo schermo per accedere a una porta seriale