Saya menyadari bahwa izin untuk file dan direktori baru berperilaku agak aneh. Pertama-tama, umask tampaknya mengembalikan jawaban yang benar:
$ umask
0002
Ini berarti akses penuh untuk pengguna saya dan grup saya, tidak ada akses tulis untuk seluruh dunia, tidak ada suid. Tetapi jika saya membuat file di $ HOME saya, beginilah tampilannya:
$ ls -l testfile
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile
yaitu, memberikan akses tulis kepada semua orang. Hal yang sama terjadi dengan direktori:
$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir
Saya pikir ini sama dengan memiliki umask 0000, bukan 0002. Saya telah mencari semua / etc untuk beberapa contoh umask yang mengubah standar 0002 atau 0022, tetapi tidak menemukannya. Ini adalah instalasi standar CentOS 5.5. Ada petunjuk mengapa ini terjadi?
testfile
dantestdir
?Jawaban:
Saya tidak tahu apakah pantas untuk menjawab pertanyaan saya sendiri. Editor, tolong, beri saran tentang ini jika ini bukan masalahnya. Terima kasih sebelumnya.
Saya pikir saya telah memecahkan misteri ini: masalahnya adalah kurangnya ACL default pada volume XFS. Inilah entri ACL untuk / srv / backup, salah satu direktori yang terpengaruh:
Setiap kali saya melakukan "mkdir test" atau "touch testfile", itu akan muncul dengan izin 777. Jadi saya melakukan ini:
Membiarkan ACL seperti ini:
Sebelumnya ada (seharusnya) tidak ada ACL, tapi sekarang ada. Saya bisa melihat tanda "+" terlampir pada izin ketika saya melakukan "ls-l". Dan secara ajaib, sekarang "uji mkdir" dan "sentuh testfile" berfungsi dengan izin yang diharapkan:
Saya tidak tahu mengapa ini terjadi. Saya kira XFS tidak suka tidak memiliki ACL default, dan berperilaku aneh ketika itu terjadi. Juga, saya telah melihat ini terjadi hanya di CentOS, bukan di Debian / Ubuntu. Mungkin itu terkait dengan versi XFS di kernel, atau sesuatu seperti itu. Tidak ada ide.
Bagaimanapun, itu menyelesaikan kasus untuk saya. Terima kasih banyak atas semua sarannya :-)
sumber
Panggilan creat dapat secara eksplisit menentukan izin yang lebih diutamakan daripada umask.
Anda belum menjawab bagaimana Anda membuat
testfile,testdir
.Buat file menggunakan
touch testfile
, lalu daftarkan dan posting izinsumber
Coba
getfacl .
di direktori yang Anda buat file pengujian Anda, untuk melihat apakah ada acl default yang memengaruhi izin.sumber
Lihat saja variabel USERGROUPS_ENAB di /etc/login.defs
Mereka berkomentar untuk menonaktifkannya # USERGROUPS_ENAB ya
Jika Anda juga ingin mengubah umask pengguna Anda saat ini, Anda harus terlebih dahulu melakukan prosedur sebelumnya dan mereka melakukan yang berikut.
contoh untuk 027
echo "umask 027" >> ~ / .bashrc && pkill -KILL -u your_username_here
echo "umask 027" >> ~ / .bashrc perintah ini akan menetapkan nilai default umask untuk profil Anda
ini akan memaksa Anda untuk keluar
setelah login lagi
jalankan saja perintah umask lagi dan lihat apakah itu berhasil untuk Anda
sumber