ACL di Debian GNU/Linux

Dalam kebanyakan filesistem *nix, seorang admin biasanya dapat menentukan akses/permisi read (r), write (w), dan execute (x) kepada file maupun/directory, dan mengeset permisi tersebut untuk user, group maupun user lain secara berbeda. Ini adalah fasilitas yang hampir sama pada semua sistem *nix, yang simpel dan efektif  tetapi dalam kasus yang lebih rumit, admin seringkali harus menerapkan sistem permisi untuk struktur direktori maupun files untuk beberapa groups yang cukup rumit jika diimplementasikan dengan hak akses standar.  Cara yang lebih baik adalah menggunakan acces control lists (ACLs) dari filesistem untuk mendapatkan level kontrol yang lebih baik.

contoh simpel melihat bit permisi dari sebuah direktori dan files menggunakan ls -l

rosid@debian:~$ ls -l
total 36
-rw-r–r– 1 rosid rosid 0 2011-01-06 21:31 coba1.acl
-rw-r–r– 1 rosid rosid 0 2011-01-06 21:31 coba2.acl
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Desktop
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Documents
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Downloads
-rw-r–r– 1 rosid Domain Users 179 2011-01-03 21:35 examples.desktop
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Music
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Pictures
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Public
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Templates
drwxr-xr-x 2 rosid Domain Users 4096 2011-01-03 21:36 Videos

seperti terlihat file coba1.acl dan coba2.acl memiliki akses read write untuk user rosid, akses read untuk groupnya dan akses read untuk user lainnya.

Access Control Lists (ACLs) menyediakan cara yang lebih fleksibel menentukan suatu akses permisi terhadap file atau objek lain jika dibandingkan system standar  user/groups/other di linux. Di Windows NT dan versi di atasnya, dengan partisi NTFS, menggunakan ACL untuk menentukan akses terhadap file dan direktori.

Agar bisa memanfaatkan ACL ini di linux, kernel linux harus memiliki dukungan dan dikompile dengan kemampuan ACL ini. Hampir semua distribusi saat ini menyertakan kernel yang mendukung filesistem dengan ACL, tapi kalau tidak yakin cek kernel yang kita gunakan

rosid@debian:~$ cat /boot/config-`uname -r` | grep _ACL
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_OCFS2_FS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m

Seperti yang terlihat, bahwa hampir semua filesistem dari kernel bawaan yang ada mendukung POSIX ACL.. 🙂

Agar bisa memanfaatkan kemampuan ACL ini install utitilty acl dari repository debian

$ sudo apt-get install acl

Utilitas acl mengandung dua set tool utama, setfacl dan getfacl untuk mengeset dan melihat ACL…mari kita lanjut

Agar acl bisa digunakan, partisi filesistem harus dimount dengan opsi acl..lihat apakah partisi kita dimount dengan opsi acl

rosid@debian:~$ mount -l
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)

ternyata partisi / (root) tidak dimount dengan dukungan acl, mari kita remount ulang

$ sudo mount -o remount,acl /

dan lihat hasilnya

rosid@debian:~$ mount -l
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)

terlihat bahwa partisi rootnya sudah dimount dengan opsi acl. Agar permanen saat reboot, kita harus menambahkan opsi ini ke /etc/fstab… 🙂

Mari kita lihat bagaimana acl ini berfungsi, dengan melihat kondisi awal

rosid@debian:~$ getfacl coba1.acl
# file: coba1.acl
# owner: rosid
# group: rosid
user::rw-
group::r–
other::r–

Ternyata hak akses seperti saat dilihat dengan ls -l. Misalkan kita ingin agar user paijo memiliki akses read(r) dan write (w) terhadap file coba1.acl..

$setfacl -m u:paijo:rw coba1.acl

dan sekarang kita lihat perbedaannya

$ls -l .
total 36
-rw-rw-r–+ 1 rosid rosid 0 2011-01-06 21:31 coba1.acl
-rw-r–r– 1 rosid rosid 0 2011-01-06 21:31 coba2.acl


Terlihat tanda + pada file coba1.acl yang telah diset acl-nya, atau lihat dengan getfacl

$ getfacl coba1.acl
# file: coba1.acl
# owner: rosid
# group: rosid
user::rw-
user:paijo:rw-
group::r–
mask::rw-
other::r–

terlihat bahwa user paijo sekarang memiliki hak akses read write terhadap file coba1.acl yang ada dibawah direktori home-nya user rosid,yang defaultnya untuk user lain biasanya cuma read saja.

jika ingin memberi akses read (r) dan write (w) kepada suatu group user, bisa dengan

$setfacl -m g:paijo:rw coba2.acl

dan jika ingin memberi akses write (w) ke user/group lain

$setfacl -m o::w coba2.acl

dan lihat hasilnya

rosid@debian:~$ getfacl coba2.acl
# file: coba2.acl
# owner: rosid
# group: rosid
user::rw-
group::r–
group:paijo:rw-
mask::rw-
other::-w-

Untuk yang lain, silahkan baca manual dan googling berbagai tutorial di internet. Semoga bermanfaat… 🙂 🙂

Advertisements
Comments
2 Responses to “ACL di Debian GNU/Linux”
  1. rizaaal says:

    nice info, mau tak coba dulu 🙂

  2. blackshirt says:

    mohon sarannya juga 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: