Izin pada File:

9

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   
klaypez
sumber
3
ACL adalah jawabannya. Ini telah dibahas sebelumnya.
d3ag0s
8
ACL adalah jawaban untuk mengganti umask, tetapi tidak untuk mengganti program yang membuat file dengan mode 0600menurut desain. Lihat di sini untuk beberapa referensi.
ilkkachu
1
Dan satu detail lagi: secara default Anda tidak dapat menggunakan umaskuntuk menambahkan bit eksekusi ke file, ini perlu dilakukan dengan tangan
Romeo Ninov
umask tidak berfungsi
kawan
Bisakah Anda mengedit skrip yang Anda gunakan untuk membuat file? Bagaimana file masuk ke direktori final (mis. 2017-04-27) Dan bagaimana direktori dibuat di tempat pertama? Harap perbarui pertanyaan dengan detail ini.
Tigger

Jawaban:

1

Coba jalankan umaskdi 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 - umask0777 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 jalankan umask 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.

Enginecrafter77
sumber
1
The umaskperintah 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.
Patrick Mevzek
Itu seharusnya ada chmod a=rx,u+wdi balasan Anda.
Patrick Mevzek
1

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)

TheMadsen
sumber
0

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

Guthrie
sumber