Cara mengatur izin file dengan perintah sentuh

16

Tampaknya setiap kali saya membuat file dengan touchizin diatur ke: -rw-r - r-- .

Apakah ada cara saya dapat mengkonfigurasi izin dengan touchatau apakah ini harus dilakukan setelah dengan perintah yang berbeda?

chackerian
sumber

Jawaban:

27

Anda dapat memodifikasi Anda umaskuntuk mengizinkan (untuk sebagian besar implementasi) lebih banyak hak baca / tulis, tetapi tidak dapat dieksekusi, karena umumnya izin yang diminta adalah 0666.

Jika Anda umaskadalah 022, Anda akan melihat touchmembuat 0644berkas.

Menariknya, POSIX menjelaskan perilaku ini dalam hal creat:

  1. Jika file tidak ada:

    Fungsi creat () dipanggil dengan argumen berikut:

    • Operan file digunakan sebagai argumen path.

    • Nilai dari bitwise-inclusive OR dari S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, dan S_IWOTHdigunakan sebagai argumen modus.

dan hanya dengan mengikuti tautan ke creat, lalu ke open, memperhatikan penyebutan umaskdan pelacakan-kembali ke open(dan creat) untuk memverifikasi yang umaskseharusnya memengaruhi touch.

Untuk umaskhanya memengaruhi touchperintah, gunakan subkulit:

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(perhatikan bahwa bagaimanapun juga, jika file tersebut ada sebelumnya, touchtidak akan mengubah izinnya, cukup perbarui stempel waktunya).

Thomas Dickey
sumber
2

Anda dapat memanipulasi umask. Secara umum diatur ke 022yang berarti ketika pengguna membuat file, itu akan mendapatkan izin 0644, Anda dapat memanipulasi umasksesuai dengan kebutuhan Anda.

TarunSinghal
sumber