setguid
Burada işte 2 güç var. Birincisi, klasörde etkinleştirilen setgid bitidir folder
.
drwxr-s---. user group folder
Bu s
satırın başındaki karakter paketinin içinde. Bu şekilde gruplandırılırlar:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
r-s
Bu klasör içinde oluşturulan tüm dosya ve dizinlerin grup olacaktır araçları otomatik olarak gruba ayarlı group
.
Dosyalara neden olan foo.txt
ve bar.txt
bu şekilde yaratılacak şey budur:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
izinler ve umask
Gördüğünüz izinler başka bir konudur. Bunlar sizin ayarlarınız tarafından yönetilir umask
. umask
Komutunuzla nelerin ayarlandığını görebilirsiniz umask
:
$ umask
0002
NOT: bu bitlere "mod" bitleri de denir.
Bu bir maskedir, bu nedenle etkinleştirilen izinlerle ilgili bitlerden herhangi birini devre dışı bırakır. Bu örnekte istediğim tek bit, diğerleri için yazma izinleridir.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
Bu komuttaki "bitlerin" temsili ondalık biçimdedir. Yani 2, yazma biti olan ikili biçimde 010'a eşittir. 4 (100), okumanın devre dışı bırakılmasını istediğiniz anlamına gelir. 7 (111), tüm devre dışı okuma / yazma / yürütme istediğiniz anlamına gelir. Buradan inşa et:
$ umask 007
Diğer kullanıcılar için okuma / yazma / yürütme bitlerini devre dışı bırakır.
Peki dosyalarınız ne olacak?
Eh umask
yeni bir dosya oluşturulduğunda set alacak izinleri yönetir. Eğer şu umask
seti alsaydık:
$ umask 007
Ve yeni dosyalara dokunmaya başladığımızda, bu şekilde oluşturulduğunu görürüz:
$ 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
Başka bir şeyle değiştirirsek, şunu söyleyin:
$ 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
Yine de oluşturduğumuz dosyalar üzerinde herhangi bir etkisi olmayacaktır. Buraya bakın:
$ 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
Peki dosya tarayıcısında neler oluyor?
umask
Ben bir "yumuşak" ayarı aramıştım şeydir. Hiçbir şekilde mutlak değildir ve Unix'te çeşitli şekillerde kolayca geçirilebilir. Araçların çoğu, izinleri işlemlerinin bir parçası olarak belirtmenize izin veren anahtarlar alır.
Al mkdir
örneğin:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
-m
Anahtar ile geçersiz kılabiliriz umask
. touch
Yaratıcı bir çalışma yapmak zorunda komut bu tesis bulunmamaktadır. Şu U&L Soru ve Cevap başlıklı makaleye bakın: Komut satırında ayarlanmış izinlerle dosyalar oluşturulabilir mi? sadece bu tür yöntemler için.
Başka yollar? Sadece geçersiz kıl umask
. Dosya tarayıcısı büyük olasılıkla bunu yapıyor veya umask
yapmak için yapılandırılmış izinleri kullanarak dosyayı tamamen görmezden geliyor ve bırakıyor.