Saya ingin memberikan 755 izin ke direktori, jadi saya menggunakan:
# chmod -R 755 /my/folder/
Ini berfungsi untuk semua file di dalam folder saya, tetapi masalahnya adalah saya menggunakan skrip yang membuat file baru di folder ini, dan secara default izinnya adalah 600.
Bagaimana saya bisa memaksakan, 755 izin pada file 'masa depan' ini?
--EDIT--
Saya menggunakan skrip yang memberi saya info tentang lalu lintas jaringan di kampus saya. Saya memiliki file baru setiap 10 menit, terletak di folder bernama perjalanan, terletak di folder bulan seperti ini:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
Di sini saya mengubah izin dengan tangan tetapi ketika file baru muncul, saya punya ini:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
Masalahnya adalah bahwa untuk setiap folder dan file di bawah / home / netmet / secure / Saya ingin 755 izin secara default.
Saya sudah melakukan ini:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
sumber
umask
, tetapi tidak untuk mengganti program yang membuat file dengan mode0600
menurut desain. Lihat di sini untuk beberapa referensi.umask
untuk menambahkan bit eksekusi ke file, ini perlu dilakukan dengan tangan2017-04-27
) Dan bagaimana direktori dibuat di tempat pertama? Harap perbarui pertanyaan dengan detail ini.Jawaban:
Coba jalankan
umask
di folder Anda. Jika mengembalikan apa pun selain '0022' maka ini adalah masalah Anda. Dalam kasus Anda itu harus awalnya keluaran '0177'. Sistem izin saat membuat direktori pada dasarnya dihitung:default - umask
0777 adalah mode default untuk direktori, dan 0666 untuk file biasa, tetapi ada beberapa umasks yang berbeda, jika saya memahami hal-hal ini dengan benar. Coba jalankanumask a=rx,uu+w
.EDIT: Anda dapat menggunakan umask untuk memberikan bit eksekusi ke direktori untuk dapat melakukan cd ke dalamnya, tetapi tidak untuk file. Ini harus diberikan bit eksekusi secara manual karena keamanan. Cukup tambahkan
chmod +x <file>
ke skrip Anda. Dan, jalankan flag yang ditetapkan pada file apa pun selain yang dapat dieksekusi tidak berpengaruh.sumber
umask
perintah shell tidak tergantung pada jalan, itu hanya tergantung pada pengguna menjalankannya, setiap pengguna memiliki nilai umask tertentu, pasti pada login dan yang dapat diubah nanti. Ini mendefinisikan bagaimana izin file baru dibuat.chmod a=rx,u+w
di balasan Anda.Saya kira Anda menjalankan skrip yang menghasilkan file di lingkungan di mana umask diatur ke 0077. Ini mencegah program pembangkit untuk mengatur bit izin dalam bit izin 'grup' dan 'lainnya'.
Perhatikan bahwa umask adalah bagian dari lingkungan bawaan proses apa pun dan biasanya ditetapkan dari 'profil' default saat masuk. Setiap proses (shell) dapat memodifikasi umask anak-anak mereka sendiri dan keturunan (awal) dengan perintah 'umask'.
Bit dalam umask saat ini akan mencegah pembuatan file dengan bit-bit ini diatur dalam izin mereka (karenanya "mask", menutupi bit izin yang dihasilkan)
sumber
Catatan : Ini tidak ideal dan harus dianggap sebagai solusi sementara
Anda dapat membuat pekerjaan cron yang menjalankan perintah chmod setiap 5 menit atau sesuai pilihan.
Ada juga yang tidak sah
sumber