Di antara tantangan mengelola Linux di lingkungan bisnis modern adalah harapan bahwa kita dapat dan harus mengelola siapa yang memiliki akses ke informasi apa. Sekali waktu, satu-satunya orang yang membutuhkan akses ke sistem file Linux dapat dikategorikan secara umum:melalui izin sistem file Linux.
Meninjau dasar-dasarnya
Sistem file Linux memberi kita tiga jenis izin. Berikut adalah ulasan yang disederhanakan:
- U ser (atau pemilik pengguna)
- G roup (atau grup pemilik)
- O di sana (semua orang)
Dengan izin ini, kami dapat memberikan tiga (sebenarnya lima, tetapi kami akan menyelesaikannya dalam satu menit) jenis akses:
- B baca
- A ritus
- eX ecute
Tingkat akses ini seringkali memadai dalam banyak kasus. Katakanlah Anda memiliki direktori tempat file dari departemen akuntansi berada. Anda dapat menyetel izin ini ke:
drwxrwxr-x 2 accounting accounting 12 Jan 8 15:13
Pengguna jasa akuntansi (pemilik pengguna) dapat membaca dan menulis ke direktori, dan anggota accounting
grup (atau grup pemilik) dapat membaca dan menulis. Namun, orang lain (pengguna yang tidak berada di departemen akuntansi) dapat melihat dan menjalankan apa yang ada di sana, yang mungkin dianggap sebagai ide yang buruk oleh beberapa orang.
[ Juga populer: Dasar-dasar sysadmin Linux:Pengelolaan akun pengguna ]
Jadi, kami mungkin mengubah izin menjadi ini:
drwxrwx--- 2 accounting accounting 12 Jan 8 15:13 .
Catatan: Anda juga dapat menggunakan izin khusus untuk mengontrol setelan seperti siapa yang sebenarnya memiliki file baru yang dibuat di direktori itu, serta sticky bit yang mengontrol apakah anggota grup dapat menghapus file satu sama lain. Namun, itu di luar cakupan diskusi ini.
Melihat ACL saat ini
Bagaimana jika Anda memiliki magang akuntansi (Kenny) yang harus dapat membaca file tertentu (atau bahkan hanya file yang dimiliki oleh Fred, manajernya)? Atau mungkin orang-orang di bagian penjualan juga membutuhkan akses ke accounting
file pemilik untuk membuat faktur untuk tim Fred untuk menagih pelanggan, tetapi Anda tidak ingin tim penjualan melihat laporan lain yang dihasilkan tim Fred. Situasi ini dapat menjadi rumit karena, dengan izin biasa, setiap file dan direktori hanya dapat memiliki satu pengguna dan pemilik grup dalam satu waktu. Jenis situasi inilah yang dimaksudkan untuk diselesaikan oleh Daftar Kontrol Akses Linux (ACL).
ACL memungkinkan kami untuk menerapkan serangkaian izin yang lebih spesifik ke file atau direktori tanpa (harus) mengubah kepemilikan dan izin dasar. Mereka mengizinkan kami untuk "mengatasi" akses untuk pengguna atau grup lain.
Kita dapat melihat ACL saat ini menggunakan getfacl
perintah:
[root]# getfacl /accounting
getfacl: Removing leading '/' from absolute path names
# file: accounting
# owner: accounting
# group: accounting
user::rwx
group::rwx
other::---
Kita dapat melihat bahwa saat ini, tidak ada ACL pada direktori ini karena satu-satunya izin yang terdaftar adalah untuk pengguna, grup, dan lainnya. Dalam hal ini, itulah yang diharapkan, karena saya baru saja membuat direktori ini di lab dan belum melakukan apa pun selain menetapkan kepemilikan. Jadi, mari kita mulai dengan menambahkan ACL default:
Menyetel ACL
Sintaks untuk menyetel ACL terlihat seperti ini:
setfacl [option] [action/specification] file
'Tindakan'nya adalah -m
(modifikasi) atau -x
(hapus), dan spesifikasinya adalah pengguna atau grup diikuti dengan izin yang ingin kita atur. Dalam hal ini, kami akan menggunakan opsi -d
(default). Jadi, untuk menetapkan ACL default untuk direktori ini, kita akan menjalankan:
[root]# setfacl -d -m accounting:rwx /accounting
Setelah itu kita sekarang dapat melihat info ACL default untuk direktori itu:
[root]# getfacl /accounting
[root]# getfacl: Removing leading '/' from absolute path names
# file: accounting
# owner: accounting
# group: accounting
user::rwx
group::rwx
other::---
default:user::rwx
default:user:accounting:rwx
default:group::rwx
default:mask::rwx
default:other::---
Bagaimana jika Fred membuat file di direktori itu?
[fred]$ touch test
[fred]$ ls -la
drwxrwx---+ 2 accounting accounting 18 Jan 8 17:51 .
dr-xr-xr-x. 18 root root 262 Jan 8 15:13 ..
-rw-rw----+ 1 fred accounting 0 Jan 8 17:51 test
[fred]$ getfacl test
# file: test
# owner: fred
# group: accounting
user::rw-
user:accounting:rwx #effective:rw-
group::rwx #effective:rw-
Apa yang terjadi jika Kenny mencoba membuat file? Anda mungkin dapat menebaknya karena kenny
tidak ada dalam accounting
grup, dia tidak akan memiliki izin. Namun kami ingin Kenny memiliki pengalaman yang baik saat bekerja dengan kami, jadi kami perlu memberinya kemampuan untuk melihat file apa saja yang ada di accounting
direktori, dan kami ingin dia dapat membuat file baru:
[root@lab1 accounting]setfacl -m kenny:rwx /accounting
[root]getfacl ./
# file: .
# owner: accounting
# group: accounting
user::rwx
user:kenny:rwx
Sejauh ini baik. Tetapi bagaimana jika kita tidak ingin pengguna ini membuat file di accounting
direktori? Sebagai gantinya, kami hanya ingin membiarkan dia membaca file di sana, dan dia dapat membuat file baru di foldernya sendiri.
[ Artikel terkait: Dasar-dasar sysadmin Linux:Pengelolaan akun pengguna dengan UID dan GID ]
Kita bisa mengatur akses Kenny di accounting
foldernya seperti ini:
[root@lab1 accounting]# setfacl -m kenny:r-x /accounting
[root]# getfacl ./
# file: .
# owner: accounting
# group: accounting
user::rwx
User:kenny:r-x
Sekarang kita membuat Kenny foldernya sendiri, memberinya kepemilikan, dan kemudian membuat accounting
kelompokkan pemilik grup sehingga orang lain di accounting
grup dapat melihat apa yang ada di sana:
[root@lab1 accounting]# mkdir ./kenny
[root]# chown kenny:accounting ./kenny
[root]# getfacl ./kenny
# file: kenny
# owner: kenny
# group: accounting
user::rwx
user:accounting:rwx
group::rwx
Anda telah membuat folder di dalam accounting
grup yang dimiliki oleh pengguna kenny
. Dia sekarang dapat melihat folder akuntansi, tetapi hanya membuat file di foldernya sendiri:
[root@lab1 accounting]# su kenny
[kenny]$ touch test
touch: cannot touch ‘test’: Permission denied
[kenny]$ cd ./kenny
[kenny]$ touch test
[kenny]$ ls
test
Perhatikan bahwa karena folder tersebut dimiliki oleh accounting
grup, siapa pun di grup itu dapat meletakkan file di sana. Karena kita berurusan dengan magang, faktor ini mungkin baik-baik saja. Namun, bagaimana jika kita memberi Kenny promosi ke kepala auditor dan ingin merahasiakan pekerjaannya dari Fred?
[root]# setfacl -m fred:- ./kenny
[root]# getfacl ./kenny
# file: kenny
# owner: kenny
# group: accounting
user::rwx
user:accounting:---
user:fred:---
Bagaimana jika kita tidak menginginkan siapa pun untuk melihat apa yang sedang dikerjakan Kenny?
[root]# setfacl -m g:accounting:- ./kenny
Catatan: Saat kita ingin menyetel grup ACL, kita perlu menentukan ini dengan meletakkan g:
di depan nama grup. Untuk pengguna, cukup ubah g
ke u
, tapi setfacl
akan menganggap kita berbicara tentang pengguna jika Anda tidak meletakkan apa pun di tempat itu.
Kami masih harus menghapus izin dasar untuk pemilik grup sehingga tim akuntansi lainnya tidak dapat mengintip laporan Kenny:
[root]# chmod g-rwx ./kenny
[root]# ls -al
total 0
drwxrwx-wx+ 3 accounting accounting 44 Jan 9 16:38 .
dr-xr-xr-x. 18 root root 262 Jan 8 15:13 ..
drwx------+ 2 kenny accounting 18 Jan 9 17:07 kenny
-rw-rw----+ 1 root root 0 Jan 9 16:33 test
-rw-rw----+ 1 kenny accounting 0 Jan 9 16:27 test2
[root]# getfacl ./kenny
# file: kenny
# owner: kenny
# group: accounting
user::rwx
user:accounting:---
user:fred:---
group::rwx #effective:---
[root]# su jan
[jan]$ touch ./kenny/test
touch: cannot touch ‘./kenny/test’: Permission denied
Sekarang kita dapat mengatur siapa lagi yang dapat melihat atau menulis ke folder Kenny tanpa mengubah kepemilikan. Mari beri CEO (Lisa, yang bukan anggota tim akuntansi, dan tidak akan memiliki akses ke folder lainnya) akses ke barang-barang Kenny:
[root@lab1 accounting]# useradd lisa
[root]# setfacl -m u:lisa:rwx ./kenny
[root]# su lisa
[lisa]$ touch ./kenny/lisa
[lisa]$ ls ./kenny
lisa test
[lisa]$ touch test
touch: cannot touch ‘test’: Permission denied
[root]# getfacl ./kenny
# file: kenny
# owner: kenny
# group: accounting
user::rwx
user:accounting:---
user:fred:---
user:lisa:rwx
group::rwx
group:accounting:---
Perhatikan lagi bahwa izin pemilik grup tetap terbuka lebar, tetapi grup akuntansi (yang masih pemiliknya), tidak lagi memiliki akses ke folder itu. Jadi, siapa pemiliknya?
drwxrwx---+ 2 kenny accounting 30 Jan 9 17:16 kenny
Bagian ini rumit. Sangat berguna untuk mengetahui bahwa kami dapat mengambil izin pemilik tanpa mengubah kepemilikan, tetapi Anda mungkin ingin mempertimbangkan apakah ini hasil yang Anda inginkan.
Kesimpulan
Jadi ini adalah dasar-dasarnya. ACL dapat membingungkan, jadi saya mendorong Anda untuk memberikan halaman manual untuk setfacl
dan getfacl
bacaan yang bagus. Ada banyak hal menarik dan berguna yang dapat Anda lakukan dengan alat ini, tetapi mudah-mudahan, Anda sekarang cukup memahami untuk memulai.
[ Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis. ]