Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Salute à tutti. Questa hè una traduzzione di un articulu da u libru RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 è EX300.

Push: Spergu chì l'articulu serà utile micca solu per i principianti, ma ancu aiutà à l'amministratori più sperimentati à simplificà a so cunniscenza.

Allora andemu

Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Per accede à i schedari in Linux, i permessi sò usati. Questi permessi sò attribuiti à trè ogetti: u pruprietariu di u schedariu, u pruprietariu di u gruppu, è un altru oggettu (vale à dì, tutti l'altri). In questu articulu, amparate cumu applicà i permessi.

Questu articulu principia cù una visione generale di i cuncetti basi, seguita da una discussione di Permissions Special è Access Control Lists (ACL). À a fine di questu articulu, copremu l'impostazione di permessi predeterminati via umask, è ancu a gestione di l'attributi di l'utilizatori estesi.

Gestione di a pruprietà di i schedari

Prima di discutiri i permessi, duvete esse cuscenti di u rolu di u pruprietariu di u schedariu è di u cartulare. A pruprietà di i fugliali è i cartulari hè vitale per trattà i permessi. In sta rùbbrica, prima amparà cumu si pò vede u pruprietariu. Tandu amparate cumu cambià u pruprietariu di u gruppu è l'utilizatore per i schedari è i cartulari.

Mostra u pruprietariu di un schedariu o cartulare

In Linux, ogni schedariu è ogni cartulare hà dui pruprietarii: un utilizatore è un patrone di gruppu.

Questi pruprietarii sò stabiliti quandu un schedariu o cartulare hè creatu. L'utilizatore chì crea u schedariu diventa u pruprietariu di quellu schedariu, è u gruppu primariu chì appartene u stessu utilizatore diventa ancu u pruprietariu di quellu schedariu. Per stabilisce se voi, cum'è utilizatore, avete permessu di accede à un schedariu o cartulare, a cunchiglia verifica a pruprietà.

Questu succede in l'ordine seguente:

  1. A cunchiglia verifica per vede s'ellu hè u pruprietariu di u schedariu chì vulete accede. Sè vo site u pruprietariu, uttene permessi è a cunchiglia ferma a verificazione.
  2. Se ùn site micca u pruprietariu di u schedariu, a cunchiglia verificarà per vede s'ellu site un membru di un gruppu chì hà permessi nantu à u schedariu. Sè vo site un membru di stu gruppu, accede à u schedariu cù i permessi chì u gruppu hà stabilitu, è a cunchiglia cesserà di verificà.
  3. Se ùn site nè un utilizatore nè u pruprietariu di un gruppu, vi sò datu i diritti di l'altri utilizatori (Altri).

Per vede l'assignazioni di u pruprietariu attuale, pudete aduprà u cumandamentu ls-l. Stu cumanda mostra l'utilizatore è u pruprietariu di u gruppu. Quì sottu pudete vede i paràmetri di u pruprietariu per i cartulari in u cartulare /home.

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

Utilizà u cumandamentu ls pudete vede u pruprietariu di i schedari in un repertoriu datu. Calchì volta pò esse utile per ottene una lista di tutti i schedari nantu à u sistema chì anu un utilizatore o un gruppu cum'è u pruprietariu. Per questu pudete aduprà truvà. Argumentu truvà-utente pò esse usatu per questu scopu. Per esempiu, u cumandimu seguitu elenca tutti i schedari chì sò di l'utilizatori linda:

find / -user linda

Pudete ancu aduprà truvà per circà i schedari chì anu un certu gruppu cum'è u so pruprietariu.

Per esempiu, u cumandimu seguitu cerca tutti i schedari chì appartenenu à u gruppu patti:

find / -group users

Cambiamentu di pruprietariu

Per applicà i permessi adatti, a prima cosa da cunsiderà hè a pruprietà. Ci hè un cumandamentu per questu chown. A sintassi di stu cumandamentu hè faciule da capisce:

chown кто что

Per esempiu, u cumandamentu seguente cambia u pruprietariu di u cartulare /home/account à l'utilizatori linda:

chown linda /home/account

squadra chown hà parechje opzioni, una di e quali hè particularmente utile: -R. Pudete guessà ciò chì face perchè sta opzione hè dispunibule ancu per parechje altre cumandamenti. Questu permette di stabilisce recursivamente u pruprietariu, chì permette di stabilisce u pruprietariu di u repertoriu attuale è tuttu quì sottu. U cumandimu seguitu cambia a pruprietà di u cartulare /home è tuttu ciò chì sottu à l'utilizatore linda:

Avà i pruprietarii pareanu cusì:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

Facemu :

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

Avà l'utilizatori lisa hè diventatu u pruprietariu di u cartulare di u contu:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

Cambia u pruprietariu di un gruppu

Ci hè duie manere di cambià a pruprietà di un gruppu. Pudete fà questu utilizendu chown, ma ci hè un cumandamentu speciale chjamatu chgrpchì face u travagliu. Sè vo vulete aduprà u cumandamentu chown, usu . o : davanti à u nome di u gruppu.

U cumandimu seguitu cambia ogni pruprietariu di u gruppu /home/account à u gruppu di contu:

chown .account /home/account

pudete aduprà chown per cambià u pruprietariu di un utilizatore è / o gruppu in parechje manere. Eccu alcuni esempi:

  • chown lisa myfile1 stabilisce l'utilizatore lisa cum'è u pruprietariu di myfile1.
  • chown lisa.sales myfile stabilisce l'utilizatori lisa cum'è u pruprietariu di u schedariu myfile, è stabilisce ancu u gruppu di vendita cum'è u pruprietariu di u stessu schedariu.
  • chown lisa:sales myfile u listessu cum'è u cumandamentu precedente.
  • chown .sales myfile stabilisce u gruppu di vendita cum'è u pruprietariu di myfile senza cambià u pruprietariu di l'utilizatore.
  • chown :sales myfile u listessu cum'è u cumandamentu precedente.

Pudete aduprà u cumandamentu chgrpper cambià u pruprietariu di u gruppu. Cunsiderate l'esempiu seguente, induve pudete aduprà chgrp stabilisce u pruprietariu di u cartulare di u contu à u gruppu di vendita:

chgrp .sales /home/account

Cum'è cù chown, pudete aduprà l'opzione -R с chgrp, è ancu cambià recursivamente u pruprietariu di u gruppu.

Capisce u pruprietariu predeterminatu

Puderete avè nutatu chì quandu un utilizatore crea un schedariu, a pruprietà predeterminata hè applicata.
L'utilizatore chì crea u schedariu automaticamente diventa u pruprietariu di quellu schedariu, è u gruppu primariu di quellu utilizatore diventa automaticamente u pruprietariu di quellu schedariu. Questu hè di solitu u gruppu chì hè listatu in u schedariu /etc/passwd cum'è u gruppu primariu di l'utilizatori. Tuttavia, se l'utilizatore hè un membru di più di un gruppu, l'utilizatore pò cambià u gruppu primariu efficace.

Per mustrà u gruppu primariu attuale efficace, l'utilizatore pò aduprà u cumandamentu i gruppi:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Se l'utente linda attuale vole cambià u gruppu primariu efficace, hà da aduprà u cumandamentu novu grpseguita da u nome di u gruppu ch'ellu vole stabilisce cum'è u novu gruppu primariu efficace. Dopu aduprà u cumandamentu novu grp u gruppu primariu serà attivu finu à chì l'utilizatore entre in un cumandamentu isciuta o micca fora.

I seguenti mostra cumu l'utilizatori linda usa stu cumandamentu, cù a vendita cum'è u gruppu primariu:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

Dopu avè cambiatu u gruppu primariu efficau, tutti i novi fugliali creati da l'utilizatore averà quellu gruppu cum'è u pruprietariu di u gruppu. Per vultà à u paràmetru originale di u gruppu primariu, utilizate isciuta.

Per pudè aduprà u cumandamentu novu grp, l'utilizatore deve esse un membru di u gruppu chì vulete usà cum'è u gruppu primariu. Inoltre, una password di gruppu pò esse usata per un gruppu cù u cumandimu gpasswd. Se l'utilizatore usa u cumandamentu novu grpma ùn hè micca un membru di u gruppu di destinazione, a cunchiglia richiede a password di u gruppu. Dopu avè inseritu a password di u gruppu curretta, un novu gruppu primariu efficace serà stabilitu.

A gestione di i diritti fundamentali

U sistema di permessu Linux hè statu inventatu in l'anni 1970. Siccomu i bisogni di l'informatica eranu limitati in quelli anni, u sistema di permessu di basa era abbastanza limitatu. Stu sistema di permessu usa trè permessi chì ponu esse appiicati à i schedari è i cartulari. In questa sezione, amparate cumu utilizà è cambià sti permessi.

Capisce i permessi di lettura, scrittura è esecuzione

Trè permessi basi permettenu di leghje, scrive è eseguisce i schedari. L'effettu di sti permessi differisce quandu appiicati à i schedarii o cartulari. Per un schedariu, u permessu di lettura vi dà u dirittu di apre u schedariu per leghje. Dunque, pudete leghje u so cuntenutu, ma questu significa chì u vostru urdinatore pò apre u schedariu per fà qualcosa cun ellu.

Un schedariu di prugramma chì hà bisognu di accessu à una biblioteca deve, per esempiu, avè l'accessu di leghje à quella biblioteca. Ne segue chì u permessu di lettura hè u permessu più basicu chì avete bisognu di travaglià cù i schedari.

Quandu hè appiicata à un repertoriu, a lettura permette di vede u cuntenutu di quellu repertoriu. Avete da esse cuscenti chì stu permessu ùn vi permette micca di leghje i schedari in u cartulare. U sistema di permessu Linux ùn cunnosci micca l'eredità, è l'unicu modu per leghje un schedariu hè di utilizà permessi di lettura in quellu schedariu.

Cume pudete probabilmente guessà, u permessu di scrittura, se appiicatu à un schedariu, permette di scrive à u schedariu. In altre parolle, permette di cambià u cuntenutu di i schedari esistenti. Tuttavia, ùn vi permette micca di creà o sguassate novi schedari o di cambià i permessi di u schedariu. Per fà questu, avete bisognu di dà permessu di scrittura à u cartulare induve vulete creà u schedariu. In cartulari, stu permessu permette ancu di creà è sguassà novi subdirectorii.

Permissione di esecutà hè ciò chì avete bisognu per eseguisce u schedariu. Ùn serà mai installatu per automaticamente, chì rende Linux quasi completamente immune à i virus. Solu qualcunu cù permessi di scrittura nantu à u cartulare pò applicà u permessu di esecutà.

I seguenti riassume l'usu di permessi basi:

Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Utilizà chmod

U cumandamentu hè utilizatu per gestisce i permessi. chmod. Utilizendu chmod pudete stabilisce permessi per l'utilizatori (utilizatori), gruppi (gruppi) è altri (altri). Pudete aduprà stu cumandamentu in dui modi: u modu relative è u modu assolutu. In u modu assolutu, trè cifri sò usati per stabilisce permessi basi.

Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Quandu stabilisce i permessi, calculate u valore chì avete bisognu. Se vulete stabilisce leghje / scrive / esecutà per l'utilizatore, leghje / esecutà per u gruppu, è leghje / esecutà per altri in / somefile allora utilizate u cumandimu seguitu chmod:

chmod 755 /somefile

Quandu si usa chmod in questu modu, tutti i permessi attuali sò rimpiazzati da i permessi chì avete stabilitu.

Se vulete cambià i permessi relative à i permessi attuali, pudete aduprà chmod in modu relativo. Utilizendu chmod in modu relativo, travagliate cù trè indicatori per indicà ciò chì vulete fà:

  1. Prima specificate quale vulete cambià i permessi. Per fà questu, pudete sceglie trà l'utilizatori (u), gruppu (g) è altri (o).
  2. Allora aduprate una dichjarazione per aghjunghje o caccià i permessi da u modu attuale, o stabiliscenu assolutamente.
  3. À a fine utilizate r, w и xper specificà quale permessi vulete stabilisce.

Quandu cambiate permessi in u modu relative, pudete saltà a parte "à" per aghjunghje o sguassà permessi per tutti l'uggetti. Per esempiu, stu cumandimu aghjusta u permessu di eseguisce per tutti l'utilizatori:

chmod +x somefile

Quandu travaglia in modu relative, pudete ancu aduprà cumandamenti più cumplessi. Per esempiu, questu cumanda aghjunghje u permessu di scrittura à un gruppu è sguassate u permessu di lettura per l'altri:

chmod g+w,o-r somefile

Quandu si usa chmod -R o+rx /data avete stabilitu u permessu di eseguisce per tutti i cartulari è i fugliali in u cartulare / data. Per stabilisce u permessu di esecutà solu per i cartulari è micca per i schedari, utilizate chmod -R o+ rX /data.

A X maiuscula assicura chì i schedari ùn ricevenu micca permessu di esecutà, salvu chì u schedariu hà digià stabilitu permessu di esecutà per certi oggetti. Questu facenu X un modu più intelligente per trattà cù permessi di eseguisce; questu evitarà stabilisce stu permessu nantu à i schedari induve ùn hè micca necessariu.

I diritti estesi

In più di i permessi basi chì avete appena lettu, Linux hà ancu un inseme di permessi avanzati. Questi ùn sò micca i permessi chì avete stabilitu per automaticamente, ma qualchì volta furniscenu un aghjuntu utile. In questa sezione, amparate ciò chì sò è cumu si stallanu.

Capisce i permessi estesi di SUID, GUID è Sticky Bit

Ci sò trè permessi avanzati. U primu di questi hè u permessu di stabilisce un identificatore d'utilizatore (SUID). In certi casi speciali, pudete applicà stu permessu à i fugliali eseguibili. Per automaticamente, un utilizatore chì esegue un eseguibile eseguisce quellu schedariu cù i so permessi.

Per l'utilizatori ordinali, questu generalmente significa chì l'usu di u prugramma hè limitatu. Tuttavia, in certi casi, l'utilizatore hà bisognu di permessi speciali, solu per fà un compitu specificu.

Cunsiderate, per esempiu, una situazione induve un utilizatore hà bisognu di cambià a so password. Per fà questu, l'utilizatore deve scrive a so nova password à u schedariu /etc/shadow. Tuttavia, stu schedariu ùn hè micca scrittu da utilizatori non-root:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

U permessu SUID offre una suluzione à stu prublema. L'utilità /usr/bin/passwd usa stu permessu per automaticamente. Questu significa chì quandu cambia a password, l'utilizatore diventa temporaneamente root, chì li permette di scrive à u schedariu /etc/shadow. Pudete vede u permessu SUID cun ls-l quantu s in una pusizioni induve normalmente aspittàva di vede x per permessi persunalizati:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

U permessu SUID pò esse utile (è in certi casi hè), ma à u stessu tempu hè potenzalmentu periculoso. S'ellu ùn hè micca appiicatu bè, pudete dà accidentalmente permessi di root. Dunque, ricumandemu di utilizà solu cù a maiò cura.

A maiò parte di l'amministratori ùn anu mai bisognu di usà; vi vede solu in certi schedari induve u sistema upirativu avissi a mettiri lu per difettu.

U sicondu permessu speciale hè l'identificatore di u gruppu (SGID). Stu permessu hà dui effetti. Quandu hè appiicatu à un schedariu eseguibile, dà à l'utilizatore chì eseguisce u schedariu i permessi di u pruprietariu di u gruppu di u schedariu. Allora SGID pò fà più o menu a stessa cosa chì SUID. Tuttavia, SGID ùn hè praticamente micca usatu per questu scopu.

Cum'è cù u permessu SUID, SGID hè appiicatu à certi schedarii di u sistema cum'è un paràmetru predeterminatu.

Quandu hè appiicatu à un repertoriu, u SGID pò esse utile perchè pudete aduprà per stabilisce u pruprietariu di u gruppu predeterminatu per i schedari è i subdirectori creati in quellu repertoriu. Per automaticamente, quandu un utilizatore crea un schedariu, u so gruppu primariu efficace hè stabilitu cum'è u pruprietariu di u gruppu per quellu schedariu.

Questu ùn hè micca sempre assai utile, soprattuttu chì l'utilizatori di Red Hat / CentOS anu u so gruppu primariu stabilitu à un gruppu cù u stessu nome cum'è l'utilizatore, è di quale l'utilizatore hè l'unicu membru. Cusì, per automaticamente, i schedari chì l'utilizatori creanu seranu spartuti in massa.

Imagine una situazione induve l'utilizatori linda è lori travaglianu in cuntabilità è sò membri di un gruppu contu. Per automaticamente, sti utilizatori sò membri di un gruppu privatu di quale sò l'unicu membru. Tuttavia, i dui utilizatori sò membri di u gruppu di contu, ma ancu cum'è un paràmetru di gruppu secundariu.

A situazione predeterminata hè chì quandu qualchissia di sti utilizatori creanu un schedariu, u gruppu primariu diventa u pruprietariu. Dunque, per difettu, linda ùn pò micca accede à i schedari creati da lori, è vice versa. In ogni casu, se crea un repertoriu di gruppu spartutu (dicu / groups/account) è assicuratevi chì u permessu SGID hè appiicatu à quellu repertoriu è chì u contu di u gruppu hè stabilitu cum'è u pruprietariu di u gruppu per quellu repertoriu, tutti i schedari creati in quellu repertoriu è tutti di i so subdirectorii, uttene ancu u contu di u gruppu cum'è u pruprietariu di u gruppu per automaticamente.

Per questu mutivu, u permessu SGID hè un permessu assai utile per stabilisce nantu à i direttori di u gruppu publicu.

Permissione SGID mostrata in output ls-l quantu s in a pusizioni induve normalmente truverete permessu di eseguisce un gruppu:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

U terzu di i permessi spiciali hè u sticky bit. Stu permessu hè utile per a prutezzione di i fugliali da l'eliminazione accidintali in un ambiente induve parechji utilizatori anu accessu à scrittura à u stessu cartulare. Se si usa un sticky bit, un utilizatore pò sguassà solu un schedariu s'ellu hè u pruprietariu di l'utilizatori di u schedariu o di u cartulare chì cuntene u schedariu. Per questu mutivu, hè utilizatu cum'è u permessu predeterminatu per u repertoriu /tmp è pò esse utile ancu per i direttori di u gruppu publicu.

Senza u bit sticky, se l'utilizatore pò creà schedarii in un repertoriu, ponu ancu sguassà i schedari da quellu repertoriu. In un ambiente di gruppu publicu, questu pò esse fastidiosu. Imagine l'utilizatori linda è lori, chì tutti dui anu permessi di scrittura à u cartulare / data/account è uttene quelli permessi essendu membri di u gruppu di contu. Dunque, linda pò sguassà i schedari creati da lori è viciversa.

Quandu applicà u bit sticky, l'utilizatore pò sguassà i schedari solu se una di e seguenti cundizioni hè vera:

  • L'utilizatore hè u pruprietariu di u schedariu;
  • L'utilizatore hè u pruprietariu di u cartulare induve u schedariu hè situatu.

Quandu si usa ls-l, pudete vede u pocu appiccicosu cum'è t in a pusizioni induve normalmente vede u permessu di esecuzione per l'altri:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Applicazione di diritti estesi

Per applicà SUID, SGID è sticky bit pudete ancu aduprà chmod. SUID hà un valore numericu di 4, SGID hà un valore numericu di 2, è u bit sticky hà un valore numericu di 1.

Se vulete applicà sti permessi, avete bisognu di aghjunghje un argumentu di quattru cifre chmod, chì u primu cifru si riferisce à permessi speciali. A linea seguente, per esempiu, aghjunghje u permessu SGID à u cartulare è stabilisce rwx per l'utilizatori è rx per u gruppu è altri:

chmod 2755 /somedir

Questu hè piuttostu impraticabile se avete bisognu di vede i permessi attuali chì sò stabiliti prima di travaglià chmod in modu assolutu. (Correte u risicu di sovrascrive i permessi s'ellu ùn avete micca.) Allora vi ricumandemu di eseguisce in modu relative se avete bisognu di applicà qualcunu di i permessi speciali:

  1. Per usu SUID chmod u+s.
  2. Per usu SGID chmod g+s.
  3. Per usu appiccicosu chmod + t, seguita da u nome di u schedariu o di u cartulare per quale vulete stabilisce permessi.

A tavula riassume tuttu ciò chì avete bisognu di sapè nantu à a gestione di permessi speciali.

Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Esempiu di travaglià cù diritti speciali

In questu esempiu, utilizate permessi speciali per fà più faciule per i membri di u gruppu per sparte i fugliali in u cartulare di u gruppu spartutu. Assegnate u bit ID à l'ID di u gruppu stabilitu è ​​ancu à u bit sticky, è vede chì una volta chì sò stabiliti, e funzioni sò aghjunte per fà più faciule per i membri di u gruppu per travaglià inseme.

  1. Apertura un terminal induve site l'utilizatore linda. Pudete creà un utilizatore cù u cumandimu Linda, aghjunghje password passwd Linda.
  2. Crea u repertoriu / data in a radica è u subdirectory / data / sales cù u cumandimu mkdir -p /data/sales. Cumpleta cd /data/salesper andà in u cartulare di vendita. Cumpleta tocca linda1 и tocca linda2per creà dui schedari vioti di linda.
  3. Esecutà su-lisa per cambià l'utilizatore attuale à l'utilizatori lisa, chì hè ancu un membru di u gruppu di vendita.
  4. Esecutà cd /data/sales è da quellu repertoriu eseguite ls-l. Vi vede dui schedari chì sò stati creati da l'utilizatore linda è appartenenu à u gruppu linda. Cumpleta rm -f linda*. Stu vi sguassà i dui schedari.
  5. Esecutà tocca lisa1 и tocca lisa2per creà dui schedari chì sò pussede da l'utilizatori lisa.
  6. Esecutà su- per elevà i vostri privilegii à root.
  7. Esecutà chmod g+s,o+t /data/salesper stabilisce u bit identificatore di u gruppu (GUID) è ancu u bit sticky in u cartulare di u gruppu spartutu.
  8. Esecutà su-linda. Allora fate tocca linda3 и tocca linda4. Avete avà vede chì i dui schedarii chì avete creatu sò di u gruppu di vendita, chì hè u patrone di u gruppu di u cartulare / data / sales.
  9. Esecutà rm -rf lisa*. U sticky bit impedisce à sti schedari da esse sguassati in nome di l'utilizatori linda, postu chì ùn site micca u pruprietariu di sti schedari. Nota chì se l'utilizatore linda hè u pruprietariu di u cartulare / data/sales, ponu eliminà questi schedari in ogni modu!

Gestione ACL (setfacl, getfacl) in Linux

Ancu s'è i permessi estesi discututi sopra aghjunghjenu funziunalità utile à a manera chì Linux gestisce i permessi, ùn vi permette micca di cuncede permessi à più di un utilizatore o gruppu in u stessu schedariu.

Listi di cuntrollu di accessu offrenu sta funzione. Inoltre, permettenu à l'amministratori di stabilisce permessi predeterminati in una manera cumplessa, induve i permessi stabiliti pò varià da u cartulare à u cartulare.

Capisce l'ACL

Ancu se u subsistema ACL aghjusta una grande funziunalità à u vostru servitore, hà un svantaghju: micca tutti l'utilità u supportanu. Per quessa, pudete perde i vostri paràmetri ACL quandu copiate o move i schedari, è u vostru software di salvezza pò fallu di fà una copia di salvezza di i vostri paràmetri ACL.

L'utilità tar ùn sustene micca ACL. Per assicurà chì i paràmetri ACL ùn sò micca persi quandu crea una copia di salvezza, utilizate stella invece di catrame. stella travaglia cù e listesse opzioni cum'è tar; solu aghjunghje supportu per i paràmetri ACL.

Pudete ancu fà una copia di salvezza ACL cù getfacl, chì pò esse restauratu cù u cumandimu setfacl. Per creà una copia di salvezza, utilizate getfacl -R /directory> file.acls. Per restaurà i paràmetri da un schedariu di salvezza, utilizate setfacl --restore=file.acl.

A mancanza di supportu da certi arnesi ùn deve esse un prublema. L'ACL sò spessu appiicati à i cartulari cum'è una misura strutturale in quantu à i schedarii individuali.
Per quessa, ùn ci sarà assai di elli, ma solu uni pochi, appiicati in lochi intelligenti in u sistema di schedari. Dunque, restaurà l'ACL originali cù quale avete travagliatu hè relativamente faciule, ancu s'ellu u vostru software di salvezza ùn li supporta micca.

Preparazione di u sistema di fugliale per ACL

Prima di principià à travaglià cù l'ACL, pudete avè bisognu di preparà u vostru sistema di fugliale per sustene l'ACL. Perchè i metadati di u sistema di fugliale deve esse allargatu, ùn ci hè micca sempre un supportu predeterminatu per ACL in u sistema di fugliale. Sè avete un missaghju "operazione micca supportata" quandu stabilisce l'ACL per un sistema di fugliale, u vostru sistema di fugliale ùn pò micca sustene l'ACL.

Per riparà questu avete bisognu di aghjunghje l'opzione montà acl in /etc/fstab per chì u sistema di fugliale hè muntatu cù supportu ACL per difettu.

Cambia è vede i paràmetri ACL cù setfacl è getfacl

Per stabilisce un ACL avete bisognu di u cumandimu setfacl. Per vede i paràmetri ACL attuale, avete bisognu getfacl. squadra ls-l ùn mostra micca ACL esistenti; mostra solu un + dopu a lista di permessi, chì indica chì l'ACL s'applicanu ancu à u schedariu.

Prima di stallà l'ACL, hè sempre una bona idea di mostrà i paràmetri ACL attuali getfacl. In l'esempiu sottu, pudete vede i permessi attuali, cum'è mostratu cù ls-l, è ancu cum'è mostratu cù getfacl. Sè vo circate abbastanza vicinu, vi vede chì l 'infurmazione mustratu hè esattamente u listessu.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

In u risultatu di eseguisce u cumandamentu getfacl sottu pudete vede chì i permessi sò mostrati per trè ogetti diffirenti: utilizatore, gruppu è altri. Avà aghjunghje un ACL per dà permessi di lettura è eseguisce ancu à u gruppu di vendita. cumanda per questu setfacl -mg:sales:rx /dir. In questa squadra -m indica chì i paràmetri ACL attuali anu da esse cambiatu. Eppo g:sales:rx dice à u cumandimu di stabilisce l'ACL di lettura-eseguita (rx) per u gruppu (g) vendite. Quì sottu pudete vede ciò chì u cumandamentu s'assumiglia, è ancu l'output di u cumandimu getfacl dopu avè cambiatu i paràmetri ACL attuale.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

Avà chì avete capitu cumu cunfigurà un ACL di gruppu, hè faciule capisce ACL per l'utilizatori è l'altri utilizatori. Per esempiu, u cumandamentu setfacl -mu:linda:rwx /data dà permessi à l'utilizatori linda in u cartulare / data senza fà ellu u pruprietariu o cambià l'assignazione di u pruprietariu attuale.

squadra setfacl hà parechje funziunalità è opzioni. Una opzione hè particularmente impurtante, u paràmetru -R. Se s'utilice, l'opzione rende l'ACL stabilitu per tutti i fugliali è i subdirectori chì esistenu attualmente in u repertoriu induve stabilisce l'ACL. Hè ricumandemu chì avete sempre aduprà sta opzione quandu cambiate l'ACL per i cartulari esistenti.

U travagliu cù l'ACL predeterminati

Unu di i vantaghji di l'usu ACL hè chì pudete cuncede permessi à parechji utilizatori o gruppi in un annuariu. Un altru benefiziu hè chì pudete attivà l'eredità travagliendu cù l'ACL predeterminati.

Per stabilisce l'ACL predeterminatu, determinate i permessi chì saranu stabiliti per tutti l'articuli novi creati in u cartulare. Siate cuscenti chì l'ACL predeterminatu ùn cambia micca permessi nantu à i fugliali è i subdirectori esistenti. Per cambià, avete bisognu di aghjunghje ancu un ACL normale!

Questu hè impurtante di sapè. Se vulete usà un ACL per cunfigurà parechji utilizatori o gruppi per accede à u stessu repertoriu, duvete stabilisce l'ACL duie volte. Prima usu setfacl -R -mper cambià l'ACL per i schedarii currenti. Allora aduprate setfacl-md:per piglià cura di tutti l'elementi novi chì saranu ancu creati.

Per stabilisce l'ACL predeterminatu, basta à aghjunghje l'opzione d dopu l'opzione -m (l'ordine importa!). Allora aduprate setfacl -md:g:sales:rx /datase vulete vende di gruppu per leghje è eseguisce ciò chì hè mai creatu in u cartulare / data.

Quandu si usanu ACL predeterminati, pò ancu esse utile per stabilisce ACL per l'altri. Questu di solitu ùn hà micca assai sensu perchè pudete ancu cambià i permessi per l'altri chì utilizanu chmod. Tuttavia, ciò chì ùn pudete micca fà chmod, hè di specificà i diritti chì deve esse cuncessi à l'altri utilizatori per ogni novu schedariu chì hè mai creatu. Se vulete impedisce à l'altri di ottene qualsiasi permessi nantu à qualcosa creata in / data per esempiu usu setfacl -md:o::- /data.

L'ACL è i permessi normali ùn sò micca sempre integrati bè. I prublemi ponu accade si applicà un ACL predeterminatu à un repertoriu, dopu l'articuli sò aghjuntu à quellu repertoriu, è dopu pruvate à cambià i permessi normali. I cambiamenti chì s'applicanu à i permessi normali ùn saranu micca bè riflessi in a panoramica ACL. Per evità prublemi, stabilisce prima i permessi normali, dopu stabilisce l'ACL predeterminati (è pruvate micca di cambià di novu dopu).

Esempiu di gestione di diritti elevati cù l'ACL

In questu esempiu, continuerete cù i repertorii /data/account è /data/sales chì avete creatu prima. In l'esempi precedenti, avete assicuratu chì u gruppu di vendita hà permessi nantu à /data/sales è u gruppu di contu hà permessi in /data/account.

Prima, assicuratevi chì u gruppu di cunti riceve permessi di lettura in u cartulare / data/sales è u gruppu di vendita riceve permessi di lettura in u cartulare /data/account.

Dopu stabilisce l'ACL predeterminati per assicurà chì tutti i novi fugliali anu i permessi curretti stabiliti per tutti l'articuli novi.

  1. Aprite un terminal.
  2. Esecutà setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Esecutà getfaclper assicurà chì i permessi sò stati stabiliti a manera chì vulete.
  4. Esecutà setfacl -md:g:account:rwx,g:sales:rx /data/salesper stabilisce l'ACL predeterminatu per u repertoriu di vendita.
  5. Aghjunghjite un ACL predeterminatu per u repertoriu /data/account usendu setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. Verificate chì i paràmetri ACL sò in effettu aghjunghjendu un novu schedariu à /data/sales. Cumpleta toccu /data/sales/newfile è eseguisce getfacl /data/sales/newfile per verificà i permessi attuali.

Stabbilimentu di permessi predeterminati cù umask

Sopra, avete amparatu à travaglià cù ACL predeterminati. Se ùn site micca aduprendu un ACL, ci hè una opzione di shell chì determina i permessi predeterminati chì uttene: maschera (maschera inversa). In questa rùbbrica, amparate cumu cambià i permessi predeterminati maschera.

Puderete avè nutatu chì quandu create un novu schedariu, alcuni permessi predeterminati sò stabiliti. Questi permessi sò determinati da u paràmetru maschera. Stu paràmetru di shell s'applica à tutti l'utilizatori à login. In u paràmetru maschera un valore numericu hè utilizatu, chì hè sottrattu da i permessi massimi chì ponu esse automaticamente stabiliti per u schedariu; l'impostazione massima per i schedari hè 666 è per i cartulari hè 777.

Tuttavia, alcune eccezzioni s'applicanu à sta regula. Pudete truvà una panoramica cumpleta di i paràmetri maschera in a tavula sottu.

Di i numeri utilizati in maschera, cum'è in u casu di l'argumenti numerichi per u cumandamentu chmod, u primu cifru si riferisce à i permessi di l'utilizatori, u sicondu cifru si riferisce à i permessi di u gruppu, è l'ultimu si riferisce à i permessi predeterminati per l'altri. Sensu maschera u 022 predeterminatu dà 644 per tutti i novi schedari è 755 per tutti i novi cartulari creati in u vostru servitore.

Panoramica cumpleta di tutti i valori numerichi maschera è i so risultati in a tabella sottu.

Permissioni in Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Un modu faciule per vede cumu funziona u paràmetru di umask hè u seguitu: principià cù i permessi predeterminati di u schedariu stabilitu à 666 è sottrae l'umask per ottene i permessi efficaci. Fate u listessu per u cartulare è i so permessi predeterminati di 777.

Ci hè duie manere di cambià u paràmetru di umask: per tutti l'utilizatori è per l'utilizatori individuali. Se vulete stabilisce l'umask per tutti l'utilizatori, duvete assicurà chì a paràmetra di umask hè presa in cunsiderà quandu cumincianu i schedarii di l'ambienti di shell, cum'è specificatu in /etc/profile. L'approcciu currettu hè di creà un script shell chjamatu umask.sh in u cartulare /etc/profile.d è specificà l'umask chì vulete usà in quellu script shell. Se l'umask hè cambiatu in stu schedariu, hè appiicatu à tutti l'utilizatori dopu à login in u servitore.

Una alternativa à stabilisce l'umask via /etc/profile è i fugliali cunnessi, induve s'applica à tutti l'utilizatori chì accedenu, hè di cambià i paràmetri di umask in un schedariu chjamatu .profile chì hè creatu in u cartulare di casa di ogni utilizatore.

I paràmetri applicati in stu schedariu s'applicanu solu à l'utilizatore individuale; dunque questu hè un bonu metudu se avete bisognu di più dettagli. Mi piace personalmente sta funzione per cambià l'umask predeterminatu per l'utilizatore root à 027 mentre l'utilizatori normali sò in esecuzione cù umask predefinitu di 022.

U travagliu cù attributi d'utilizatori estesi

Questa hè a sezione finale nantu à i permessi Linux.

Quandu u travagliu cù permessi, ci hè sempre una relazione trà un utilizatore o un ughjettu di gruppu è i permessi chì l'ughjetti di l'utilizatori o di u gruppu anu in un schedariu o repertoriu. Un metudu alternativu per prutege i schedari nantu à un servitore Linux hè di travaglià cù attributi.
L'attributi facenu u so travagliu indipendentemente da l'utilizatori chì accede à u schedariu.

Cum'è cù l'ACL, l'attributi di u schedariu pò avè bisognu di include l'opzione muntagna.

Questa hè una opzione user_xattr. Sè avete un messagiu "operazione micca supportata" quandu travagliate cù attributi d'utilizatori estesi, assicuratevi di stabilisce u paràmetru muntagna in /etc/fstab.

Parechji attributi sò documentati. Certi attributi sò dispunibuli ma micca ancu implementati. Ùn aduprate micca; ùn vi purteranu nunda.

Quì sottu sò l'attributi più utili chì pudete applicà:

A Questu attributu assicura chì u tempu di accessu à u schedariu di u schedariu ùn cambia micca.
Di genere, ogni volta chì un schedariu hè apertu, u tempu d'accessu di u schedariu deve esse registratu in i metadati di u schedariu. Questu hà un impattu negativu in u rendiment; cusì per i schedari chì sò regularmente accede, l'attributu A pò esse usatu per disattivà sta funzione.

a Questu attributu permette di aghjunghje, ma micca di sguassà un schedariu.

c Sè vo aduprate un sistema di schedari chì sustene a cumpressione di u voluminu, questu attributu di u schedariu assicura chì u schedariu hè cumpressu a prima volta chì u mecanismu di cumpressione hè attivatu.

D Questu attributu assicura chì i cambiamenti à i fugliali sò scritti à u discu immediatamente invece di prima in cache. Questu hè un attributu utile nantu à i schedarii di basa di dati impurtanti per assicurà chì ùn si perde micca trà u cache di u schedariu è u discu duru.

d Questu attributu assicura chì u schedariu ùn serà micca salvatu in copia di salvezza induve l'utilità di dump hè aduprata.

I Questu attributu permette l'indexazione per u cartulare in quale hè attivatu. Questu furnisce un accessu più veloce à i filesystems primitivi cum'è Ext3 chì ùn utilizanu micca a basa di dati B-tree per un accessu veloce à i schedari.

i Questu attributu rende u schedariu immutable. Per quessa, ùn ponu micca cambiamenti à u schedariu, chì hè utile per i schedari chì necessitanu prutezzione supplementaria.

j Questu attributu assicura chì, in un sistema di schedariu ext3, u schedariu hè scrittu prima à u ghjurnale è dopu à i blocchi di dati nantu à u discu duru.

s Overwrite i blocchi in quale u schedariu hè statu salvatu à 0s dopu à sguassà u schedariu. Questu assicura chì un schedariu ùn pò micca esse restauratu una volta chì hè statu sguassatu.

u Questu attributu guarda l'infurmazioni nantu à a cancellazione. Questu permette di sviluppà una utilità chì travaglia cù questa informazione per salvà i schedari sguassati.

Se vulete applicà l'attributi, pudete aduprà u cumandamentu chiacchierata. Per esempiu, aduprà chattr +s somefileper applicà attributi à qualchì file. Avete bisognu di sguassà un attributu? Allora aduprate chattr -s somefileè sarà cacciatu. Per avè una visione generale di tutti l'attributi chì sò attualmente applicati, utilizate u cumandamentu lsattr.

Resumen

In questu articulu, avete amparatu cumu travaglià cù permessi. Avete lettu nantu à i trè permessi basi, permessi avanzati, è cumu applicà ACL in un sistema di fugliale. Avete ancu amparatu à utilizà l'opzione umask per applicà i permessi predeterminati. À a fine di questu articulu, avete amparatu cumu utilizà l'attributi estesi da l'utilizatori per applicà una capa addiziale di sicurezza di u sistema di fugliale.

Se ti piace sta traduzzione, allora scrivite nantu à questu in i cumenti. Ci sarà più motivazione per fà traduzioni utili.

Currettu qualchi typos è errori grammaticali in l'articulu. Riduzzione di alcuni paragrafi voluminosi in più chjuchi per una megliu leghjibilità.

Invece di "Solu qualchissia cù diritti amministrativi à u repertoriu pò applicà u permessu di esecutà". fissatu à "Solu qualchissia cù permessi di scrittura nantu à u cartulare pò applicà u permessu di esecutà.", chì saria più currettu.

Grazie per i cumenti berez.

Sustituitu:
Se ùn site micca u pruprietariu di l'utilizatore, a cunchiglia verificarà per vede s'ellu site un membru di un gruppu, cunnisciutu ancu u gruppu di u schedariu.

Nantu à u:
Se ùn site micca u pruprietariu di u schedariu, a cunchiglia verificarà per vede s'ellu site un membru di un gruppu chì hà permessi nantu à u schedariu. Sè vo site un membru di stu gruppu, accede à u schedariu cù i permessi chì u gruppu hà stabilitu, è a cunchiglia cesserà di verificà.

Grazie per u vostru cummentariu CryptoPirate

Source: www.habr.com

Add a comment