Apa perbedaan antara chmod u+x
dan adil chmod +x
? Saya telah melihat banyak tutorial yang mengatakan digunakan u+x
untuk membuat skrip dapat dieksekusi. Namun, menghilangkan u
itu tampaknya tidak berpengaruh.
sumber
Apa perbedaan antara chmod u+x
dan adil chmod +x
? Saya telah melihat banyak tutorial yang mengatakan digunakan u+x
untuk membuat skrip dapat dieksekusi. Namun, menghilangkan u
itu tampaknya tidak berpengaruh.
Halaman manual chmod
sampul itu.
Itu berarti bahwa chmod u+x somefile
hanya akan memberikan pemilik izin eksekusi file chmod +x somefile
yang sama dengan chmod a+x somefile
.
Halaman manual chmod mengatakan:
Format mode simbolik adalah
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Beberapa operasi simbolik dapat diberikan, dipisahkan dengan koma.Kombinasi huruf 'ugoa' mengontrol mana akses pengguna ke file akan diubah: pengguna yang memilikinya (u), pengguna lain dalam grup file (g), pengguna lain yang tidak dalam grup file (o), atau semua pengguna (a). Jika tidak ada yang diberikan, efeknya adalah seolah-olah 'a' diberikan, tetapi bit yang diatur dalam umask tidak terpengaruh.
chmod +x file
berbeda darichmod a+x file
- lihat jawaban Ravexina untuk detailnya.Cukup melakukan
+x
akan menerapkannya pada semua flag: [u] ser, [g] roup, [o] thers.Ketikkan
man chmod
untuk informasi lebih lanjut.sumber
Persyaratan
Pertama-tama saya sarankan Anda untuk membaca pertanyaan-pertanyaan ini dan jawaban yang terhubung di bawah ini:
Ini membantu Anda memahami semua bagian yang perlu Anda ketahui.
Versi pendek
chmod +x
sama denganchmod ugo+x
(Berdasarkanumask
nilai)chmod a+x
sama denganchmod ugo+x
(Tanpa mempertimbangkanumask
nilai)Penjelasan
Hasilnya
chmod a+x
adalah mengatur bit yang dapat dieksekusi untuk semua orang (Pemilik, Grup, Lainnya), mudah bukan?Namun dengan
chmod +x
itu sedikit rumit, ia mengatakanumask
nilai pakai dan berdasarkan nilai itu tambahkanx
ke semua orang yang diizinkan.Jadi jika
umask
lingkungan saya adalah0002
:Ini akan menambah
x
pengguna (pemilik), grup, dan lainnya, dalam situasi ini (yang merupakan situasi default untuk sebagian besar sistem) persis sepertichmod ugo+x
atau sama denganchmod a+x
, atau dalam bentuk yang lebih bertele-tele:Bisakah Anda melihat hubungan antara
chmod u+x,g+x,o+x
dan outputumask -S
?Sekarang mari kita ubah
umask
shell yang sekarang menjadi0003
:Seperti yang Anda lihat sekarang, hanya pemilik dan grup yang akan mendapatkan bit yang dapat dieksekusi dan bukan yang lain. Artinya
chmod +x
sekarang sama denganchmod u+x,g+x
atauchmod ug+x
.Waktu bertanya!
Apa yang terjadi jika saya menjalankan
chmod +w
pada file setelah pengaturanumask
ke0003
?Sama seperti sebelumnya, itu hanya mempengaruhi
user
dangroup
dari file karena 3 juga menghilangkan izin menulis (2).Bonus
Ini memiliki efek yang sama ketika Anda menghapus sedikit seperti
chmod -w
:sumber
chmod u+x
akan membuat file dapat dieksekusi untuk pengguna Anda (itu hanya akan menambahkannya untuk pengguna Anda, meskipun mungkin sudah dapat dieksekusi oleh pemilik grup, atau "lainnya").chmod +x
atauchmod a+x
('semua plus bit yang dapat dieksekusi') membuat file dapat dieksekusi oleh semua orang.Jika Anda melakukan ini ke direktori, itu membuat direktori dapat dicari. Yaitu, Anda dapat membuat daftar isi direktori yang Anda memiliki izin + x.
sumber
chmod u+x file
berarti menambahkan bit yang dapat dieksekusi ke pemilik file sambil mengabaikanumask
(mod Anda akan ditetapkan, tidak ada pertanyaan).chmod +x file
berarti menambahkan bit yang dapat dieksekusi ke pemilik, grup dan yang lain sambil mempertimbangkanumask
(Pertama periksa denganumask
kemudian menerapkan mod, mungkin memiliki efek yang berbeda berdasarkan nilai umask).mari kita buat dua file:
Sekarang saya mengatur
umask
untuk "111" untuk menghapus bit executable:umask 111
.Seperti yang Anda lihat
chmod
diabaikanumask
dan file1 mendapat bit executable untuk pemiliknya tetapi yang kedua tidak melakukan apa-apa karena mempertimbangkan nilai umask.sumber