Qual è il significato di "chmod 666"?


47

Sto usando Linux. Qual è il significato di chmod 666?


28
aka, il comando di Satana.
Moab,

6
Se questo ti disturba (o se non riesci a preoccuparti di ricordare quei numeri) puoi anche scriverlo come chmod a=rw.
Starblue,

comando inutile, poiché il terzo argomento non viene fornito ^^
kokbira

inoltre può produrre difetti di sicurezza (tutti gli utenti possono scrivere il file / cartella) o permessi inutili per file / cartelle
kokbira

Risposte:


112

chmod comando modifica attributi da un file / cartella:

  • chmod 666 file/folder significa che tutti gli utenti possono leggere e scrivere ma non possono eseguire il file / la cartella;
  • chmod 777 file/folder consente tutte le azioni per tutti gli utenti;
  • chmod 744 file/folderconsente solo all'utente (proprietario) di eseguire tutte le azioni; al gruppo e ad altri utenti è consentito solo leggere.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

In alternativa, puoi eseguire il comando con una sintassi più intuitiva, senza bisogno di pensare in binario o ottale (ma la conoscenza della sintassi numerica è così importante): chmod u=rw, g=rw, o=rw file/folder

Ricorda che l'autorizzazione cambia con il chmodcomando richiede almeno 3 argomenti, quindi chmod 666non fa nulla senza esplicito file / cartella per modificare le autorizzazioni.

Assicurati anche di criticare se non produce problemi insicuri o semplicemente se si tratta di un cambiamento di autorizzazione inutile, perché chmod 666consentirà la scrittura di file / cartelle a tutti e l'esecuzione a nessuno.


5
È solo "ottale", non "decimale". +1 comunque.
Ben Voigt,

1
Il terzo punto menzionato nel primo post non è corretto - chmod 711 consente solo al proprietario di eseguire tutte le azioni, il gruppo e gli altri possono solo leggere! [Inserire la descrizione dell'immagine qui] [1] Questa è la tabella per rwx per ottale rwx 000 001 010 011 100 101 110 111 ottale 001 o 1 indica l'autorizzazione di esecuzione 7 ottale, 111 indica l'autorizzazione di lettura ed esecuzione, quindi 711 indica, rwx per il proprietario e x per gruppi e altri.

3
Va comunque a 7, quindi in questo caso non c'è differenza tra ottale e decimale. : /
Rob

sì, @Yash, e dopo 1 anno, 2 mesi e 18 giorni dopo il post originale qualcuno ha visto quell'errore :) Lo correggerò a 744 nell'esempio.
Kokbira,

1
@KyleVassella, ownerè il proprietario del file o della cartella, generalmente quello che l'ha creato. groupè il gruppo di utenti associati a quel file o cartella, generalmente il gruppo in cui appartiene il proprietario. Immagina quindi che io sia rootbira e che il mio groop sia rootusers e tu anche tu faccia parte di quel gruppo e tutti gli altri membri del forum SU siano in un altro gruppo. Se creo un file e lo faccio con chmod 750, lo leggo, lo scrivo e lo eseguo
leggeresti

7

In parole povere: rende un file leggibile e scrivibile dal proprietario del file, dal gruppo del proprietario del file e da tutti gli altri che usano la macchina (tutti). Applicato su una directory consente a tutti di leggere (ottenere elenchi di contenuti di file) di una directory e scrivere (creare, modificare file nella directory) ma non eseguire file dalla directory.

Per informazioni più dettagliate su come chmodfunziona consulta questo pratico tutorial .


2
... Non intendi che tutti leggano / scrivano i file ma non li eseguano, e tutti leggano / scrivano i file in una directory, ma non li elenciamo tutti?
Earlz,

2
ciò che dice @earlz, oltre a scrivere su una directory non significa che è possibile modificare i file lì (scrivere permanenti su un file), ma significa solo che è possibile creare nuove voci (directory, file, collegamenti simbolici, ecc.). Inoltre, è carino da parte tua menzionare le dir per completezza, ma 666 non ha senso per una dir; non elimineresti mai x per il proprietario.
Rich Homolka,

1
@Earlz: grazie per quello. Dimentico sempre cosa fa 666 per le directory perché, beh, non ho mai impostato rw- per un utente su una directory. :)
Ian C.

7

Come menzionato in altre risposte, chmod significa cambiare modalità. Colpisce le autorizzazioni di lettura, scrittura ed eseguibile per il proprietario, il gruppo e altre categorie di utenti. I numeri che seguono il comando (in questo caso 666), indicano come tali autorizzazioni vengono modificate per il file su cui viene eseguito il comando (per 666, significa che il proprietario, il gruppo e altri hanno autorizzazioni di lettura e scrittura, ma nessuna autorizzazione eseguibile) .

Modificando i numeri su valori diversi, si modificano effettivamente le autorizzazioni per il file. Il link che ho citato sopra ha un piccolo strumento per capire quali valori devi inserire per ottenere lo schema di autorizzazioni che stai cercando. Passa anche sopra le opzioni di commutazione disponibili per il comando e alcuni esempi per aiutarti a capire meglio come funziona.


1
Questo è un ottimo sito. Va nei miei segnalibri. Grazie!
Kirk,

5

Il comando chmod (abbreviato da change mode) è un comando Unix che consente a un operatore di dire al sistema quanto (o poco) accesso dovrebbe consentire a un file. Il comando chmod 666indica che tutti gli utenti avranno autorizzazioni di lettura e scrittura.


2

Se le tue domande riguardano più la parte 666 che la parte chmod, ti rimanderei al Linux Documentation Project dove c'è una spiegazione decente su come funzionano i permessi sui file in Linux.

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.