Dari dua opsi untuk mengubah izin:
chmod 777 file.txt
chmod a+rwx file.txt
Saya menulis dokumen yang merinci bahwa pengguna perlu mengubah izin file dari file tertentu. Saya ingin memerinci ini sebagai cara paling umum untuk mengubah izin file.
Saat ini dikatakan:
- Set permissions on file.txt as per the example below:
- chmod 777 /tmp/file.txt
Ini hanya contoh, dan tidak akan mengubah file untuk memiliki izin penuh untuk semua orang.
permissions
Kevdog777
sumber
sumber
775
atau755
untuk file yang dapat dieksekusi saja.chmod 777
sepertichmod a=rwx
, tidakchmod a+rwx
.777
atau666
sederhana dan jauh lebih mudah diingat daripadaugo+rwx
,a+rwx
atauugo+rw
yang sangat membingungkan karenao
ambigu dan dapat berarti bagi Anda baik pemilik atau orang lain, Anda pilih. Jadi alih-alih membuat kesalahan besar, Anda terus memeriksaman
untuk memverifikasi mana yang mana, atau hanya menggunakan angka.Jawaban:
Google memberikan:
chmod 777
sekitar 3 kali lebih populer.Yang mengatakan, saya lebih suka menggunakan opsi panjang dalam dokumentasi dan skrip, karena mereka mendokumentasikan diri. Jika Anda mengikuti instruksi Anda dengan "Jalankan
ls -l | grep file.txt
dan verifikasi izin", Anda mungkin ingin menggunakanchmod a+rwx
karena itulah cara ls akan menampilkan izin.sumber
7
artinya, dll.chmod 777
lebih populer (seperti conjetured sebelum melihat nomor Anda) hanya karena Anda mengetikkan 2 karakter lebih sedikit :)chmod 777
merupakan jalan pintas yang berguna untuk mencapai efek yang sama. Pembaca Anda akan menghargai elemen pendidikan dalam dokumentasi Anda. 777 lebih populer karena jauh lebih mudah dan lebih cepat untuk memukul 7 tiga kali, tetapi ketika pengguna baru melihat 777 untuk pertama kalinya mereka mungkin tidak tahu apa artinya sebenarnya. Itu sebabnya ini adalah pilihan yang buruk sebagai dokumentasi utama. Tapi itu pasti layak disebut sebagai tip.[Saya mengedit untuk menambahkan praktik terbaik, mengikuti saran Dotancohen dalam jawabannya. Saya harap itu tidak membuatnya kurang jelas, dan bahwa kebiasaan yang baik diambil]
Informasi tambahan penting: Mereka tidak setara.
chmod a+rwx
: atur 3 oktal terakhir menjadi 777, sehingga memastikan bahwa Pemilik, Grup dan Pengguna memiliki set "rwx". Jika ada bit tambahan di oktal pertama (setuid, setgid, dan / atau Sticky bit) itu membuat mereka tidak tersentuh. Pikirkan itu sebagai biner "atau 00777".chmod 777
: setel hak ke 00777, sehingga memastikan Pemilik, Grup dan Pengguna memiliki set "rwx", DAN TIDAK ADA LEBIH BANYAK. Itu juga memastikan bit tambahan (setuid, setgid, dan / atau bit Sticky) diatur ke 0.Jadi gunakan formulir pertama, jika Anda hanya ingin memastikan untuk memberikan akses kepada semua orang (dan tolong buat dobel, triple pastikan bahwa itu diperlukan ... itu membuka pintu untuk semua jenis masalah keamanan, beberapa di antaranya secara tak terduga melebar pada apa mereka mengizinkan pengguna jahat untuk melakukan)
Gunakan formulir 777 jika Anda juga ingin memastikan untuk mereset bit setuid / setgid / sticky, yaitu jika file harus "00777", yang mungkin lebih mungkin dalam kasus Anda (hak file diketahui, dan harus menjadi : 00777). Di sini juga, pastikan triple bahwa itu benar-benar diperlukan ...
Biasanya yang terbaik adalah menjaga akses ke pemilik (dan kadang-kadang grup): kemudian gunakan grup untuk memberikan akses ke beberapa pengguna tertentu ke file / direktori. a + rwx mudah dan biasanya cara yang salah untuk memberikan akses (tentu saja ada kasus yang sangat jarang ketika itu adalah satu-satunya cara ...)
http://en.wikipedia.org/wiki/Chmod adalah bacaan yang baik karena menjelaskan apa yang diwakili setiap angka atau huruf (termasuk setuid / setgid / sticky)
sumber
others
izin? Jika Anda masuk ke mesin sebagai pengguna, maka tentunya Anda bisa menggunakanusers
izin?chmod 777
sepertichmod a=rwx
.Saya biasanya berpikir tentang perbedaannya adalah bahwa menetapkan izin ke 0777 secara eksplisit menetapkannya ke 0777. Seperti yang disebutkan sebelumnya, 0 yang terkemuka akan disimpulkan jika Anda hanya mengetikkan 777. Sedangkan a + rwx menambahkan baca / tulis / jalankan meninggalkan setuid / sticky sedikit tidak tersentuh.
Misalkan Anda hanya ingin memastikan bahwa file dapat dieksekusi, Anda dapat menggunakan + x sehingga Anda dapat memodifikasi hak eksekusi tanpa khawatir atau memodifikasi izin lainnya. Jika Anda menggunakan representasi oktal, Anda perlu mengetahui izin apa yang saat ini diatur untuk memastikan bahwa Anda tidak mengubah izin dengan cara lain selain yang Anda inginkan.
sumber
Saya akan mengatakan bahwa memberikan nilai numerik jauh lebih umum di "panduan orang sederhana" seperti yang diproduksi untuk pengguna web hosting murah. Namun, berhati-hatilah untuk menetapkannya sebagai nilai oktal , bukan desimal,:
$ chmod 0777 some_dir
Catatan terkemuka
0
di0777
. Meskipun Bash dan lingkungan CLI lainnya melakukan hal yang benar dengan menggunakan unpadded777
, banyak bahasa pemrograman seperti PHP dan Perl memiliki fungsi serupa yang memang membutuhkan yang terdepan0
. Jadi saya merekomendasikan penggunaannya di Bash juga, untuk mengingat bahwa itu seharusnya ada di sana.Catatan untuk downvoters: Seperti yang diklarifikasi dalam komentar,
chmod
perintah sebenarnya tahu untuk lulus direktif sebagai oktal bahkan jika notasi desimal ditentukan. Namun, tidak semua lingkungan mendukung hal ini, sehingga merupakan praktik terbaik untuk membiasakan menetapkannya secara eksplisit.sumber
chmod
tidak pernah memperlakukan angka sebagai desimal.chmod 777 file
danchmod 0777 file
sepenuhnya setara.chmod
perintah shell; Anda bisa menganggap ketiga digit itu independen satu sama lain, masing-masing memberi tahu Anda satu set izin.chmod 77
sama denganchmod 077
.chmod
perintah menafsirkan argumen modus dalam oktal. Anda perlu memperhatikan jika Anda menggunakan sebagian besar bahasa pemrograman (C, Perl, ...), tetapi dalam skrip shell itu oktal untukchmod
.