Dalam sistem operasi mirip Unix, chmod perintah mengatur hak akses file atau direktori.
Halaman ini menjelaskan versi GNU/Linux dari chmod.
Keterangan
Pada sistem operasi mirip Unix, satu set flag yang terkait dengan setiap file menentukan siapa yang dapat mengakses file itu, dan bagaimana mereka dapat mengaksesnya. Bendera ini disebut file izin atau mode, seperti dalam “mode akses”. Nama perintah chmod singkatan dari “ubah mode.” Ini membatasi cara file dapat diakses.
Untuk informasi selengkapnya tentang mode file, lihat: Apa itu izin file, dan bagaimana cara kerjanya? dalam dokumentasi kami tentang umask memerintah. Ini berisi deskripsi lengkap tentang cara mendefinisikan dan menentukan izin file.
Secara umum, chmod perintah mengambil bentuk:
chmod options permissions file name
Jika tidak pilihan ditentukan, chmod memodifikasi izin file yang ditentukan oleh nama file dengan izin yang ditentukan oleh izin.
izin mendefinisikan izin untuk pemilik file (“pengguna”), anggota grup yang memiliki file (“grup”), dan orang lain (“orang lain”). Ada dua cara untuk mewakili izin ini: dengan simbol (karakter alfanumerik), atau dengan angka oktal (digit 0 melalui 7).
Katakanlah Anda adalah pemilik file bernama file saya, dan Anda ingin mengatur izinnya agar:
- NS kamuser bisa Rtidur, writus, dan exjalankan itu;
- anggota Anda Group bisa Read dan exjalankan itu; dan
- Haihanya ada mungkin Rmakan itu.
Perintah ini melakukan trik:
chmod u=rwx,g=rx,o=r myfile
Contoh ini menggunakan notasi izin simbolis. Surat-surat kamu, G, dan Hai berdiri untuk “pengguna“,”kelompok“, dan “lainnya“. Tanda sama dengan (“=“) berarti “mengatur hak akses persis seperti ini,” dan huruf “R“,”w“, dan “x” singkatan dari “baca”, “tulis”, dan “eksekusi”, masing-masing. Koma memisahkan kelas izin yang berbeda, dan tidak ada spasi di antara keduanya.
Berikut adalah perintah yang setara menggunakan notasi izin oktal:
chmod 754 myfile
Di sini angkanya 7, 5, dan 4 masing-masing secara individual mewakili izin untuk pengguna, grup, dan lainnya, dalam urutan itu. Setiap digit adalah kombinasi dari angka 4, 2, 1, dan 0:
- 4 singkatan dari “membaca”,
- 2 singkatan dari “menulis”,
- 1 singkatan dari “eksekusi”, dan
- 0 singkatan dari “tidak ada izin.”
Jadi 7 adalah kombinasi dari izin 4+2+1 (membaca, menulis, dan mengeksekusi), 5 adalah 4+0+1 (membaca, tidak menulis, dan mengeksekusi), dan 4 adalah 4+0+0 (baca, tidak tulis, dan tidak ada eksekusi).
Sintaksis
chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE...
Pilihan
-C, –perubahan | Suka –verbose, tetapi memberikan keluaran verbose hanya ketika perubahan benar-benar dibuat. |
-F, –diam, –diam | Modus senyap; menekan sebagian besar pesan kesalahan. |
-v, –verbose | Modus verbose; output pesan diagnostik untuk setiap file yang diproses. |
–no-preserve-root | Jangan mengobati’/‘ (direktori root) dengan cara khusus apa pun, yang merupakan pengaturan default. |
–melestarikan-root | Jangan beroperasi secara rekursif pada ‘/‘. |
–referensi=RFILE | Tetapkan izin agar sesuai dengan yang ada di file RFILE, mengabaikan yang ditentukan MODE. |
-R, –rekursif | Ubah file dan direktori secara rekursif. |
–Tolong | Tampilkan pesan bantuan dan keluar. |
–Versi: kapan | Keluarkan informasi versi dan keluar. |
Deskripsi teknis
chmod mengubah mode file dari masing-masing yang ditentukan MENGAJUKAN berdasarkan MODE, yang dapat berupa representasi simbolis dari perubahan yang akan dibuat, atau angka oktal yang mewakili pola bit untuk bit mode baru.
Format mode simbolik adalah:
[ugoa…][[+-=][perms…]…]
di mana perm adalah nol atau lebih huruf dari himpunan R, w, x, x, S dan T, atau satu huruf dari himpunan kamu, G, dan Hai. Beberapa mode simbolis dapat diberikan, dipisahkan dengan koma.
Gabungan huruf kamu, G, Hai, dan A mengontrol akses pengguna mana ke file yang akan diubah: pengguna yang memilikinya (kamu), pengguna lain dalam grup file (G), pengguna lain yang tidak ada dalam grup file (Hai), atau semua pengguna (A). Jika tidak ada yang diberikan, efeknya seolah-olah A diberikan, tetapi bit yang diatur di umask tidak terpengaruh.
Operatornya + menyebabkan bit mode file yang dipilih ditambahkan ke bit mode file yang ada dari setiap file; – menyebabkan mereka dihapus; dan = menyebabkan mereka ditambahkan dan menyebabkan bit yang tidak disebutkan dihapus kecuali bahwa pengguna set direktori yang tidak disebutkan dan bit ID grup tidak terpengaruh.
Surat-surat R, w, x, x, S dan T pilih bit mode file untuk pengguna yang terpengaruh: baca (R), menulis (w), melaksanakan (x), jalankan hanya jika file tersebut adalah direktori atau sudah memiliki izin eksekusi untuk beberapa pengguna (x), atur ID pengguna atau grup saat dieksekusi (S), bendera penghapusan terbatas atau bit lengket (T). Untuk direktori, opsi eksekusi x dan x tentukan izin untuk melihat konten direktori.
Alih-alih satu atau lebih dari huruf-huruf ini, Anda dapat menentukan dengan tepat salah satu huruf kamu, G, atau Hai: izin yang diberikan kepada pengguna yang memiliki file (kamu), izin yang diberikan kepada pengguna lain yang menjadi anggota grup file (G), dan izin yang diberikan kepada pengguna yang tidak termasuk dalam dua kategori sebelumnya (Hai).
Mode numerik adalah dari satu hingga empat digit oktal (0–7), diturunkan dengan menjumlahkan bit dengan nilai 4, 2, dan 1. Digit yang dihilangkan diasumsikan sebagai nol di depan. Digit pertama memilih set ID pengguna (4) dan setel ID grup (2) dan penghapusan terbatas atau lengket (1) atribut. Digit kedua memilih izin untuk pengguna yang memiliki read (4), menulis (2), dan jalankan (1); yang ketiga memilih izin untuk pengguna lain dalam grup file, dengan nilai yang sama; dan yang keempat untuk pengguna lain yang tidak ada dalam grup file, dengan nilai yang sama.
chmod tidak pernah mengubah izin tautan simbolik; NS chmod panggilan sistem tidak dapat mengubah izinnya. Namun, ini bukan masalah karena izin tautan simbolik tidak pernah digunakan. Namun, untuk setiap tautan simbolik yang terdaftar di baris perintah, chmod mengubah izin file yang ditunjuk. Sebaliknya, chmod mengabaikan tautan simbolik yang ditemui selama traversal direktori rekursif.
Bit setuid dan setgid
chmod menghapus bit set-group-ID dari file biasa jika ID grup file tidak cocok dengan ID grup efektif pengguna atau salah satu ID grup tambahan pengguna, kecuali jika pengguna memiliki hak istimewa yang sesuai. Pembatasan tambahan dapat menyebabkan bit set-user-ID dan set-group-ID dari MODE atau RFILE untuk diabaikan. Perilaku ini tergantung pada kebijakan dan fungsionalitas yang mendasarinya chmod panggilan sistem. Jika ragu, periksa perilaku sistem yang mendasarinya.
chmod mempertahankan bit set-user-ID dan set-group-ID direktori kecuali jika Anda secara eksplisit menentukan sebaliknya. Anda dapat mengatur atau menghapus bit dengan mode simbolis seperti u+s dan gs, dan Anda dapat mengatur (tetapi tidak menghapus) bit dengan mode numerik.
Bendera penghapusan terbatas (atau “sticky bit”)
Bendera penghapusan terbatas atau bit lengket adalah bit tunggal, yang interpretasinya tergantung pada jenis file. Untuk direktori, ini mencegah pengguna yang tidak memiliki hak untuk menghapus atau mengganti nama file di direktori kecuali jika mereka memiliki file atau direktori tersebut; ini disebut bendera penghapusan terbatas untuk direktori, dan biasanya ditemukan di direktori yang dapat ditulisi dunia seperti /tmp. Untuk file biasa pada beberapa sistem lama, bit menyimpan gambar teks program pada perangkat swap sehingga memuat lebih cepat saat dijalankan; ini disebut bit lengket.
Melihat izin dalam daftar file
Cara cepat dan mudah untuk membuat daftar izin file adalah dengan daftar panjang (-l) pilihan dari ls memerintah. Misalnya, untuk melihat izin dari file.txt, Anda dapat menggunakan perintah:
ls -l file.txt
…yang menampilkan output seperti berikut:
-rwxrw-r-- 1 hope hopestaff 123 Feb 03 15:36 file.txt
Inilah arti setiap bagian dari informasi ini:
– | Karakter pertama mewakili jenis file: “–” untuk file biasa, “D” untuk sebuah direktori, “aku” untuk tautan simbolis. |
rwx | Tiga karakter berikutnya mewakili izin untuk pemilik file: dalam hal ini, pemilik dapat Rdari, writus untuk, bijih xjalankan filenya. |
rw- | Tiga karakter berikutnya mewakili izin untuk anggota grup file. Dalam hal ini, setiap anggota grup pemilik file dapat Rbaca dari or writus ke file. Tanda hubung terakhir adalah pengganti; anggota grup tidak memiliki izin untuk mengeksekusi file ini. |
R– | Izin untuk “orang lain” (orang lain). Yang lain mungkin hanya Rbaca file ini. |
1 | Jumlah tautan keras ke file ini. |
harapan | Pemilik file. |
harapan | Grup yang memiliki file tersebut. |
123 | Ukuran file dalam blok. |
03 Februari 15:36 | mtime file (tanggal dan waktu file terakhir diubah). |
file.txt | Nama filenya. |
Contoh
chmod 644 file.htm
Setel izin dari file.htm menjadi “pemilik dapat membaca dan menulis; grup hanya dapat membaca; yang lain hanya dapat membaca”.
chmod -R 755 myfiles
Secara rekursif (-R) Ubah izin direktori file saya, dan semua folder dan file yang dikandungnya, ke mode 755. Pengguna dapat membaca, menulis, dan mengeksekusi; anggota grup dan pengguna lain dapat membaca dan mengeksekusi, tetapi tidak dapat menulis.
chmod u=rw example.jpg
Ubah izin untuk pemilik contoh.jpg sehingga pemilik dapat membaca dan menulis file. Jangan mengubah izin untuk grup, atau untuk orang lain.
chmod u+s comphope.txt
Setel bit “Set-User-ID” dari comphope.txt, sehingga siapa pun yang mencoba mengakses file tersebut melakukannya seolah-olah mereka adalah pemilik file tersebut.
chmod u-s comphope.txt
Kebalikan dari perintah di atas; un-set bit SUID.
chmod 755 file.cgi
Setel izin dari file.cgi untuk “membaca, menulis, dan mengeksekusi oleh pemilik” dan “membaca dan mengeksekusi oleh grup dan semua orang”.
chmod 666 file.txt
Setel izin dari file.txt untuk “membaca dan menulis oleh semua orang.”.
chmod a=rw file.txt
Melakukan hal yang sama seperti perintah di atas, menggunakan notasi simbolik.
Perintah terkait
chown — Mengubah kepemilikan file atau direktori.
getfacl — Menampilkan daftar kontrol akses file.
ls — Daftar isi direktori atau direktori.