Come usare il comando chmod in Linux

Contenuti

Indicatore terminale stilizzato su un laptop Linux

Controlla chi può accedere ai file, trova directory ed esegui script usando Linux chmod comando. Questo comando modifica i permessi dei file Linux, che a prima vista sembrano complicati, ma in realtà sono abbastanza semplici una volta che sai come funzionano.

chmod modifica i permessi dei file

En Linux, chi può fare cosa con un file o una directory è controllato tramite set di autorizzazioni. Esistono tre serie di autorizzazioni. Un set per il proprietario del file, un altro set per i membri del gruppo del file e un set finale per tutti gli altri.

Le autorizzazioni controllano le azioni che possono essere eseguite sul file o sulla directory. Abilitare o impedire la lettura di un file, modificato il, se è uno script o un programma, eseguito. Per una directory, regola delle autorizzazioni chi può cd nella directory e chi può creare o modificare file all'interno della directory.

tu usi il chmod comando a imposta ciascuno di questi permessi. Per guarda quali permessi sono stati impostati in un file o in una directory, possiamo usare ls.

Visualizza e comprendi i permessi dei file

Possiamo usare il -l (formato lungo) possibilità di avere ls elenca i permessi dei file per file e directory.

ls -l

Su ogni riga, il primo carattere identifica il tipo di voce che si sta elencando. Se è uno script (-) è un file. Se è la lettera d è una directory.

I successivi nove caratteri rappresentano le impostazioni per i tre set di autorizzazioni.

  • I primi tre caratteri mostrano i permessi dell'utente che possiede il file (Permessi utente).
  • I tre caratteri centrali mostrano i permessi per i membri del gruppo del file (permessi di gruppo).
  • Gli ultimi tre caratteri mostrano i permessi per chiunque non sia nelle prime due categorie (altri permessi).

Ci sono tre caratteri in ogni set di autorizzazioni. I caratteri sono indicatori della presenza o assenza di uno dei permessi. Sono un copione (-) o una lettera. Se il personaggio è un copione, significa che il permesso non è concesso. Se il carattere è a r, w, o un x, che il permesso è stato concesso.

Le lettere rappresentano:

  • R: Permessi di lettura. Il file può essere aperto e il suo contenuto può essere visualizzato.
  • w: Permessi di scrittura. Il file può essere modificato, modificare ed eliminare.
  • X: Permessi di esecuzione. Se il file è uno script o un programma, può essere eseguito (correre).

Come esempio:

  • --- significa che non è stata concessa alcuna autorizzazione.
  • rwx significa che sono state concesse tutte le autorizzazioni. Indicatori di lettura, la scrittura e l'esecuzione sono tutte presenti.

Nel nostro screenshot, la prima riga inizia con a d. Questa riga si riferisce a una directory chiamata “file”. Il proprietario della directory è “dave” e viene chiamato anche il nome del gruppo a cui appartiene la directory “dave”.

I prossimi tre caratteri sono i permessi utente per questa directory. Questi mostrano che il proprietario ha tutti i permessi. il r, w, e x tutti i personaggi sono presenti. Ciò significa che l'utente dave ha i permessi di lettura, scrivere ed eseguire per quella directory.

Il secondo set di tre caratteri sono i permessi di gruppo, questi sono r-x. Questi mostrano che i membri del gruppo dave hanno letto ed eseguito i permessi per questa directory. Ciò significa che possono elencare i file e il loro contenuto nella directory, e può cd (correre) in quella directory. Non hanno i permessi di scrittura, quindi non possono creare, modificare o eliminare file.

Il set finale di tre personaggi in più r-x. Queste autorizzazioni si applicano alle persone che non sono governate dai primi due insiemi di autorizzazioni. Questa gente (chiama “Altro”) avere i permessi di lettura ed esecuzione su questa directory.

Quindi, per riassumere, i membri del gruppo e altri hanno i permessi di lettura ed esecuzione. Proprietario, un utente di nome Dave, ha anche i permessi di scrittura.

Per tutti gli altri file (a parte il file di script mh.sh), Dave e i membri del gruppo di Dave hanno proprietà di lettura e scrittura sui file, e gli altri hanno solo i permessi di lettura.

Per il caso speciale del file di script mh.sh, il proprietario dave e i membri del gruppo hanno i permessi di lettura, scrittura ed esecuzione, e gli altri hanno solo i permessi di lettura ed esecuzione.

Comprensione della sintassi dei permessi

Utilizzo chmod per determinare i permessi, dobbiamo dirtelo:

  • OMS: Per chi stiamo impostando le autorizzazioni?.
  • Quella: Che cambiamento stiamo facendo? Stiamo aggiungendo o rimuovendo l'autorizzazione??
  • Quale: Quale delle autorizzazioni stiamo impostando?

Utilizziamo indicatori per rappresentare questi valori e formare brief “dichiarazioni di autorizzazione” Che cosa u+x, dove “tu” significa “Nome utente” (chi), “+” mezzi per aggiungere (Quello) e “X” indica l'autorizzazione di esecuzione (quale).

I valori di “chi” che possiamo usare sono:

  • tuo: Utente, In altre parole, il proprietario del file.
  • grammo: Gruppo, In altre parole, membri del gruppo a cui appartiene il file.
  • oh: Altri, In altre parole, persone che non sono governate da u e g permessi.
  • un: Tutto quanto, In altre parole, tutto precedente.

Se nessuno di questi viene utilizzato, chmod si comporta come se “a” è stato utilizzato.

I valori di “Quello” possiamo usare sono:

  • : Meno. Rimuovi autorizzazione.
  • +: Segno più. Concedere l'autorizzazione. L'autorizzazione viene aggiunta alle autorizzazioni esistenti. Se vuoi avere questa autorizzazione e solo questa autorizzazione impostata, Utilizzare il = opzione, descritto sotto.
  • =: Segno di uguale. Imposta un permesso e rimuovi gli altri.

Il “Quello” i valori che possiamo usare sono:

  • R: Permesso di lettura.
  • w: Permesso di scrittura.
  • X: Permesso di esecuzione.

Determinare e modificare i permessi

Diciamo che abbiamo un file in cui tutti hanno i permessi completi.

ls -l nuovo_ file.txt

Vogliamo che l'utente dave abbia i permessi di lettura e scrittura e che il gruppo e gli altri utenti abbiano solo i permessi di lettura. Possiamo farlo usando il seguente comando:

chmod u=rw,e = r nuovo_file.txt

L'utilizzo dell'operatore “=” significa che eliminiamo le autorizzazioni esistenti e quindi impostiamo quelle specificate.

controlliamo la nuova autorizzazione in questo file:

ls -l nuovo_file.txt

Le autorizzazioni esistenti sono state rimosse e sono state impostate nuove autorizzazioni, come ci aspettavamo.

Che ne dici di aggiungere un'autorizzazione?? privo di Cancella le impostazioni di autorizzazione esistenti? Possiamo anche farlo facilmente.

Diciamo che abbiamo un file di script che abbiamo finito di modificare. Dobbiamo renderlo eseguibile per tutti gli utenti. I tuoi permessi attuali sono simili a questo:

ls -l nuovo_script.sh

Possiamo aggiungere l'autorizzazione di esecuzione per tutti con il seguente comando:

chmod a+x new_script.sh

Se diamo un'occhiata ai permessi, vedremo che il permesso di esecuzione è ora concesso a tutti, e i permessi esistenti sono ancora in vigore.

ls -l nuovo_script.sh

Avremmo potuto ottenere la stessa cosa senza il “un” nella dichiarazione “un + X”. Il seguente comando avrebbe funzionato altrettanto bene.

chmod +x new_script.sh

Determinare le autorizzazioni per più file

Possiamo applicare le autorizzazioni a più file contemporaneamente.

Questi sono i file nella directory corrente:

ls -l

Supponiamo di voler cancellare le autorizzazioni di lettura per il “Altro” Utenti di file con estensione “.pagina”. Possiamo farlo con il seguente comando:

chmod o-r *.page

Vediamo che effetto ha avuto:

ls -l

Come possiamo vedere, L'autorizzazione di lettura è stata rimossa dai file “.pagina” per la categoria “Altro” numero di utenti. Nessun altro file è stato interessato.

Se avessimo voluto includere i file nelle sottodirectory, avremmo potuto usare il -R opzione (ricorsivo).

chmod -R o-r *.page

Stenografia numerica

Un altro modo di usare chmod è fornire le autorizzazioni che si desidera concedere al proprietario, gruppo e altre persone come numero a tre cifre. La cifra più a sinistra rappresenta i permessi del proprietario. La cifra centrale rappresenta le autorizzazioni per i membri del gruppo. La cifra più a destra rappresenta i permessi per gli altri.

Le cifre che puoi usare e cosa rappresentano sono elencate qui:

  • 0: (000) Senza permesso.
  • 1: (001) Autorizzazione all'esecuzione.
  • 2: (010) permesso di scrittura.
  • 3: (011) Permessi di scrittura ed esecuzione.
  • 4: (100) Permesso di lettura.
  • 5: (101) Leggi ed esegui i permessi.
  • 6: (110) Permessi di lettura e scrittura.
  • 7: (111) Leggi, permessi di scrittura ed esecuzione.

Ciascuno dei tre permessi è rappresentato da uno dei bit nel binario come del numero decimale. Quindi, 5, Che cos'è 101 in binario, significa leggere ed eseguire. 2, Che cos'è 010 in binario, significherebbe il permesso di scrittura.

Con questo metodo, imposta i permessi che vuoi avere; non aggiungere questi permessi ai permessi esistenti. Quindi, se i permessi di lettura e scrittura erano già presenti, dovrei usare 7 (111) per aggiungere i permessi di esecuzione. L'impiego di 1 (001) Rimuoverei le autorizzazioni di lettura e scrittura e aggiungerei l'autorizzazione di esecuzione.

Aggiungiamo di nuovo l'autorizzazione di lettura sui file “.pagina” per la categoria di altri utenti. Dobbiamo anche configurare i permessi di utenti e gruppi, quindi dobbiamo configurarli in quello che già sono. Questi utenti hanno già i permessi di lettura e scrittura, Quali sono 6 (110). Vogliamo il “Altro” disporre di autorizzazioni di lettura e, perché, dovrebbe essere stabilito in 4 (100).

Il seguente comando realizzerà questo:

chmod 664 *.pagina

Questo imposta le autorizzazioni che richiediamo per l'utente, membri del gruppo e altri in cui richiediamo. Le autorizzazioni degli utenti e dei membri del gruppo vengono ripristinate su quelle che erano già, e il permesso di lettura degli altri viene ripristinato.

ls -l

Opzioni avanzate

Se tu leggi la pagina man di chmod Vedrai che ci sono alcune opzioni avanzate associate ai bit SETUID e SETGID, e con cancellazione o bit limitati “appiccicaticcio”.

Per lui 99% dei casi, avrà bisogno chmod per, le alternative descritte qui ti copriranno.

impostaTimeout(funzione(){
!funzione(F,B,e,v,n,T,S)
{Se(f.fbq)Restituzione;n=f.fbq=funzione(){n.callMethod?
n.callMethod.apply(n,argomenti):n.queue.push(argomenti)};
Se(!f._fbq)f._fbq = n;n.push=n;n.loaded=!0;n.version='2.0′;
n.coda=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, documento,'copione',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('dentro', '335401813750447');
fbq('traccia', 'Visualizzazione della pagina');
},3000);

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.