setguid
Burada işte 2 güç var. Birincisi, klasörde etkinleştirilen setgid bitidir folder.
drwxr-s---. user group folder
Bu ssatı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-sBu 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.txtve bar.txtbu ş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. umaskKomutunuzla 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 umaskyeni bir dosya oluşturulduğunda set alacak izinleri yönetir. Eğer şu umaskseti 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?
umaskBen 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
-mAnahtar ile geçersiz kılabiliriz umask. touchYaratı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 umaskyapmak için yapılandırılmış izinleri kullanarak dosyayı tamamen görmezden geliyor ve bırakıyor.