Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Halo kabeh. Iki minangka terjemahan saka artikel saka buku RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 lan EX300.

Push: Muga-muga artikel kasebut migunani ora mung kanggo pamula, nanging uga mbantu para pangurus sing luwih berpengalaman kanggo nyepetake kawruh.

Dadi ayo lunga.

Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Kanggo ngakses file ing Linux, ijin digunakake. Ijin iki ditugasake kanggo telung obyek: pemilik file, pemilik grup, lan obyek liyane (yaiku, kabeh wong). Ing artikel iki, sampeyan bakal sinau carane nglamar ijin.

Artikel iki diwiwiti kanthi ringkesan konsep dhasar, banjur diskusi babagan ijin khusus lan Dhaptar Kontrol Akses (ACL). Ing pungkasan artikel iki, kita nutupi setelan ijin gawan liwat umask, uga ngatur atribut pangguna lengkap.

Manajemen kepemilikan file

Sadurunge ngrembug babagan ijin, sampeyan kudu ngerti peran pemilik file lan direktori. Kepemilikan file lan direktori iku penting kanggo ngurusi ijin. Ing bagean iki, sampeyan bakal sinau babagan carane ndeleng pemilik. Sampeyan banjur bakal sinau carane ngganti pemilik grup lan pangguna kanggo file lan direktori.

Nampilake pemilik file utawa direktori

Ing Linux, saben file lan saben direktori duwe rong pamilik: pangguna lan pamilik grup.

Pamilik iki disetel nalika file utawa direktori digawe. Pangguna sing nggawe file dadi pemilik file kasebut, lan klompok utama sing dadi pangguna sing padha uga dadi pemilik file kasebut. Kanggo nemtokake manawa sampeyan, minangka pangguna, duwe idin kanggo ngakses file utawa direktori, cangkang mriksa kepemilikan.

Iki kedadeyan ing urutan ing ngisor iki:

  1. Cangkang mriksa kanggo ndeleng yen sampeyan pemilik file sing pengin diakses. Yen sampeyan pemilik, sampeyan entuk ijin lan cangkang mandheg mriksa.
  2. Yen sampeyan dudu pemilik file kasebut, cangkang bakal mriksa manawa sampeyan minangka anggota grup sing duwe ijin ing file kasebut. Yen sampeyan dadi anggota grup iki, sampeyan bakal ngakses file kanthi ijin sing wis disetel grup, lan cangkang bakal mandheg mriksa.
  3. Yen sampeyan dudu pangguna utawa pemilik grup, sampeyan diwenehi hak pangguna liyane (Liyane).

Kanggo ndeleng tugas pemilik saiki, sampeyan bisa nggunakake printah ls-l. Printah iki nuduhake pangguna lan pemilik grup. Ing ngisor iki sampeyan bisa ndeleng setelan pemilik kanggo direktori ing direktori / ngarep.

[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

Kanthi dhawuh ls sampeyan bisa nampilake pemilik file ing direktori tartamtu. Kadhangkala bisa migunani kanggo entuk dhaptar kabeh file ing sistem sing duwe pangguna utawa klompok minangka pemilik. Kanggo iki sampeyan bisa nggunakake golek. Argumentasi golek-user bisa digunakake kanggo maksud iki. Contone, printah ing ngisor iki nampilake kabeh file sing diduweni dening pangguna linda:

find / -user linda

Sampeyan uga bisa nggunakake golek kanggo nggoleki file sing duwe klompok tartamtu minangka pemilike.

Contone, printah ing ngisor iki nggoleki kabeh file sing ana ing grup kasebut kedhaftar:

find / -group users

Owahan pemilik

Kanggo ngetrapake ijin sing cocog, sing kudu dipikirake yaiku kepemilikan. Ana prentah kanggo iki chown. Sintaks perintah iki gampang dingerteni:

chown кто что

Contone, printah ing ngisor iki ngganti pemilik direktori /home/account menyang pangguna linda:

chown linda /home/account

tim chown wis sawetara opsi, salah siji kang utamané migunani: -R. Sampeyan bisa guess apa ora amarga pilihan iki kasedhiya kanggo akeh printah liyane uga. Iki ngidini sampeyan nyetel pemilik kanthi rekursif, sing ngidini sampeyan nyetel pemilik direktori saiki lan kabeh sing ana ing ngisor iki. Printah ing ngisor iki ngganti kepemilikan direktori / home lan kabeh ing ngisor iki menyang pangguna linda:

Saiki pemilik katon kaya iki:

[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

Ayo nglakoni:

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

Saiki pangguna lisa wis dadi pemilik direktori akun:

[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

Ngganti pemilik grup

Ana rong cara kanggo ngganti kepemilikan grup. Sampeyan bisa nindakake iki nggunakake chown, nanging ana prentah khusus jenenge chgrpsing nindakake pakaryan. Yen sampeyan pengin nggunakake printah chown, nggunakake . utawa : ing ngarep jeneng grup.

Printah ing ngisor iki ngganti sapa wae sing duwe grup /home/account menyang grup akun:

chown .account /home/account

sampeyan bisa nggunakake chown kanggo ngganti pemilik pangguna lan/utawa grup kanthi sawetara cara. Ing ngisor iki sawetara conto:

  • chown lisa myfile1 nyetel pangguna lisa minangka pemilik myfile1.
  • chown lisa.sales myfile nyetel lisa pangguna minangka pemilik file myfile, lan uga nyetel grup sales minangka pemilik file sing padha.
  • chown lisa: sales myfile padha karo prentah sadurunge.
  • chown .sales myfile nyetel grup dodolan minangka pemilik myfile tanpa ngganti pemilik pangguna.
  • chown: sales myfile padha karo prentah sadurunge.

Sampeyan bisa nggunakake printah chgrpkanggo ngganti pemilik saka grup. Coba conto ing ngisor iki, ing ngendi sampeyan bisa nggunakake chgrp atur pemilik direktori akun menyang grup dodolan:

chgrp .sales /home/account

Kaya karo chown, sampeyan bisa nggunakake pilihan -R с chgrp, uga ngganti pemilik grup kanthi rekursif.

Ngerteni Pemilik Default

Sampeyan bisa uga wis weruh yen pangguna nggawe file, kepemilikan standar ditrapake.
Pangguna sing nggawe file kanthi otomatis dadi pemilik file kasebut, lan grup utama pangguna kanthi otomatis dadi pemilik file kasebut. Iki biasane grup sing didaftar ing file /etc/passwd minangka grup utama pangguna. Nanging, yen pangguna dadi anggota luwih saka siji klompok, pangguna bisa ngganti grup utama sing efektif.

Kanggo nuduhake grup utami efektif saiki, pangguna bisa nggunakake printah kelompok:

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

Yen pangguna linda saiki pengin ngganti grup utama sing efektif, dheweke bakal nggunakake perintah kasebut newgrpngiring dening jeneng grup kang arep kanggo nyetel minangka grup utami efektif anyar. Sawise nggunakake printah newgrp grup utami bakal aktif nganti pangguna ngetik printah metu utawa ora metu.

Ing ngisor iki nuduhake carane pangguna linda nggunakake printah iki, kanthi dodolan minangka grup utama:

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

Sawise ngganti grup utama sing efektif, kabeh file anyar sing digawe pangguna bakal duwe grup kasebut minangka pemilik grup. Kanggo bali menyang setelan grup utama asli, gunakake metu.

Kanggo bisa nggunakake printah newgrp, pangguna kudu dadi anggota grup sing pengin digunakake minangka grup utama. Kajaba iku, sandhi grup bisa digunakake kanggo grup nggunakake printah gpasswd. Yen pangguna nggunakake printah newgrpnanging dudu anggota klompok target, cangkang kasebut njaluk sandhi grup kasebut. Sawise sampeyan ngetik sandhi grup sing bener, grup utama efektif anyar bakal ditetepake.

Manajemen hak dhasar

Sistem ijin Linux diciptakake ing taun 1970-an. Wiwit kabutuhan komputasi diwatesi ing taun-taun kasebut, sistem ijin dhasar cukup winates. Sistem ijin iki nggunakake telung ijin sing bisa ditrapake kanggo file lan direktori. Ing bagean iki, sampeyan bakal sinau carane nggunakake lan ngganti ijin iki.

Pangerten Maca, Nulis, lan Nglakokake Ijin

Telung ijin dhasar ngidini sampeyan maca, nulis, lan nglakokake file. Efek saka ijin kasebut beda-beda nalika ditrapake ing file utawa direktori. Kanggo file, ijin maca menehi hak kanggo mbukak file kanggo maca. Mula, sampeyan bisa maca isine, nanging tegese komputer sampeyan bisa mbukak file kasebut kanggo nindakake apa wae.

File program sing mbutuhake akses menyang perpustakaan kudu, contone, duwe akses maca menyang perpustakaan kasebut. Dadi, ijin maca minangka ijin paling dhasar sing sampeyan butuhake kanggo nggarap file.

Nalika ditrapake ing direktori, maca ngidini sampeyan nampilake isi direktori kasebut. Sampeyan kudu ngerti manawa ijin iki ora ngidini sampeyan maca file ing direktori kasebut. Sistem ijin Linux ora ngerti warisan, lan siji-sijine cara kanggo maca file yaiku nggunakake ijin maca ing file kasebut.

Sing mbokmenawa bisa guess, ijin nulis, yen ditrapake kanggo file, ngidini nulis kanggo file. Ing tembung liyane, ngidini sampeyan ngganti isi file sing wis ana. Nanging, ora ngidini sampeyan nggawe utawa mbusak file anyar utawa ngganti ijin file. Kanggo nindakake iki, sampeyan kudu menehi ijin nulis menyang direktori ing ngendi sampeyan pengin nggawe file kasebut. Ing direktori, ijin iki uga ngidini sampeyan nggawe lan mbusak subdirektori anyar.

Eksekusi ijin yaiku apa sing sampeyan butuhake kanggo nglakokake file kasebut. Ora bakal diinstal kanthi gawan, sing ndadekake Linux meh kebal marang virus. Mung wong sing duwe ijin nulis ing direktori sing bisa ngetrapake ijin eksekusi.

Ing ngisor iki ringkesan panggunaan ijin dhasar:

Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Nggunakake chmod

Printah kasebut digunakake kanggo ngatur ijin. Chmod... nggunakake Chmod sampeyan bisa nyetel ijin kanggo pangguna (pangguna), grup (grup) lan liyane (liyane). Sampeyan bisa nggunakake printah iki ing rong mode: mode relatif lan mode Absolute. Ing mode absolut, telung digit digunakake kanggo nyetel ijin dhasar.

Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Nalika nyetel ijin, etung nilai sing dibutuhake. Yen sampeyan pengin nyetel maca / nulis / nglakokaké kanggo pangguna, maca / nglakokaké kanggo grup, lan maca / nglakokaké kanggo wong liya ing / somefile banjur sampeyan nggunakake printah ing ngisor iki Chmod:

chmod 755 /somefile

Nalika sampeyan nggunakake Chmod kanthi cara iki, kabeh ijin saiki diganti dening ijin sing wis disetel.

Yen sampeyan pengin ngganti ijin relatif kanggo ijin saiki, sampeyan bisa nggunakake Chmod ing mode relatif. nggunakake Chmod ing mode relatif sampeyan bisa nganggo telung pratondho kanggo nunjukaké apa sing arep kanggo apa:

  1. Pisanan sampeyan nemtokake sapa sing pengin ngganti ijin. Kanggo nindakake iki, sampeyan bisa milih antarane pangguna (u), klompok (g) lan liya-liyane (o).
  2. Sampeyan banjur nggunakake statement kanggo nambah utawa mbusak ijin saka mode saiki, utawa nyetel iku pancen.
  3. Ing pungkasan sampeyan nggunakake r, w и xkanggo nemtokake ijin sing pengin disetel.

Nalika ngganti ijin ing mode relatif, sampeyan bisa ngliwati bagean "kanggo" kanggo nambah utawa mbusak ijin kanggo kabeh obyek. Contone, printah iki nambah ijin eksekusi kanggo kabeh pangguna:

chmod +x somefile

Nalika nggarap mode relatif, sampeyan uga bisa nggunakake perintah sing luwih rumit. Contone, printah iki nambah ijin nulis menyang grup lan mbusak ijin maca kanggo wong liya:

chmod g+w,o-r somefile

Nalika nggunakake chmod -R o+rx /data sampeyan nyetel ijin eksekusi kanggo kabeh direktori uga file ing direktori / data. Kanggo nyetel ijin eksekusi mung kanggo direktori lan ora kanggo file, gunakake chmod -R o+ rX /data.

Huruf gedhe X mesthekake yen file ora entuk ijin eksekusi kajaba file kasebut wis nyetel ijin eksekusi kanggo sawetara obyek. Iki ndadekake X dadi cara sing luwih pinter kanggo nglakokake ijin; iki bakal ngindhari nyetel ijin iki ing file sing ora dibutuhake.

Hak sing ditambahi

Saliyane ijin dhasar sing nembe diwaca, Linux uga duwe ijin sing luwih maju. Iki dudu ijin sing sampeyan setel minangka standar, nanging kadhangkala menehi tambahan sing migunani. Ing bagean iki, sampeyan bakal sinau apa iku lan carane nyetel.

Ngerteni SUID, GUID, lan Sticky Bit Extended Idin

Ana telung ijin majeng. Sing pertama yaiku ijin kanggo nyetel pengenal pangguna (SUID). Ing sawetara kasus khusus, sampeyan bisa ngetrapake ijin iki kanggo file sing bisa dieksekusi. Kanthi gawan, pangguna sing mbukak eksekusi mbukak file kasebut kanthi ijin dhewe.

Kanggo pangguna biasa, iki biasane tegese panggunaan program kasebut diwatesi. Nanging, ing sawetara kasus, pangguna mbutuhake ijin khusus, mung kanggo nindakake tugas tartamtu.

Coba, contone, kahanan nalika pangguna kudu ngganti tembung sandhi. Kanggo nindakake iki, pangguna kudu nulis sandhi anyar menyang file /etc/shadow. Nanging, file iki ora bisa ditulis dening pangguna non-root:

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

Izin SUID nawakake solusi kanggo masalah iki. Utilitas /usr/bin/passwd nggunakake ijin iki minangka standar. Iki tegese nalika ngganti tembung sandhi, pangguna sementara dadi root, sing ngidini dheweke nulis menyang file /etc/shadow. Sampeyan bisa ndeleng ijin SUID karo ls-l carane s ing posisi sing biasane sampeyan ngarepake ndeleng x kanggo ijin khusus:

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

Idin SUID bisa uga katon migunani (lan ing sawetara kasus), nanging ing wektu sing padha bisa mbebayani. Yen ora ditrapake kanthi bener, sampeyan bisa kanthi ora sengaja menehi ijin root. Mulane, aku nyaranake nggunakake mung kanthi ati-ati.

Umume pangurus ora bakal perlu nggunakake; sampeyan mung bakal weruh ing sawetara file ing ngendi sistem operasi kudu nyetel minangka standar.

Ijin khusus kapindho yaiku pengenal grup (SGID). Ijin iki duwe rong efek. Nalika ditrapake ing file sing bisa dieksekusi, pangguna sing nglakokake file kasebut ijin saka pemilik grup file kasebut. Dadi SGID bisa nindakake luwih utawa kurang padha karo SUID. Nanging, SGID praktis ora digunakake kanggo tujuan iki.

Kaya ijin SUID, SGID ditrapake ing sawetara file sistem minangka setelan gawan.

Nalika ditrapake ing direktori, SGID bisa migunani amarga sampeyan bisa nggunakake kanggo nyetel pamilik grup standar kanggo file lan subdirektori sing digawe ing direktori kasebut. Kanthi gawan, nalika pangguna nggawe file, grup utama sing efektif disetel minangka pemilik grup kanggo file kasebut.

Iki ora mesthi migunani banget, utamane amarga pangguna Red Hat/CentOS duwe klompok utama sing disetel menyang grup kanthi jeneng sing padha karo pangguna, lan pangguna mung siji-sijine anggota. Mangkono, kanthi gawan, file sing digawe pangguna bakal dienggo bareng kanthi akeh.

Mbayangno kahanan nalika pangguna linda lan lori kerja ing akuntansi lan dadi anggota klompok akun. Kanthi gawan, pangguna iki minangka anggota saka grup pribadi sing mung dadi anggota. Nanging, pangguna loro kasebut minangka anggota grup akun, nanging uga minangka parameter grup sekunder.

Kahanan standar yaiku nalika pangguna nggawe file, grup utama dadi pemilik. Mula, kanthi gawan, linda ora bisa ngakses file sing digawe dening lori, lan kosok balene. Nanging, yen sampeyan nggawe direktori grup sing dienggo bareng (sebutake /groups/account) lan mesthekake yen ijin SGID ditrapake ing direktori kasebut lan akun grup disetel minangka pemilik grup kanggo direktori kasebut, kabeh file sing digawe ing direktori kasebut lan kabeh saka subdirektori, uga entuk akun grup minangka pemilik grup kanthi standar.

Mulane, ijin SGID minangka ijin sing migunani banget kanggo nyetel ing direktori grup umum.

Ijin SGID ditampilake ing output ls-l carane s ing posisi sing biasane sampeyan golek ijin kanggo nglakokake grup:

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

Katelu saka ijin khusus yaiku bit lengket. Idin iki migunani kanggo nglindhungi file saka pambusakan sing ora disengaja ing lingkungan sing akeh pangguna duwe akses nulis menyang direktori sing padha. Yen bit lengket digunakake, pangguna mung bisa mbusak file yen dheweke minangka pangguna pangguna file utawa direktori sing ngemot file kasebut. Mulane, iki digunakake minangka ijin standar kanggo direktori /tmp lan bisa uga migunani kanggo direktori grup umum.

Tanpa lengket, yen pangguna bisa nggawe file ing direktori, dheweke uga bisa mbusak file saka direktori kasebut. Ing lingkungan klompok umum, iki bisa ngganggu. Bayangake pangguna linda lan lori, sing loro-lorone duwe ijin nulis menyang direktori / data / akun lan entuk ijin kasebut kanthi dadi anggota grup akun. Mula, linda bisa mbusak file sing digawe dening lori lan kosok balene.

Nalika sampeyan ngetrapake bit lengket, pangguna mung bisa mbusak file yen salah siji saka kahanan ing ngisor iki bener:

  • Pangguna minangka pemilik file;
  • Pangguna minangka pemilik direktori ing ngendi file kasebut dumunung.

Nalika nggunakake ls-l, sampeyan bisa ndeleng dicokot caket minangka t ing posisi sing biasane sampeyan ndeleng ijin eksekusi kanggo wong liya:

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

Nglamar hak lengkap

Kanggo ngetrapake SUID, SGID lan bit sticky sampeyan uga bisa nggunakake Chmod. SUID nduweni nilai numerik 4, SGID nduweni nilai numerik 2, lan sticky bit nduweni nilai numerik 1.

Yen sampeyan pengin ngetrapake ijin kasebut, sampeyan kudu nambah argumen papat digit Chmod, sing digit pisanan nuduhake ijin khusus. Baris ing ngisor iki, contone, bakal nambah ijin SGID menyang direktori lan nyetel rwx kanggo pangguna lan rx kanggo grup lan liya-liyane:

chmod 2755 /somedir

Iki rada ora praktis yen sampeyan kudu ndeleng ijin saiki sing disetel sadurunge nggarap Chmod ing mode absolut. (Sampeyan duwe risiko nimpa ijin yen ora.) Dadi aku nyaranake mlaku ing mode relatif yen sampeyan kudu ngetrapake ijin khusus:

  1. Kanggo nggunakake SUID chmod u+s.
  2. Kanggo nggunakake SGID chmod g+s.
  3. Kanggo nggunakake bit lengket chmod +t, banjur jeneng file utawa direktori sing pengin sampeyan nyetel ijin.

Tabel ngringkes kabeh sing sampeyan kudu ngerti babagan ngatur ijin khusus.

Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Conto nggarap hak khusus

Ing conto iki, sampeyan nggunakake ijin khusus kanggo nggampangake anggota grup nuduhake file ing direktori grup sing dienggo bareng. Sampeyan nemtokake bit ID menyang ID grup sing disetel uga bit lengket, lan sampeyan bakal weruh yen wis disetel, fitur ditambahake kanggo nggampangake anggota grup bisa bebarengan.

  1. Bukak terminal ngendi sampeyan pangguna linda. Sampeyan bisa nggawe pangguna kanthi printah pangguna tambah linda, tambah sandhi passwd Linda.
  2. Gawe direktori / data ing root lan subdirektori / data / sales kanthi printah mkdir -p /data/sales. jangkep cd / data / saleskanggo pindhah menyang direktori sales. jangkep tutul linda1 и tutul linda2kanggo nggawe rong file kosong sing diduweni linda.
  3. Nglakokke su-lisa kanggo ngalih pangguna saiki menyang pangguna lisa, sing uga dadi anggota grup dodolan.
  4. Nglakokke cd / data / sales lan saka direktori kasebut eksekusi ls-l. Sampeyan bakal weruh rong file sing digawe dening pangguna linda lan kalebu ing grup linda. jangkep rm -f linda*. Iki bakal mbusak loro file.
  5. Nglakokke tutul lisa1 и tutul lisa2kanggo nggawe rong file sing diduweni dening pangguna lisa.
  6. Nglakokke su- kanggo elevate hak istimewa kanggo ROOT.
  7. Nglakokke chmod g+s,o+t /data/saleskanggo nyetel bit pengenal grup (GUID) uga bit lengket ing direktori grup sing dienggo bareng.
  8. Nglakokke su-linda. Banjur nindakake tutul linda3 и tutul linda4. Sampeyan saiki kudu weruh yen rong file sing digawe diduweni dening grup sales, yaiku pemilik grup direktori / data / sales.
  9. Nglakokke rm -rf lisa*. Bit lengket ngalangi file kasebut ora bisa dibusak atas jenenge pangguna linda, amarga sampeyan dudu pemilik file kasebut. Elinga yen pangguna linda minangka pemilik direktori / data / sales, dheweke bisa mbusak file kasebut!

Manajemen ACL (setfacl, getfacl) ing Linux

Sanajan ijin lengkap sing dibahas ing ndhuwur nambah fungsi sing migunani kanggo cara Linux nangani ijin, nanging ora ngidini sampeyan menehi ijin luwih saka siji pangguna utawa grup ing file sing padha.

Dhaptar kontrol akses nawakake fitur iki. Kajaba iku, padha ngidini pangurus nyetel ijin standar kanthi cara sing rumit, ing ngendi ijin sing disetel bisa beda-beda saka direktori menyang direktori.

Pangerten ACLs

Senajan subsistem ACL nambah fungsi gedhe kanggo server, iku wis siji kerugian: ora kabeh keperluan ndhukung. Mulane, sampeyan bisa ilang setelan ACL nalika sampeyan nyalin utawa mindhah file, lan piranti lunak serep bisa gagal kanggo nggawe serep setelan ACL.

Utilitas tar ora ndhukung ACL. Kanggo mesthekake yen setelan ACL ora ilang nalika nggawe serep, nggunakake star tinimbang tar. star dianggo karo opsi padha tar; iku mung nambah support kanggo setelan ACL.

Sampeyan uga bisa gawe serep ACLs karo getfacl, sing bisa dipulihake nggunakake printah setfacl. Kanggo nggawe serep, gunakake getfacl -R / direktori > file.acls. Kanggo mulihake setelan saka file serep, gunakake setfacl --restore=file.acl.

Kurang dhukungan saka sawetara alat mesthine ora dadi masalah. ACL asring diterapake ing direktori minangka ukuran struktural tinimbang file individu.
Mulane, ora bakal akeh, nanging mung sawetara, sing ditrapake ing papan sing cerdas ing sistem file. Mulane, mulihake ACL asli sing sampeyan gunakake relatif gampang, sanajan piranti lunak serep sampeyan ora ndhukung.

Nyiyapake sistem file kanggo ACL

Sadurunge miwiti nggarap ACL, sampeyan bisa uga kudu nyiapake sistem file kanggo ndhukung ACL. Amarga metadata sistem berkas kudu ditambahi, ora mesthi ana dhukungan standar kanggo ACL ing sistem berkas. Yen sampeyan entuk pesen "operasi ora didhukung" nalika nyetel ACL kanggo sistem file, sistem file sampeyan bisa uga ora ndhukung ACL.

Kanggo ndandani iki sampeyan kudu nambah pilihan acl gunung ing / etc / fstab supaya sistem file dipasang kanthi dhukungan ACL kanthi standar.

Ngganti lan ndeleng setelan ACL nganggo setfacl lan getfacl

Kanggo nyetel ACL sampeyan kudu printah setfacl. Kanggo ndeleng setelan ACL saiki, sampeyan kudu getfacl. tim ls-l ora nuduhake ACLs ana; iku mung nuduhake + sawise dhaftar ijin, kang nuduhake yen ACLs aplikasi kanggo file uga.

Sadurunge nyetel ACLs, iku tansah apike nuduhake setelan ACL saiki karo getfacl. Ing conto ing ngisor iki, sampeyan bisa ndeleng ijin saiki, kaya sing dituduhake ls-l, lan uga minangka ditampilake karo getfacl. Yen sampeyan ndeleng kanthi cetha, sampeyan bakal weruh manawa informasi sing ditampilake pancen padha.

[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

Minangka asil nglakokaké printah getfacl ing ngisor iki sampeyan bisa ndeleng manawa ijin ditampilake kanggo telung obyek sing beda: pangguna, grup lan liya-liyane. Saiki ayo nambah ACL kanggo menehi ijin maca lan nglakokake menyang grup sales uga. printah kanggo iki setfacl -mg:sales:rx /dir. Ing tim iki -m nuduhake yen setelan ACL saiki kudu diganti. Sawise iku g: dodolan: rx ngandhani printah kanggo nyetel read-execute ACL (rx) kanggo grup (g) dodolan. Ing ngisor iki sampeyan bisa ndeleng kaya apa printah kasebut, uga output perintah getfacl sawise ngganti setelan ACL saiki.

[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

Saiki sampeyan ngerti carane nyiyapake grup ACL, iku gampang kanggo ngerti ACL kanggo pangguna lan pangguna liyane. Contone, printah setfacl -mu:linda:rwx /data menehi ijin kanggo pangguna linda ing direktori / data tanpa nggawe pemilik utawa ngganti tugas saka pemilik saiki.

tim setfacl wis akeh fitur lan opsi. Siji pilihan utamané penting, parameter -R. Yen digunakake, pilihan kasebut nggawe set ACL kanggo kabeh file lan subdirektori sing saiki ana ing direktori ing ngendi sampeyan nyetel ACL. Disaranake sampeyan tansah nggunakake pilihan iki nalika ngganti ACL kanggo direktori ana.

Nggarap ACL Default

Salah sawijining keuntungan nggunakake ACL yaiku sampeyan bisa menehi ijin kanggo sawetara pangguna utawa grup ing direktori. Manfaat liyane yaiku sampeyan bisa ngaktifake warisan kanthi nggarap ACL standar.

Kanthi nyetel ACL standar, sampeyan nemtokake ijin sing bakal disetel kanggo kabeh item anyar sing digawe ing direktori. Elinga yen ACL standar ora ngganti ijin ing file lan subdirektori sing wis ana. Kanggo ngganti, sampeyan uga kudu nambah ACL normal!

Iki penting kanggo ngerti. Yen sampeyan pengin nggunakake ACL kanggo ngatur sawetara pangguna utawa grup kanggo ngakses direktori padha, sampeyan kudu nyetel ACL kaping pindho. Panggunaan pisanan setfacl -R -mkanggo ngganti ACL kanggo file saiki. Banjur nggunakake setfacl-md:kanggo ngurus kabeh unsur anyar sing uga bakal digawe.

Kanggo nyetel ACL standar sampeyan mung kudu nambah pilihan d sawise pilihan -m (sing penting pesen!). Dadi nggunakake setfacl -md:g:sales:rx /datayen sampeyan pengin dodolan grup maca lan nglakokake apa wae sing wis digawe ing direktori / data.

Nalika nggunakake ACL standar, bisa uga migunani kanggo nyetel ACL kanggo wong liya. Iki biasane ora masuk akal amarga sampeyan uga bisa ngganti ijin sing digunakake wong liya Chmod. Nanging, apa sampeyan ora bisa nindakake karo Chmod, kanggo nemtokake hak sing kudu diwenehake marang pangguna liyane kanggo saben file anyar sing wis digawe. Yen sampeyan pengin nyegah wong liya entuk ijin apa wae sing digawe ing / data, contone, nggunakake setfacl -md:o::- /data.

ACLs lan ijin normal ora tansah uga Integrasi. Masalah bisa muncul yen sampeyan nggunakake ACL standar menyang direktori, banjur item ditambahake menyang direktori kasebut, banjur nyoba ngganti ijin normal. Owah-owahan sing ditrapake kanggo ijin normal ora bakal katon ing ringkesan ACL. Kanggo ngindhari masalah, setel ijin normal dhisik, banjur setel ACL standar (lan coba ora ngganti maneh sawise iku).

Conto Manajemen Hak Minggah Nggunakake ACLs

Ing conto iki, sampeyan bakal nerusake karo direktori / data / akun lan / data / sales sing digawe sadurunge. Ing conto sadurunge, sampeyan mesthekake yen grup dodolan duwe idin ing /data/sales lan grup akun duwe idin ing /data/account.

Pisanan, priksa manawa grup akun entuk ijin maca ing direktori / data / sales lan grup sales entuk ijin maca ing direktori / data / akun.

Sampeyan banjur nyetel ACL standar kanggo mesthekake yen kabeh file anyar duwe ijin sing bener kanggo kabeh item anyar.

  1. Bukak terminal.
  2. Nglakokke setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Nglakokke getfaclkanggo mesthekake yen ijin wis disetel kaya sing dikarepake.
  4. Nglakokke setfacl -md:g:account:rwx,g:sales:rx /data/saleskanggo nyetel ACL standar kanggo direktori dodolan.
  5. Tambah ACL standar kanggo direktori / data / akun nggunakake setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. Priksa manawa setelan ACL ditrapake kanthi nambah file anyar menyang /data/sales. jangkep tutul /data/sales/newfile lan nglakokaké getfacl /data/sales/newfile kanggo mriksa ijin saiki.

Nyetel ijin gawan nganggo umask

Ndhuwur, sampeyan sinau babagan nggarap ACL standar. Yen sampeyan ora nggunakake ACL, ana opsi cangkang sing nemtokake ijin standar sing bakal sampeyan entuk: umask (topeng mbalikke). Ing bagean iki, sampeyan bakal sinau carane ngganti ijin standar karo umask.

Sampeyan bisa uga wis ngelingi yen sampeyan nggawe file anyar, sawetara ijin standar disetel. Ijin iki ditemtokake dening setelan umask. Setelan cangkang iki ditrapake kanggo kabeh pangguna nalika logon. Ing parameter umask nilai numerik digunakake, sing dikurangi saka ijin maksimum sing bisa disetel kanthi otomatis kanggo file kasebut; setelan maksimal kanggo file yaiku 666 lan kanggo direktori yaiku 777.

Nanging, sawetara pangecualian ditrapake kanggo aturan iki. Sampeyan bisa nemokake ringkesan lengkap setelan umask ing tabel ing ngisor iki.

Saka nomer digunakake ing umask, kaya ing kasus argumen numerik kanggo printah Chmod, digit pisanan nuduhake ijin pangguna, digit kapindho nuduhake ijin grup, lan sing pungkasan nuduhake ijin standar sing disetel kanggo wong liya. Artine umask standar 022 menehi 644 kanggo kabeh file anyar lan 755 kanggo kabeh direktori anyar digawe ing server.

Ringkesan lengkap kabeh nilai numerik umask lan asile ing tabel ing ngisor iki.

Idin ing Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Cara sing gampang kanggo ndeleng carane setelan umask bisa digunakake kaya ing ngisor iki: miwiti karo ijin standar file sing disetel dadi 666 lan nyuda umask kanggo entuk ijin sing efektif. Apa sing padha kanggo direktori lan ijin standar 777.

Ana rong cara kanggo ngganti setelan umask: kanggo kabeh pangguna lan kanggo pangguna individu. Yen sampeyan pengin nyetel umask kanggo kabeh pangguna, sampeyan kudu mesthekake yen setelan umask dianggep nalika miwiti file lingkungan cangkang, kaya sing kasebut ing /etc/profile. Pendekatan sing bener yaiku nggawe skrip cangkang sing diarani umask.sh ing direktori /etc/profile.d lan nemtokake umask sing pengin digunakake ing skrip cangkang kasebut. Yen umask diganti ing file iki, iku ditrapake kanggo kabeh pangguna sawise mlebu menyang server.

Alternatif kanggo nyetel umask liwat /etc/profil lan file sing gegandhengan, sing ditrapake kanggo kabeh pangguna sing mlebu, yaiku ngganti setelan umask ing file sing diarani .profil sing digawe ing direktori ngarep saben pangguna.

Setelan sing ditrapake ing file iki mung ditrapake kanggo pangguna individu; mula iki cara sing apik yen sampeyan butuh luwih rinci. Aku pribadi seneng karo fitur iki kanggo ngganti umask standar kanggo pangguna root dadi 027 nalika pangguna normal mlaku nganggo umask standar 022.

Nggarap atribut pangguna lengkap

Iki minangka bagean pungkasan babagan ijin Linux.

Nalika nggarap ijin, mesthi ana hubungane antarane obyek pangguna utawa grup lan ijin sing diduweni obyek pangguna utawa grup ing file utawa direktori. Cara alternatif kanggo nglindhungi file ing server Linux yaiku nggarap atribut.
Atribut nindakake tugase preduli saka pangguna sing ngakses file kasebut.

Kaya karo ACL, atribut file bisa uga kudu kalebu opsi kasebut gunung.

Iki minangka pilihan panganggo_xattr. Yen sampeyan entuk pesen "Operasi ora didhukung" nalika nggarap atribut pangguna lengkap, priksa manawa sampeyan nyetel parameter kasebut gunung ing /etc/fstab.

Akeh atribut sing didokumentasikan. Sawetara atribut kasedhiya nanging durung dileksanakake. Aja nggunakake; padha ora nggawa apa-apa.

Ing ngisor iki minangka atribut sing paling migunani sing bisa ditrapake:

A Atribut iki njamin wektu akses file ora owah.
Biasane, saben file dibukak, wektu akses file kudu direkam ing metadata file. Iki duwe pengaruh negatif marang kinerja; dadi kanggo file sing ajeg diakses, atribut A bisa digunakake kanggo mateni fitur iki.

a Atribut iki ngidini sampeyan nambah nanging ora mbusak file.

c Yen sampeyan nggunakake sistem file sing ndhukung kompresi tingkat volume, atribut file iki mesthekake yen file dikompres nalika pisanan mekanisme kompresi diaktifake.

D Atribut iki mesthekake yen owah-owahan menyang file ditulis langsung menyang disk tinimbang di-cache dhisik. Iki minangka atribut migunani ing file database sing penting kanggo mesthekake yen ora ilang ing antarane cache file lan hard drive.

d Atribut iki mesthekake yen file ora bakal disimpen ing serep ing ngendi utilitas dump digunakake.

I Atribut iki ngidini indeksasi kanggo direktori sing diaktifake. Iki nyedhiyakake akses file luwih cepet kanggo sistem file primitif kaya Ext3 sing ora nggunakake database B-tree kanggo akses file cepet.

i Atribut iki ndadekake file ora bisa diganti. Mula, ora ana owah-owahan sing bisa ditindakake ing file kasebut, sing migunani kanggo file sing mbutuhake perlindungan tambahan.

j Atribut iki mesthekake yen, ing sistem file ext3, file kasebut pisanan ditulis ing jurnal banjur menyang blok data ing hard disk.

s Nimpa pamblokiran ing ngendi file kasebut disimpen dadi 0s sawise mbusak file kasebut. Iki mesthekake yen file ora bisa dipulihake yen wis dibusak.

u Atribut iki nyimpen informasi babagan pambusakan. Iki ngidini sampeyan ngembangake sarana sing bisa digunakake karo informasi iki kanggo ngluwari file sing wis dibusak.

Yen sampeyan pengin ngetrapake atribut kasebut, sampeyan bisa nggunakake perintah kasebut obrolan. Contone, nggunakake chattr +s sawetara filekanggo aplikasi atribut menyang somefile. Perlu mbusak atribut? Banjur nggunakake chattr -s somefilelan iku bakal dibusak. Kanggo entuk ringkesan kabeh atribut sing saiki ditrapake, gunakake perintah kasebut lsattr.

Ringkesan

Ing artikel iki, sampeyan sinau carane nggarap ijin. Sampeyan maca babagan telung ijin dhasar, ijin lanjutan, lan cara ngetrapake ACL ing sistem file. Sampeyan uga sinau babagan nggunakake opsi umask kanggo ngetrapake ijin standar. Ing pungkasan artikel iki, sampeyan sinau carane nggunakake atribut sing ditambahi pangguna kanggo ngetrapake lapisan keamanan sistem file tambahan.

Yen sampeyan seneng karo terjemahan iki, tulisen babagan iki ing komentar. Bakal ana motivasi luwih akeh kanggo nggawe terjemahan sing migunani.

Ndandani sawetara kesalahan ketik lan gramatikal ing artikel kasebut. Ngurangi sawetara paragraf gedhe dadi luwih cilik supaya luwih gampang diwaca.

Tinimbang "Mung wong sing nduweni hak administratif menyang direktori bisa ngetrapake ijin eksekusi." tetep dadi "Mung wong sing duwe ijin nulis ing direktori bisa ngetrapake ijin eksekusi.", sing bakal luwih bener.

Matur nuwun kanggo komentar beres.

Diganti:
Yen sampeyan dudu pemilik pangguna, cangkang kasebut bakal mriksa manawa sampeyan minangka anggota klompok, uga dikenal minangka grup file.

Ing:
Yen sampeyan dudu pemilik file kasebut, cangkang bakal mriksa manawa sampeyan minangka anggota grup sing duwe ijin ing file kasebut. Yen sampeyan dadi anggota grup iki, sampeyan bakal ngakses file kanthi ijin sing wis disetel grup, lan cangkang bakal mandheg mriksa.

Matur nuwun kanggo komentar sampeyan CryptoPirate

Source: www.habr.com

Add a comment