GNU/Linux >> Belajar Linux >  >> Linux

Mengubah izin Linux

Artikel ini menjelaskan cara mengubah izin pada server cloud Linux® dengan menggunakan chmod perintah.

Apa perintah chmodnya?

Sederhananya, chmod singkatan dari ubah mode dan digunakan untuk mengatur hak akses file atau direktori di Linux. Pengguna root menggunakan chmod untuk menentukan pengguna, grup, dan orang lain yang dapat mengakses file atau direktori.

Biasanya, Anda menggunakan chmod perintah dalam format berikut:

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

Penggunaan opsi dengan chmod perintah adalah opsional. Contoh kedua menerima penggunaan yang paling sering. Tanpa opsi, chmod memodifikasi izin file atau direktori yang ditunjuk dalam perintah.

Izin

Dalam sistem Linux, Anda dapat menggunakan izin untuk merujuk ke pemilik file atau direktori (pengguna), grup yang memiliki file atau direktori (grup), atau siapa pun yang mengakses file atau direktori (lainnya).

Nyatakan izin ini dengan menggunakan notasi berikut:

  • karakter alfanumerik (r, w, x)
  • bilangan oktal (0-7)

Misalnya, Anda memiliki file bernama example.txt , dan Anda ingin menyetel izin berikut:

  • Pengguna dapat membaca, menulis, dan mengeksekusi file.
  • Anggota grup dapat membaca dan mengeksekusi, tetapi tidak dapat menulis file.
  • Orang lain hanya dapat membaca file tersebut.

Opsi perintah berikut menetapkan izin yang Anda inginkan untuk example.txt :

$ chmod u=rwx,g=rx,o=r example.txt

Opsi ini menggunakan karakter alfanumerik untuk menunjukkan pengguna yang dapat mengakses file serta izin yang ingin Anda tetapkan untuk pengguna yang ditunjuk ini.

  • Huruf 'u' =pengguna
  • Huruf 'g' =grup
  • Huruf 'o' =lainnya
  • Huruf 'r' =baca
  • Huruf 'w' =tulis
  • Huruf ‘x’ =eksekusi

Contoh berikut menunjukkan bagaimana Linux menggambarkan izin yang diberikan pada contoh sebelumnya:

-rwxr-xr--

Tiga huruf pertama (rwx) adalah izin pengguna. Tiga yang kedua (r-x) mewakili izin grup, dan tiga terakhir (r–) mewakili izin yang lain.

Selanjutnya, kami memiliki opsi oktal untuk example.txt our kami latihan:

$ chmod 754 example.txt

Dalam contoh ini, angka 7, 5, dan 4 masing-masing mewakili izin pengguna, grup, dan lainnya. Posisi nomor pertama menentukan izin pengguna, nomor kedua menentukan izin grup, dan nomor ketiga memberikan izin untuk orang lain.

Angka-angka ini tidak dipilih secara acak. Menambahkan angka 4, 2, 1, dan 0 bersama-sama menentukan izin. Angka-angka memiliki tugas berikut:

  • 4 singkatan dari 'baca'
  • 2 singkatan dari 'menulis'
  • 1 singkatan dari 'eksekusi'
  • 0 singkatan dari 'tidak ada'

Oleh karena itu, pada contoh kita sebelumnya, 7 ditentukan dari kombinasi read (4), write (2), dan execute (1):4 + 2 + 1 =7. 5 diambil dari penjumlahan read (4), none (0), dan eksekusi (1):4 + 0 + 1 =5. Terakhir, 4 adalah kombinasi dari read (4), none (0), dan none (0):4 + 0 + 0 =4 .

Opsi

Anda biasanya tidak perlu menggunakan opsi di chmod perintah, tetapi jika Anda melakukannya, Anda dapat menggunakan opsi berikut dengan chmod :

  • -c , --changes :Memberikan keluaran verbose untuk perubahan yang dibuat
  • -f , --silent , --quiet :Membungkam sebagian besar pesan kesalahan
  • -v , --verbose :Menampilkan pesan terperinci untuk setiap tindakan yang diproses
  • --no-preserve-root :Mengabaikan perbedaan yang biasanya diberikan secara default ke direktori / (root)
  • --preserve-root :Tidak beroperasi secara rekursif pada direktori / (root)
  • --reference=RFILE :Menyetel izin agar sesuai dengan RFILE, mengabaikan MODE tertentu
  • -R , --recursive :Perubahan yang dibuat pada file atau direktori diterapkan secara rekursif
  • --help :Menampilkan pesan bantuan, lalu keluar
  • --version :Menampilkan informasi versi, lalu keluar

Ekstra

Selain izin yang telah dibahas, chmod perintah dapat mengatur tiga izin khusus lainnya di Linux.

  • SUID (Setel ID Pengguna)
  • SGID (Tetapkan ID Grup)
  • Bit Lengket

SUID

Sebuah s di rwx pengguna izin ditetapkan, menggantikan x , mewakili izin ini, seperti yang ditunjukkan pada contoh berikut:

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

Tiga huruf pertama dalam rwsr-xr-x mewakili izin pengguna. Perhatikan bahwa alih-alih x ada s di tiga slot izin pengguna. Alih-alih menampilkan x untuk dieksekusi, ada s di tempat eksekusi. Mengapa demikian?

Catatan: 4 di depan set izin oktal biasa mewakili izin ini. Jadi, alih-alih 755 , izin ditulis sebagai 4755 .

Anda harus menggunakan opsi ini dengan hati-hati karena izin khusus ini memungkinkan pengguna untuk menjalankan program biner seolah-olah mereka adalah pemilik program itu meskipun bukan. Contoh yang paling terkenal adalah passwd perintah.

Dalam kasus passwd , pengguna dapat mengeksekusi program meskipun program biner dimiliki oleh root. Namun, karena passwd ditetapkan sebagai SUID secara default, selalu dijalankan sebagai pengguna root.

Jika pengguna biasa memiliki izin SUID pada program biner lainnya, mereka dapat menjalankan perintah sebagai root tanpa harus root izin. Ini memungkinkan peningkatan hak istimewa yang tidak normal yang biasanya memerlukan sudo hak istimewa untuk mengakses.

Izin SUID dapat mempengaruhi tindakan pencegahan yang dibangun ke dalam OS Linux dalam bentuk binari saja. Itu tidak memengaruhi skrip.

SGID

Sebuah s di rwx grup izin ditetapkan, menggantikan x dalam t r-x segmen, mewakili izin SGID, seperti yang ditunjukkan pada contoh berikut:

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

s ini ada di grup kedua dari tiga izin, yang kami temukan adalah izin grup sebelumnya ketika ditulis dalam gaya alfanumerik. Dalam rendering oktal, sebuah 2 di depan tiga nomor izin oktal lainnya menunjukkan izin ini. Alih-alih 755 , tulis ini sebagai 2755 .

Seperti SUID, izin SGID hanya berfungsi pada binari. Mereka tidak bekerja pada skrip. Mengenai apa yang dilakukan SGID, ini memungkinkan anggota grup yang tidak memiliki hak istimewa untuk mengeksekusi biner seolah-olah mereka adalah pengguna root.

Biasanya, Anda dapat menggunakan izin ini pada direktori tempat anggota grup perlu memiliki akses dalam direktori yang dibagikan oleh grup. Semua file yang dibuat dalam direktori ini memiliki pemilik grup yang sama, tidak peduli anggota grup mana yang membuat file tersebut.

Bit lengket

Sebuah t di rwx yang lain izin ditetapkan, menggantikan x , mewakili izin ini, seperti yang ditunjukkan pada contoh berikut:

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

Perhatikan t di set terakhir tiga huruf. Setara oktal dari t adalah 1 di depan tiga oktal izin. Alih-alih 777 , tulis ini sebagai 1777 .

Apa yang dilakukan bit lengket ini? Biasanya, Anda menggunakan izin ini pada tmp direktori, dan fungsinya untuk mencegah pengguna menghapus file milik pengguna lain. Biasanya, jika grup memiliki akses tulis ke direktori, setiap pengguna dalam grup tersebut dapat menghapus file apa pun di dalam direktori tersebut. Izin bit lengket menghentikan itu. Hanya pembuat file yang dapat menghapusnya.

Sebagai praktik terbaik, Anda harus mengatur izin sticky bit pada direktori mana pun yang izin lainnya adalah oktal 7 (baca, tulis, jalankan). Di 754 our kami contoh, Anda ingin menggunakan izin sticky bit jika oktalnya 757 di mana 7 adalah oktal ketiga (mewakili izin yang lain).

Lembar contekan izin untuk file dan direktori

Berikut ini adalah lembar contekan singkat yang menjelaskan setiap bagian dari contoh output:

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • - :- di awal memberitahu Anda bahwa ini adalah file. Sebuah d di awal menunjukkan direktori.
  • rwx :Tiga huruf pertama mewakili izin pemilik file, dan berarti pemilik dapat membaca, menulis, dan menjalankan file example.txt.
  • rw- :Tiga huruf kedua mewakili izin grup, dan berarti anggota grup dapat membaca dan menulis ke file, tetapi mereka tidak dapat menjalankannya.
  • r-- :Tiga huruf ketiga mewakili izin orang lain, dan berarti bahwa siapa pun yang bukan pemilik atau dalam grup yang memiliki file hanya dapat membaca file. Mereka tidak dapat menulis ke file atau mengeksekusi file.
  • rack :Pemilik file.
  • space :Pemilik grup.
  • 123G :Ukuran file dalam gigabyte. Sebuah M akan menunjukkan megabyte, dan K akan menunjukkan kilobyte.
  • Feb 03 15:36 :Ini menunjukkan tanggal dan waktu terakhir kali file diubah.
  • example.txt :Nama file. Jika Anda mencantumkan ini sebagai '/ contoh', itu adalah nama direktori.

Linux
  1. Izin Linux 101

  2. Cara Menggunakan Perintah chmod (Ubah Mode) di Linux

  3. chmod:mengubah izin Operasi direktori tidak diizinkan

  1. Apa itu Umask di Linux?

  2. Dasar-dasar Izin File Linux

  3. Izin Linux:Pengantar chmod

  1. Panduan pemula untuk izin Linux

  2. Linux – Ubah Izin Folder?

  3. Perintah chmod Linux