Apa perbedaan antara chmod u+xdan adil chmod +x? Saya telah melihat banyak tutorial yang mengatakan digunakan u+xuntuk membuat skrip dapat dieksekusi. Namun, menghilangkan uitu tampaknya tidak berpengaruh.
Apa perbedaan antara chmod u+xdan adil chmod +x? Saya telah melihat banyak tutorial yang mengatakan digunakan u+xuntuk membuat skrip dapat dieksekusi. Namun, menghilangkan uitu tampaknya tidak berpengaruh.
Jawaban:
Halaman manual chmodsampul itu.
Itu berarti bahwa chmod u+x somefilehanya akan memberikan pemilik izin eksekusi file chmod +x somefileyang 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 fileberbeda dari chmod a+x file- lihat jawaban Ravexina untuk detailnya.
Cukup melakukan +xakan menerapkannya pada semua flag: [u] ser, [g] roup, [o] thers.
Ketikkan man chmoduntuk informasi lebih lanjut.
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.
chmod +xsama dengan chmod ugo+x(Berdasarkan umasknilai)chmod a+xsama dengan chmod ugo+x(Tanpa mempertimbangkan umasknilai)Hasilnya chmod a+xadalah mengatur bit yang dapat dieksekusi untuk semua orang (Pemilik, Grup, Lainnya), mudah bukan?
Namun dengan chmod +xitu sedikit rumit, ia mengatakan umasknilai pakai dan berdasarkan nilai itu tambahkan xke semua orang yang diizinkan.
Jadi jika umasklingkungan saya adalah 0002:
$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
Ini akan menambah xpengguna (pemilik), grup, dan lainnya, dalam situasi ini (yang merupakan situasi default untuk sebagian besar sistem) persis seperti chmod ugo+xatau sama dengan chmod a+x, atau dalam bentuk yang lebih bertele-tele:
chmod u+x,g+x,o+x
Bisakah Anda melihat hubungan antara chmod u+x,g+x,o+xdan output umask -S?
Sekarang mari kita ubah umaskshell yang sekarang menjadi 0003:
$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r
Seperti yang Anda lihat sekarang, hanya pemilik dan grup yang akan mendapatkan bit yang dapat dieksekusi dan bukan yang lain. Artinya chmod +xsekarang sama dengan chmod u+x,g+xatau chmod ug+x.
Apa yang terjadi jika saya menjalankan chmod +wpada file setelah pengaturan umaskke 0003?
Sama seperti sebelumnya, itu hanya mempengaruhi userdan groupdari file karena 3 juga menghilangkan izin menulis (2).
Ini memiliki efek yang sama ketika Anda menghapus sedikit seperti chmod -w:
$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx
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 +xatau chmod 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.
chmod u+x fileberarti menambahkan bit yang dapat dieksekusi ke pemilik file sambil mengabaikan umask(mod Anda akan ditetapkan, tidak ada pertanyaan).
chmod +x fileberarti menambahkan bit yang dapat dieksekusi ke pemilik, grup dan yang lain sambil mempertimbangkan umask(Pertama periksa dengan umaskkemudian menerapkan mod, mungkin memiliki efek yang berbeda berdasarkan nilai umask).
mari kita buat dua file:
$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file2
Sekarang saya mengatur umaskuntuk "111" untuk menghapus bit executable: umask 111.
$ chmod u+x file1
$ chmod +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file2
Seperti yang Anda lihat chmoddiabaikan umaskdan file1 mendapat bit executable untuk pemiliknya tetapi yang kedua tidak melakukan apa-apa karena mempertimbangkan nilai umask.