Come usare il comando chmod su Linux

Prompt del terminale stilizzato su un laptop Linux

Fatmawati Achmad Zaenuri/Shutterstock.com



Controlla chi può accedere ai file, cercare directory ed eseguire script utilizzando |_+_| . di Linux comando. Questo comando modifica i permessi dei file Linux, che a prima vista sembrano complicati ma in realtà sono piuttosto semplici una volta che sai come funzionano.

chmod modifica i permessi dei file

In Linux, chi può fare cosa su un file o una directory è controllato tramite insiemi 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.





10 comandi di base di Linux per principianti IMPARENTATO 10 comandi di base di Linux per principianti

Le autorizzazioni controllano le azioni che possono essere eseguite sul file o sulla directory. Consentono o impediscono la lettura, la modifica o l'esecuzione di un file, se si tratta di uno script o di un programma. Per una directory, i permessi governano chi può |_+_| nella directory e chi può creare o modificare i file all'interno della directory.

Usi il |_+_| comando a imposta ciascuno di questi permessi . a guarda quali permessi sono stati impostati su un file o una directory, possiamo usare |_+_|.



Visualizzazione e comprensione dei permessi dei file

Possiamo usare il |_+_| (formato lungo) opzione per avere |_+_| elencare i permessi dei file per file e directory.

chmod

Annuncio pubblicitario

Su ogni riga, il primo carattere identifica il tipo di voce che viene elencata. Se è un trattino (|_+_|) è un file. Se è la lettera |_+_| è una directory.



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

  • I primi tre caratteri mostrano i permessi per l'utente che possiede il file ( permessi utente ).
  • I tre caratteri centrali mostrano i permessi per i membri del file gruppo ( 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 meno di uno dei permessi. Possono essere un trattino (|_+_|) o una lettera. Se il carattere è un trattino, significa che il permesso non è concesso. Se il carattere è |_+_|, |_+_| o |_+_|, il permesso è stato concesso.

Le lettere rappresentano:

  • R : permessi di lettura. Il file può essere aperto e il suo contenuto visualizzato.
  • In : permessi di scrittura. Il file può essere modificato, modificato ed eliminato.
  • X : esegue i permessi. Se il file è uno script o un programma, può essere eseguito (eseguito).

Per esempio:

  • |_+_| significa che non sono state concesse autorizzazioni.
  • |_+_| significa che le autorizzazioni complete sono state concesse. Gli indicatori di lettura, scrittura ed esecuzione sono tutti presenti.

Nella nostra schermata, la prima riga inizia con |_+_|. Questa riga fa riferimento a una directory chiamata archivio. Il proprietario della directory è dave e anche il nome del gruppo a cui appartiene la directory è dave.

I successivi tre caratteri sono i permessi utente per questa directory. Questi mostrano che il proprietario ha le autorizzazioni complete. Il |_+_|, |_+_| e |_+_| i personaggi sono tutti presenti. Ciò significa che l'utente dave ha i permessi di lettura, scrittura ed esecuzione per quella directory.

Il secondo set di tre caratteri sono i permessi di gruppo, questi sono |_+_|. Questi mostrano che i membri del gruppo dave hanno i permessi di lettura ed esecuzione per questa directory. Ciò significa che possono elencare i file e il loro contenuto nella directory e possono |_+_| (eseguire) in quella directory. Non dispongono di autorizzazioni di scrittura, quindi non possono creare, modificare o eliminare file.

Annuncio pubblicitario

Anche il set finale di tre caratteri è |_+_|. Queste autorizzazioni si applicano alle persone che non sono governate dai primi due insiemi di autorizzazioni. Queste persone (chiamate altre) hanno 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. Il proprietario, un utente chiamato dave, dispone anche dei permessi di scrittura.

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

Per il caso speciale del file di script mh.sh, il proprietario dave ei 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

Per usare |_+_| per impostare i permessi, dobbiamo dirgli:

  • Chi: Per chi stiamo impostando le autorizzazioni.
  • Che cosa : Che cambiamento stiamo facendo? Stiamo aggiungendo o rimuovendo l'autorizzazione?
  • Quale : Quale dei permessi stiamo impostando?

Usiamo indicatori per rappresentare questi valori e formiamo brevi dichiarazioni di autorizzazione come |_+_|, dove u significa utente (chi), + significa aggiungere (cosa) e x indica l'autorizzazione di esecuzione (quale).

I valori che possiamo usare sono:

  • tu : Utente, ovvero il proprietario del file.
  • G : Gruppo, ovvero i membri del gruppo a cui appartiene il file.
  • o : Altri, ovvero persone non governate dalla |_+_| e |_+_| autorizzazioni.
  • a : Tutto, cioè tutto quanto sopra.
Annuncio pubblicitario

Se nessuno di questi viene utilizzato, |_+_| si comporta come se |_+_| era stato usato.

I valori che possiamo usare sono:

  • - : Segno meno. Rimuove l'autorizzazione.
  • + : Segno più. Concede il permesso. L'autorizzazione viene aggiunta alle autorizzazioni esistenti. Se vuoi avere questa autorizzazione e solo questa autorizzazione impostata, usa |_+_| opzione, descritta di seguito.
  • = : segno di uguale. Imposta un'autorizzazione e rimuovi gli altri.

I valori che possiamo usare sono:

  • R : Il permesso di lettura.
  • In : Il permesso di scrittura.
  • X : l'autorizzazione di esecuzione.

Impostazione e modifica dei permessi

Diciamo che abbiamo un file in cui tutti hanno le autorizzazioni complete su di esso.

cd

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

chmod

L'uso dell'operatore = significa che eliminiamo tutte le autorizzazioni esistenti e quindi impostiamo quelle specificate.

controlliamo la nuova autorizzazione su questo file:

ls

Le autorizzazioni esistenti sono state rimosse e le nuove autorizzazioni sono state impostate, come previsto.

Che ne dici di aggiungere un'autorizzazione? privo di rimuovere le impostazioni delle autorizzazioni esistenti? Possiamo farlo facilmente anche noi.

Annuncio pubblicitario

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

-l

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

ls

Se diamo un'occhiata alle autorizzazioni, vedremo che l'autorizzazione di esecuzione è ora concessa a tutti e le autorizzazioni esistenti sono ancora in vigore.

-

Avremmo potuto ottenere la stessa cosa senza la a nell'istruzione a+x. Il seguente comando avrebbe funzionato altrettanto bene.

d

Impostazione dei permessi per più file

Possiamo applicare le autorizzazioni a più file contemporaneamente.

Questi sono i file nella directory corrente:

-

Supponiamo di voler rimuovere i permessi di lettura per gli altri utenti dai file con estensione .page. Possiamo farlo con il seguente comando:

r

Controlliamo quale effetto ha avuto:

w

Annuncio pubblicitario

Come possiamo vedere, il permesso di lettura è stato rimosso dai file .page per l'altra categoria di utenti. Nessun altro file è stato interessato.

Se avessimo voluto includere i file nelle sottodirectory, avremmo potuto usare |_+_| (ricorsivo) opzione.

x

Stenografia numerica

Un altro modo per usare |_+_| è fornire le autorizzazioni che desideri concedere al proprietario, al gruppo e ad altri come un numero di tre cifre. La cifra più a sinistra rappresenta le autorizzazioni per il 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) Nessuna autorizzazione.
  • 1: (001) Autorizzazione di esecuzione.
  • 2: (010) Permesso di scrittura.
  • 3: (011) Autorizzazioni di scrittura ed esecuzione.
  • 4: (100) Permesso di lettura.
  • 5: (101) Lettura ed esecuzione delle autorizzazioni.
  • 6: (110) Permessi di lettura e scrittura.
  • 7: (111) Permessi di lettura, scrittura ed esecuzione.

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

Usando questo metodo, imposti i permessi che desideri avere; non si aggiungono queste autorizzazioni alle autorizzazioni esistenti. Quindi, se i permessi di lettura e scrittura fossero già presenti, dovresti usare 7 (111) per aggiungere i permessi di esecuzione. L'utilizzo di 1 (001) rimuoverà le autorizzazioni di lettura e scrittura e aggiungerà l'autorizzazione di esecuzione.

Annuncio pubblicitario

Aggiungiamo nuovamente il permesso di lettura sui file .page per la categoria di utenti altri. Dobbiamo impostare anche i permessi dell'utente e del gruppo, quindi dobbiamo impostarli su ciò che sono già. Questi utenti dispongono già delle autorizzazioni di lettura e scrittura, ovvero 6 (110). Vogliamo che gli altri abbiano la lettura e i permessi, quindi devono essere impostati su 4 (100).

Il seguente comando realizzerà questo:

---

Questo imposta le autorizzazioni che richiediamo per l'utente, i membri del gruppo e altri su ciò che richiediamo. Gli utenti e i membri del gruppo hanno i loro permessi ripristinati a quelli che erano già e gli altri hanno ripristinato il permesso di lettura.

rwx

Opzioni avanzate

Se tu leggi la pagina man per |_+_| vedrai che ci sono alcune opzioni avanzate relative ai bit SETUID e SETGID e alla cancellazione limitata o al bit appiccicoso.

Per il 99% dei casi avrai bisogno di |_+_| per, le opzioni descritte qui ti copriranno.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti