Apa arti dari "chmod 666"?

47

Saya menggunakan Linux. Apa artinya chmod 666?

Seno
sumber
28
alias, perintah Setan.
Moab
6
Jika itu mengganggu Anda (atau jika Anda tidak dapat mengingat angka-angka itu) Anda juga dapat menuliskannya sebagai chmod a=rw.
starblue
perintah tidak berguna, karena argumen ketiga tidak diberikan ^^
kokbira
juga dapat menghasilkan kelemahan keamanan (semua pengguna dapat menulis file / folder) atau izin file / folder yang tidak berguna
kokbira

Jawaban:

112

chmod perintah ubah atribut dari file / folder:

  • chmod 666 file/folder berarti bahwa semua pengguna dapat membaca dan menulis tetapi tidak dapat menjalankan file / folder;
  • chmod 777 file/folder memungkinkan semua tindakan untuk semua pengguna;
  • chmod 744 file/folderhanya mengizinkan pengguna (pemilik) untuk melakukan semua tindakan; grup dan pengguna lain hanya diperbolehkan membaca.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Atau, Anda dapat menjalankan perintah dengan sintaks yang lebih intuitif, tanpa harus berpikir dalam biner atau oktal (tetapi pengetahuan tentang sintaks numerik sangat penting): chmod u=rw, g=rw, o=rw file/folder

Ingatlah bahwa izin berubah dengan chmodperintah membutuhkan setidaknya 3 argumen, jadi chmod 666tidak apa-apa tanpa file / folder eksplisit untuk mengubah izin.

Juga pastikan untuk mengkritik jika tidak menghasilkan masalah tidak aman atau hanya jika itu adalah perubahan izin yang tidak berguna, karena chmod 666akan memungkinkan file / folder menulis untuk semua dan eksekusi tidak ada.

kokbira
sumber
5
Hanya itu "oktal", bukan "desimal". Tetap memberi +1.
Ben Voigt
1
Poin ketiga yang disebutkan dalam posting pertama salah - chmod 711 hanya mengizinkan pemilik untuk melakukan semua tindakan, grup dan lainnya hanya diizinkan untuk membaca! [Masukkan deskripsi gambar di sini] [1] Ini adalah tabel untuk rwx untuk oktal rwx 000 001 010 011 100 101 110 111 Oktal 001, atau 1 menunjukkan eksekusi ijin 7 Okt, 111 menunjukkan baca tulis dan jalankan izin maka 711 menunjukkan, rwx untuk pemilik, dan x untuk grup dan lain-lain.
3
Itu hanya pergi ke 7, jadi tidak ada perbedaan antara oktal dan desimal dalam kasus ini. : /
Rob
ya, @Yash, dan setelah 1 tahun, 2 bulan dan 18 hari setelah posting asli seseorang melihat kesalahan itu :) Saya akan memperbaikinya menjadi 744 sebagai contoh.
kokbira
1
@KyleVassella, owneradalah pemilik file atau folder, umumnya yang membuatnya. groupadalah grup pengguna yang terkait dengan file atau folder itu, umumnya grup yang pemiliknya masuki. Jadi bayangkan saya rootbira dan groop saya adalah pengguna root dan Anda juga ada di grup itu, dan semua anggota forum SU lainnya ada di grup lain. Jika saya membuat file dan melakukan dengan chmod 750, saya akan membaca, menulis, dan mengeksekusinya, Anda hanya akan membaca dan mengeksekusi dan pengguna SU tidak akan melakukan apa pun - itu adalah rahasia kami
kokbira
7

Dalam pembicaraan yang sangat sederhana: ini membuat file dapat dibaca dan ditulis oleh pemilik file, grup pemilik file dan setiap orang lainnya menggunakan mesin (semua). Diterapkan pada direktori, ini memungkinkan semua orang membaca (mendapatkan daftar isi file) dari sebuah direktori dan menulis (membuat, mengedit file dalam direktori) tetapi tidak mengeksekusi file dari direktori.

Untuk informasi lebih rinci tentang cara chmodkerjanya, lihat tutorial praktis ini .

Ian C.
sumber
2
... Bukankah maksud Anda membiarkan semua orang membaca / menulis file tetapi tidak mengeksekusi, dan mari semua orang membaca / menulis file dalam direktori, tetapi tidak mencantumkan semua file?
Earlz
2
apa yang dikatakan @earlz, ditambah menulis di direktori tidak berarti Anda dapat mengedit file di sana (menulis izin pada file), tetapi semata-mata berarti Anda dapat membuat entri baru (direktori, file, symlink, dll.). Juga, senang Anda menyebutkan dir untuk kelengkapan, tetapi 666 tidak masuk akal untuk dir; Anda tidak akan pernah menghilangkan x untuk pemilik.
Rich Homolka
1
@ Elarlz: terima kasih untuk itu. Saya selalu lupa apa yang dilakukan 666 untuk dirs karena, well, saya tidak pernah mengatur rw- untuk seorang pengguna pada sebuah dir. :)
Ian C.
7

Seperti disebutkan dalam jawaban lain, chmod berarti mengubah mode. Ini memengaruhi izin baca, tulis, dan yang dapat dieksekusi untuk pemilik, grup, dan kategori pengguna lainnya. Angka-angka yang mengikuti perintah (dalam hal ini 666), menunjukkan bagaimana izin tersebut dimodifikasi untuk file yang menjalankan perintah (untuk 666, itu berarti bahwa pemilik, grup dan lainnya memiliki izin baca dan tulis, tetapi tidak ada izin yang dapat dieksekusi) .

Dengan mengubah angka menjadi nilai yang berbeda, Anda secara efektif mengubah izin untuk file tersebut. Tautan yang saya referensikan di atas memiliki sedikit alat untuk mengetahui nilai apa yang perlu Anda masukkan untuk mendapatkan skema izin yang Anda cari. Ini juga membahas opsi sakelar yang tersedia untuk perintah dan beberapa contoh untuk membantu Anda memahami lebih baik cara kerjanya.

MaQleod
sumber
1
Itu adalah situs yang bagus. Itu terjadi di bookmark saya. Terima kasih!
Kirk
5

Perintah chmod (disingkat dari mode perubahan) adalah perintah Unix yang memungkinkan operator memberi tahu sistem berapa banyak (atau sedikit) akses yang harus diizinkan ke suatu file. Perintah chmod 666berarti bahwa semua pengguna akan memiliki izin baca dan tulis.

Seno
sumber
2

Jika pertanyaan Anda lebih tentang bagian 666 daripada bagian chmod, saya akan merujuk Anda ke Proyek Dokumentasi Linux di mana ada penjelasan yang layak tentang bagaimana izin file bekerja di Linux.

Gereja
sumber