In Linux, il permesso di "scrittura" equivale a "eseguire" per le directory?


16

L'autorizzazione di esecuzione ha senso per i file (che includono script, ecc.), Ma quando si tratta di directory, l' write (w)autorizzazione funziona allo stesso modo execute (x), giusto?

Il che significa che se diamo il permesso di scrittura a una directory normalmente controlliamo anche "x" (per eseguire) per quella directory, giusto?


2
La tua domanda è ora incomprensibile. Non è chiaro dove stai parlando delle autorizzazioni su un file e dove stai parlando delle autorizzazioni sulla directory che lo contiene.
Gilles 'SO- smetti di essere malvagio' il

1
Se hai una nuova domanda, puoi semplicemente pubblicarla separatamente ?
Michael Mrozek

1
Cosa intendi con "permesso di lettura è tutto ciò di cui abbiamo bisogno per un file?" Tutto ciò di cui hai bisogno per cosa? Per leggere un file? Sì. Per modificare un file ... no, a meno che tu non sia il proprietario di quel file.
gabe.

Oltre a tralasciare le operazioni "può leggere, può rinominare / eliminare i file all'interno della directory", il tuo "000: impossibile eliminarlo" è effettivamente errato. Se la directory risulta già vuota, è possibile eliminarla se è possibile scrivere nella directory principale. Se non è vuoto, non puoi eliminarlo finché non è vuoto (renderlo vuoto è un'operazione ricorsiva che richiede tutte e tre le autorizzazioni su di esso e tutte le sottodirectory non
vuote

La tua modifica a questa domanda ha reso molto confuso capire cosa veniva chiesto e non sembrava aggiungere alcun valore per i futuri visitatori. Sono tornato al semplice modulo di domanda originale a cui @Gilles ha risposto. Se hai un nuovo problema, puoi fare un'altra domanda . Prova a mantenere ogni domanda focalizzata su un problema.
Caleb,

Risposte:


49

L'autorizzazione di esecuzione sulle directory consente di accedere ai file all'interno della directory. L'autorizzazione di lettura consente di enumerare le voci della directory. L'autorizzazione di scrittura consente di creare e rimuovere voci al suo interno.

Non è utile disporre dell'autorizzazione di lettura o scrittura su una directory senza autorizzazione di esecuzione. Avere autorizzazioni di esecuzione ma non di lettura è talvolta utile: consente di accedere ai file solo se si conosce il loro nome esatto, una sorta di protezione primitiva della password.

Quindi in pratica le autorizzazioni utili su una directory sono:

  • ---: nessun accesso
  • --x: può accedere ai file il cui nome è noto (occasionalmente utile)
  • r-x: normale accesso in sola lettura
  • rwx: normale accesso in lettura e scrittura

Vedi anche Directory con l'autorizzazione + x, genitori senza di essa. Quando sarebbe utile? e Le autorizzazioni della directory principale sono importanti quando si accede a una sottodirectory?


@Gilles ha ragione! Fare alcune ricerche su questo per Linux rivela: 1) Quando una directory non ha un'autorizzazione 'x' per l'utente, è la chiamata di sistema stat o lstat che fallisce. Ciò comporta l'ottenimento di metadati delle voci della directory, anche se è possibile ottenere le voci della directory (nome, inode) quando l'utente dispone dell'autorizzazione "r" per la directory. 2) Vedi man 7 path_resolution su Linux per alcune informazioni aggiuntive.
Kedar Mhaswade,

2
w-xpuò anche avere i suoi usi. Ad esempio, era una pratica abbastanza comune per i siti FTP pubblici avere una cartella uploado incomingche era scrivibile pubblicamente ma leggibile solo dagli amministratori del server.
jmbpiano,

Cosa farebbe rw-che r--non potrebbe fare per le directory? Questa risposta menziona la possibilità di cambiare il tempo di modifica, ma sul mio sistema Linux ZFS non è vero, sono stato in grado di cambiare il tempo di modifica anche quando la mia directory era solo r--.
CMCDragonkai,

@CMCDragonkai Hai ragione, la modifica dei metadati si basa sulla proprietà, non sulle autorizzazioni. Non penso che tu possa fare nulla con una rw-directory diversa dall'elenco delle voci (e spostarla / rimuoverla se possiedi il suo genitore, che non richiede alcun permesso sulla directory).
Gilles 'SO- smetti di essere malvagio' il

@Gilles: Esatto. con rw-sulla directory, non riesco a creare nuovi file in esso o modificare quelli esistenti, anche se ho rw-sul file provo a cambiare. Né posso touchil file. Sono su Arch Linux 4.14.13.
Matthias Braun,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.