Nfs setattr'ın çalışması için mod değerlerinin 777'den 0777'ye değiştiği bir kod değişikliği gördüm. 2 değerdeki fark nedir?
mkdir(). 0777 vs 777
Nfs setattr'ın çalışması için mod değerlerinin 777'den 0777'ye değiştiği bir kod değişikliği gördüm. 2 değerdeki fark nedir?
mkdir(). 0777 vs 777
Yanıtlar:
Onları chmod(komut satırı programı) geçiriyorsanız , fark yoktur. Fakat bir C programında veya benzeri bir durumda, 0777sekizinci (üç 1 bitlik üç set, yani niyetimiz var), 777ondalık ise ve oldukça farklı bir bit kalıbı. ( chmodherhangi bir sayısal argümanı sekizlik olarak yorumlayacaktır, dolayısıyla baştaki sıfır gerekli değildir.)
0777 (sekizlik) == ikili 0b 111 111 111 == izinler rwxrwxrwx (== ondalık 511)
777 (ondalık) == ikili 0b 1 100 001 001== izinler sr----x--x(== sekizlik 1411)
chmodkomuta verdiğiniz değer her zaman sekizlik olarak yorumlanır. Kullanarak chmod 888bir hata verecektir.
chmodsayısal bir argümanı önek ne olursa olsun, sekizlik olarak yorumlar. (Ama gerçekte sayının hiçbir işlevi yoktur; sadece rakamlar veya daha doğrusu bitler.)
1777istiyorsanız, yazmanız 01777mı gerekiyor ?
1777, 01777C ile yazılmıştır (Veya 1023ondalık sayıdaki aynı sayı olan yazabilirsiniz . Fakat :-)
İlk bit yapışkan bit için kullanılır http://en.wikipedia.org/wiki/Sticky_bit
4 basamak kullanarak izin verirseniz, ilk önce bu bit ayarlanır veya kaldırılır.
İlginç cevap:
0700ve arasında bir fark yoktur.70000700ve 0700(dizinler için)En azından GNU coreutils'in Linux'taki varsayılan chmod versiyonu budur.
Bu örneğe bakın:
$ ls -ld mydir
drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
$ chmod 0710 mydir ; ls -ld mydir # surprise ahead -- s-bits remain:
drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
$ chmod 00710 mydir ; ls -ld mydir # _now_ they're gone:
drwx--x--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
Bu, dizinler için setuid / setgid bitlerinin yanlışlıkla silinmesini önlemek içindir. Ayrıntılar için chmod belgelerine bakın.
Linux sisteminde iki tür izin vardır:
Dosya izninde, dosya ve klasörlere izin veriyoruz:
İzinler:
Özel izinlerde üç tür izin vardır:
Sorunuzda neyin farklı olduğunu soruyorsunuz, bu nedenle, aralarında hiçbir fark yoktur, chmod 777 and 0777çünkü no any octal value(0) sıfıra sahip olan değeri gösterir.