Ketika datang untuk membuat file yang dapat dieksekusi apa perbedaan antara chmod 755
dan chmod +x
dan kapan saya akan menggunakan yang mana? Saya sejauh ini hanya menggunakan chmod +x
dan saya hanya membaca sesuatu dan itu digunakan chmod 755
dan saya tidak bisa mengatakan apakah itu lebih baik digunakan chmod 755
atau tidak chmod +x
.
command-line
permissions
chmod
Darth4212
sumber
sumber
chmod +x
menyetel semua flag yang dapat dieksekusi tanpa mengubah izin lainnya.chmod 755
set rwxr-xr-xJawaban:
Versi pendek:
Untuk dapat membandingkannya, kita harus melihatnya dari perspektif yang sama, jadi:
chmod +x
sama denganchmod ugo+x
(Berdasarkanumask
nilai)chmod 755
adalah sama denganchmod u=rwx,go=rx
Penjelasan:
Pertama, Anda harus tahu bahwa:
+
berarti menambahkan izin ini ke izin lain yang sudah dimiliki file.=
berarti mengabaikan semua izin, atur persis seperti yang saya berikan.baca = 4, tulis = 2, jalankan = 1
Berikut adalah logika biner di baliknya (jika Anda tertarik):
Menggunakan
+x
Anda mengatakan untuk menambahkan (+
) bit yang dapat dieksekusi (x
) ke pemilik, grup dan lain-lain.ugo+x
atauu+x,g+x,o+x
x
itu akan mempertimbangkan semuanya. Dan seperti yang ditunjukkan oleh @Rinzwind, ini berdasarkan padaumask
nilai, itu menambahkan bit ke yangumask
memungkinkan. ingat jika Anda menentukan target sepertio+r
ituumask
tidak memiliki efek apa pun lagi.u+x
untuk hanya menambahkan bit yang dapat dieksekusi ke pemilik.Menggunakan
755
Anda menentukan:u=rwx
(4 + 2 + 1 untuk pemilik)g=rx
(4 +1 untuk grup)o=rx
(4 +1 untuk orang lain)Begitu
chmod 755
juga seperti:chmod u=rwx,g=rx,o=rx
atauchmod u=rwx,go=rx
.sumber
chmod 755
Anda mengatur bit-bit DAN Anda juga menghapus semua bit suid / sgid / sticky (yang mungkin ada di sana) (untuk contoh: TIDAK PERNAHchmod 755 /tmp
). 755 harus selalu dianggap sebagai 0755, yaitu himpunan bit oktal pertama juga diatur ke 0.chmod +x
menambahkan izin eksekusi untuk semua pengguna ke izin yang ada.chmod 755
menetapkan755
izin untuk file.755
berarti izin penuh untuk pemilik dan membaca dan mengeksekusi izin untuk orang lain.sumber
Cara lain untuk melihatnya (yang menurut saya lebih mudah dipahami)
chmod +x
adalah dengan mengatur izin secara relatif , sedangkanchmod 755
mengaturnya secara absolut .Setelah
chmod 755
dijalankan pada file, izinnya akan menjadi 755, ataurwxr-xr-x
.chmod +x
hanya akan mengambil izin yang ada, dan menambahkan izin eksekusi ke file.sumber
Saya sarankan meninjau halaman manual chmod untuk detail lengkap. Anda hanya melihat dua mode operasi berbeda yang tersedia dengan perintah chmod untuk menyelesaikan tugas yang sama untuk mengubah izin.
Mode oktal menggunakan angka dan menetapkan seluruh izin file. Mode karakter menggunakan huruf-huruf dan umumnya digunakan untuk hanya mengubah izin yang ada.
chmod 755
setrwxr-xr-x
sementarachmod +x
menyesuaikan izin sehingga pemilik, grup, dan dunia semua memiliki izin yang dapat dieksekusi ditambahkan. Dengan asumsi izin file defaultrwxr--r--
akan menyesuaikannya dengan izin yang sama seperti 755 darirwxr-xr-x
.sumber
Perbedaannya adalah hak akses yang diatur dan mode mana yang Anda gunakan untuk mengaturnya.
Dengan
chmod +x
Anda mengatur bit yang dapat dieksekusi untuk semua - pemilik, grup pemilik, dan pengguna lain. Ini dikenal sebagai mode simbolik. Mengutipman chmod
:Dengan
chmod 755
Anda menggunakan angka oktal, representasi biner yang digunakan untuk mengatur bit izin tertentu. Pertama (kiri) 3 bit sesuai dengan izin pemilik, 3 tengah ke izin grup, dan terakhir (paling kanan) sesuai dengan izin semua pengguna lain. Urutan bit selalu sama,read,write,execute
ataurwx
Dengan demikian, tepat karena urutannya sama, nomor individual ketika dikonversi ke representasi biner, akan menetapkan bit izin yang bit posisional terkait dalam angka adalah 1 dan tidak mengatur yang bit 0 Secara khusus:7
adalah 111 dalam biner, jadi Anda mengatur semua membaca, menulis, dan mengeksekusi bit untuk pemilik;rwx
diatur.5
adalah 101 dalam biner, jadi Anda mengatur baca dan eksekusi tetapi menonaktifkan bit tulis, dan karena 5 untuk grup dan pengguna lain, kedua kategori tersebut akan memiliki izin yang sama. Dengan demikianr-x
diatur.Ini demo kecilnya:
sumber
Satu perbedaan penting adalah bahwa chmod + tunduk pada batasan umask, dan chmod <octal> tidak.
Perhatikan contoh berikut:
Jadi, jika Anda ingin membuat perubahan delta untuk izin dengan cara yang sesuai dengan pengaturan umask Anda, gunakan sintaks '+'. Tetapi jika Anda ingin menyetelnya secara absolut tanpa memperhatikan umask, gunakan format <octal>, dan sadar Anda harus menentukan semua bit dan bukan hanya delta.
sumber
Selain jawaban yang indah ini saya ingin menyebutkan perbedaan kecil tapi mungkin penting. Perintah
chmod 755 file
ini setara denganchmod 0755 file
. Jika kita menjalankan perintah ini pada file yang memiliki set-bit SETUID atau SETGID, itu akan menghapus bit SETUID / SETGID.chmod +x file
akan membiarkan bit SETUID / SETGID tidak tersentuh. Kita bisa melihat ini dalam contoh berikut:sumber