Menguraikan Izin Sistem File Linux

Diterbitkan: 2017-02-24

Izin file Linux mungkin tampak seperti hieroglif teori angka misterius bagi sebagian orang dan itu dapat dimengerti. Model izin sistem file Linux berasal dari warisan UNIX. Namun, mereka cukup mudah untuk dipahami, setelah Anda memahami logika di baliknya.

Grup dan jenis izin

Semua kontrol akses file dan folder didefinisikan dalam sistem file menggunakan informasi berikut:

  • Tiga grup izin: u untuk pemilik, g , grup, o atau a , semua pengguna.
  • Tiga jenis izin: r , baca, x , jalankan, w , tulis.

Jenis izin adalah karakter "r", "x" dan "w" , yang disebut flag, dan ditampilkan seperti itu jika Anda mencantumkan izin file atau folder dalam beberapa cara. Bendera yang tidak disetel digambarkan dengan karakter "-". Yang grup izin digunakan dalam perintah yang mengubah kepemilikan dan grup file, yang akan segera kita selidiki.

Melihat izin

Anda dapat melihat izin file atau folder dengan menggunakan manajer file GUI atau dengan memeriksa output dari perintah ls di terminal konsol.

Buka terminal Anda dan ketik perintah berikut:

$tes sentuh

$ ls -la tes

-rw-r–r– 1 staf yorgos 0 23 Feb 17:07 tes

String “-rw-r–r–” berisi informasi izin sistem file yang kami minati. Bidang lainnya dari kiri ke kanan menampilkan informasi berikut:

  • berapa banyak tautan ke file ini (1)
  • pemilik userid (yorgos)
  • ID grup (staf)
  • Panjang file dalam byte (0)
  • Tanggal dibuat (23 Februari)
  • Waktu pembuatan (17:07)
  • Nama file (tes)

bit izin

Anda akan melihat bahwa ada 9 kombinasi grup dan tipe izin yang berbeda, tetapi 10 posisi bendera. Yang pertama menunjukkan bendera jenis file sementara yang kedua menunjukkan izin itu sendiri. Jenis file dapat berupa: "-" untuk file, "l" untuk tautan simbolik (ini adalah tautan sistem file yang hanya menunjuk ke file lain) dan "d" untuk direktori. Karena karakter/bendera pertama dalam contoh kita adalah "-", kita berbicara tentang file sederhana. Melanjutkan, mari kita urai bidang izin:

: Filetype (ini dapat berisi l, -, atau d)

rw- : izin baca dan tulis (tidak ada eksekusi). Izin ini untuk pemilik.

r– : izin baca, tidak ada izin tulis dan eksekusi. Izin ini menganggap pengguna yang termasuk dalam grup.

r– : izin baca, tidak ada menulis dan mengeksekusi. Terakhir, izin ini menyangkut orang lain.

Jadi sebenarnya, ini hanya berarti "file ini dapat dibaca dan ditulis oleh pemiliknya, dan hanya dapat dibaca oleh orang lain". Grup berbagi izin yang sama.

Memodifikasi izin

Untuk mengubah izin file atau folder, sekali lagi, Anda dapat menggunakan perintah GUI (ini di luar cakupan artikel ini, jadi kami tidak akan membahasnya) atau menggunakan perintah linux tertentu di terminal Anda. Perintah yang akan kita gunakan disebut chmod (mengubah mode file). Perintah chmod menerima berbagai parameter yang mengubah perilakunya dalam berbagai cara, tetapi penggunaan umumnya adalah sebagai berikut:

$ chmod <mode> <file>

<mode> ditentukan oleh simbol berikut:

r bendera baca

dengan bendera tulis

x bendera eksekusi

u tanda izin pengguna/pemilik

g bendera izin grup

o tanda izin pengguna lain

Ada beberapa yang lain, tetapi kami akan membahasnya di bagian akhir artikel kami.

Jadi, katakanlah Anda ingin memberikan izin eksekusi kepada pengguna yang tergabung dalam grup (tetapi pastikan Anda adalah pemilik file terlebih dahulu!):

$chown g+x tes
$ ls -l tes
-rwxrwxrwx 1 yorgos staf 0 Feb 23 17:07 tes

Atau mungkin Anda perlu mengunci semua orang sepenuhnya. Mereka tidak akan dapat membaca, menulis, atau mengeksekusi file:

$chown o-rwx tes
$ ls -l tes
-rwxrwx— 1 staf yorgos 0 23 Feb 17:07 tes

Di sini kita melihat flag terakhir semuanya tidak disetel ke "-".
Jika Anda ingin melihat lebih banyak contoh, lihat halaman manual untuk chmod dengan mengeluarkan perintah berikut:

$ man chmod

Pemilik dan grup

Anda juga dapat mengubah kepemilikan file dan grup file dengan menggunakan perintah chown .

Perintah chown menerima berbagai parameter yang mengubah perilakunya dalam beberapa cara, tetapi penggunaan yang paling umum adalah sebagai berikut:

# chown <pemilik> <file>

Atau

# chown <pemilik:grup> <file>

Contoh pertama digunakan untuk mengubah pemilik file ke yang lain. Namun, perlu diingat bahwa Anda harus memiliki akses root untuk mengubah kepemilikan file. Jadi, dengan menjalankan yang berikut:

# tes chown tidak ada

# ls -l tes

-rwxrwxrwt 1 tidak ada staf 0 Feb 23 17:07 tes

terungkap sekarang bahwa file tersebut dimiliki oleh userid 'tidak ada' dan bukan oleh 'yorgos' lagi.

Demikian pula perintah:

# tidak ada chown:tes roda

# ls -l tes

-rwxrwxrwt 1 tidak ada roda 0 23 Feb 17:07 tes


Mengubah kepemilikan file menjadi tidak ada dan grup menjadi wheel .

Jika Anda ingin mengetahui lebih lanjut tentang perintah dan berbagai parameternya, lihat halaman manual chown dengan mengeluarkan perintah:

$ man chown

Izin khusus

Selain jenis dan grup izin yang telah kami sebutkan di artikel, ada beberapa jenis izin lainnya, yang disebut "izin khusus".

Ini adalah sebagai berikut:

s       Bendera Setel ID Pengguna dan Setel ID Grup.

t       Bendera lengket.

Yang pertama diatur dengan menggunakan flag “s” dalam perintah chmod dengan cara biasa, seperti:

$ chmod u+s tes
$ ls -l tes
-rwsrwx—   1 yorgos   staf   0 Feb 23 17:07 tes

Bendera ini juga disebut bendera SUID (Set User ID) atau SGID (Set Group ID). Jika bit ini disetel, maka file tersebut mewarisi hak akses pemiliknya. Ini berarti bahwa siapa pun yang mengeksekusi file, melakukannya sebagai pemiliknya. SGID serupa, tetapi file mewarisi hak akses grupnya. Ini, tentu saja, dapat menyebabkan masalah keamanan, jadi harus berhati-hati.

Bit lengket, atau "t" sangat berguna. Saat diatur dalam direktori, yang biasanya dibagikan seperti /tmp, file yang dibuat di sana hanya dapat diganti namanya atau dihapus oleh pemiliknya masing-masing. Jika bit lengket tidak disetel, pemilik direktori tidak memiliki kendali atas mereka.

Anda dapat membuat direktori "lengket" dengan mengeluarkan perintah berikut:

$ chmod +t /direktori

Representasi oktal

Selain menggunakan tanda untuk menentukan izin seperti “r” dan “w”, Anda juga dapat menggunakan nilai numerik. Perintah chmod memberikan nilai berikut ke izin:

“r” = 4

“w” = 2

“x” = 1

Jadi untuk mengatur file agar dibaca/tulis/eksekusi untuk pemiliknya, dan baca/eksekusi untuk orang lain, yang berarti "-rwxr-xr-x", kami menghitung nilai numerik seperti ini:

rwx = 4+2+1 = 7

rx = 4+1 = 5

Kami akhirnya mengeluarkan perintah:

$ chmod 755 tes
$ ls – tes
-rwxr-xr-x   1 yorgos   staf   21 Feb 24 02:08 tes

Berlatih sendiri dengan menggunakan izin dan nilai numerik yang berbeda untuk memahaminya!