Secara tidak sengaja saya berlari chmod -u filename
dan menghapus semua izin yang saya miliki filename
.
Halaman manual tidak merujuk -u
opsi. Bereksperimen saya dapat menyimpulkan bahwa itu menghapus tidak semua izin, tetapi hanya membaca dan mengeksekusi akses, meninggalkan akses tulis yang utuh.
Jadi apa tepatnya yang dilakukan?
Kesimpulan saya di atas salah, saya sekarang berpikir bahwa yang dilakukannya adalah menghapus izin yang dimiliki pemilik, dari semua kategori.
Saya pikir perilaku analog dengan a=u
, hanya itu -
bukan =
dan a
dapat dijatuhkan hanya karena dapat dengan, misalnya, a+x
.
permissions
chmod
y_wc
sumber
sumber
[ugoa...][[-+=][perms...]...]
, di manaperms
nol atau lebih huruf dari setrwxXst
, atau satu huruf dari setugo
" (halaman manual GNU chmod); POSIX cukup tidak jelas, tetapi mendefinisikan produksi "permcopy" untuk efek yang sama.u
), izin yang diberikan kepada pengguna lain yang merupakan anggota grup file (g
) , dan izin yang diberikan kepada pengguna yang tidak satu pun dari dua kategori sebelumnya (o
). "u
, saya akan menentukan izin yang diberikan kepada pengguna yang memiliki file. Tapi itu tidak mengatakan apa yang dilakukannya. Apa yang dimaksud dengan even even?Jawaban:
Ini bukan opsi, tetapi cara standar (tetapi tidak umum) untuk menentukan izin. Ini berarti untuk menghapus (
-
) izin terkait dengan pemilik file (u
), untuk semua pengguna (tidak ada sebelumnyau
,g
atauo
). Ini adalah didokumentasikan di halaman manual.Halaman manual GNU chmod mendokumentasikan ini sebagai:
dan kemudian
Jadi
-u
berarti menghapus (-
) izin apa pun yang saat ini diaktifkan untuk pemilik (u
) untuk semua orang (setara dengana-u
, kecuali menghormati umask saat ini). Meskipun itu tidak sering akan sangat berguna, analogchmod +u
kadang-kadang akan, untuk menyalin izin dari pemilik kepada orang lain saat beroperasi secara rekursif, misalnya.Ini juga didokumentasikan dalam POSIX , tetapi lebih jelas didefinisikan: spesifikasi izin secara luas
who[+-=]perms
(atau angka), dan efeknya ditentukan lebih lanjut:lalu
sumber
perms
bisau
, yang saya dapatkan. Ya,u
menentukan izin atau pemiliknya. Tetapi bagaimana cara mengikuti yang-u
menghapus izin pemilik (modulusumask
) dari semua pengguna?-
selalu dilakukan: menghapus izin yang ditentukan dari kelas pengguna yang ditentukan.-u
persis analog dengan-w
atau (lebih dekat) keugo-u
.chmod
pertanyaan dokumentasi lain ? Beri tahu saya jika menurut Anda ini layak untuk pertanyaan terpisah. "dan = menyebabkan mereka ditambahkan dan menyebabkan bit yang tidak disebutkan harus dihapus kecuali bahwa bit ID pengguna dan grup yang tidak disebutkan direktori tidak terpengaruh." Ini, bagi saya, mengatakan bahwa, diberikan direktori yang pemiliknya hanya memiliki akses tulis,chmod u=rx directory
akan meninggalkan izin pemilik sebagairwx
. Tapi bukan itu yang terjadi, malah mereka menjadi yang diharapkanr-x
. Apakah saya salah menafsirkan sesuatu?s
bit setuid / setgid ( ) dibiarkan sendiri jika Anda tidak menyebutkannya, dan hal lain yang tidak Anda tentukan dihapus.Jawabannya sedikit mirip dengan /unix//a/429424/255251 .
tidak menghapus semua izin, tetapi mempertimbangkan
umask
nilai.Sekarang ubah nilai umask
sumber