setguid
Ada 2 kekuatan di sini di tempat kerja. Yang pertama adalah bit setgid yang diaktifkan pada folder folder
,.
drwxr-s---. user group folder
Itulah s
paket karakter di awal baris ini. Mereka dikelompokkan sebagai berikut:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
The r-s
berarti bahwa setiap file atau direktori dibuat di dalam folder ini akan memiliki kelompok otomatis diatur ke grup group
.
Itulah yang menyebabkan file foo.txt
dan bar.txt
dibuat seperti:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
izin & umask
Izin yang Anda lihat adalah masalah lain. Ini diatur oleh pengaturan untuk Anda umask
. Anda dapat melihat apa umask
yang diatur dengan perintah umask
:
$ umask
0002
CATATAN: bit-bit ini juga disebut bit "mode".
Itu topeng sehingga akan menonaktifkan bit yang terkait dengan izin yang diaktifkan. Dalam contoh ini satu-satunya bit yang saya inginkan adalah izin menulis untuk yang lain.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
Representasi "bit" dalam perintah ini dalam bentuk desimal. Jadi 2 sama dengan 010 dalam bentuk biner, yang merupakan bit tulis. A 4 (100) berarti Anda ingin membaca dinonaktifkan. A 7 (111) berarti Anda ingin membaca / menulis / mengeksekusi semua yang dinonaktifkan. Membangunnya dari sini:
$ umask 007
Akan menonaktifkan bit baca / tulis / eksekusi untuk pengguna lain.
Jadi, bagaimana dengan file Anda?
Yah umask
mengatur izin yang akan ditetapkan ketika file baru dibuat. Jadi jika kita memiliki umask
set berikut :
$ umask 007
Dan mulai menyentuh file baru, kita akan melihatnya dibuat seperti ini:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
Jika kami mengubahnya menjadi sesuatu yang lain, katakan ini:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Itu tidak akan berdampak pada file yang sudah kita buat. Lihat disini:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Jadi apa yang terjadi dengan browser file?
The umask
adalah apa yang saya menelepon pengaturan "lunak". Ini tidak berarti mutlak dan dapat dilewati dengan cukup mudah di Unix dalam beberapa cara. Banyak alat mengambil sakelar yang memungkinkan Anda menentukan izin sebagai bagian dari operasinya.
Ambil mkdir
contoh:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
Dengan -m
saklar kita dapat menimpanya umask
. The touch
perintah tidak memiliki fasilitas ini sehingga Anda harus mendapatkan kreatif. Lihat U&L Q&A ini berjudul: Dapatkah file dibuat dengan izin yang ditetapkan pada baris perintah?hanya metode seperti itu.
Cara lain? Timpa saja umask
. Peramban file kemungkinan besar melakukan ini atau hanya mengabaikan sepenuhnya umask
dan meletakkan file menggunakan izin apa pun yang dikonfigurasikan untuk melakukannya.
0002
. Jika umask memang mengatur izin alih-alih menghapus izin, maka bit eksekusi akan ditetapkan untuk pengguna dan grup saat saya melakukannyatouch
, tetapi tidak.touch
perintah. Lihat tautan yang saya sertakan pada A. tautan ini: unix.stackexchange.com/questions/47178/…