Saya melihat perubahan kode di tempat kerja, di mana nilai mode diubah dari 777 menjadi 0777 untuk membuat setftr nfs bekerja. Apa perbedaan dalam 2 nilai?
permissions
pengguna1071840
sumber
sumber
mkdir()
. 0777 vs 777Jawaban:
Jika Anda meneruskannya ke
chmod
(program baris perintah), tidak ada perbedaan. Tetapi dalam program C atau yang serupa,0777
adalah oktal (tiga set tiga 1 bit, yang adalah apa yang Anda inginkan), sementara777
desimal, dan itu pola bit yang sangat berbeda. (chmod
akan menafsirkan argumen numerik apa pun sebagai oktal, oleh karena itu tidak diperlukan nol di depan.)0777 (oktal) == biner
0b 111 111 111
== izinrwxrwxrwx
(== desimal511
)777 (desimal) == biner
0b 1 100 001 001
== izinsr----x--x
(== oktal1411
)sumber
chmod
perintah selalu diartikan sebagai oktal. Menggunakanchmod 888
akan memberikan kesalahan.chmod
menafsirkan argumen numerik sebagai oktal, terlepas dari awalan. (Tapi sebenarnya nomor itu sendiri tidak memiliki fungsi; hanya digit, atau lebih tepatnya bit.)1777
, Anda perlu menulis01777
?1777
ditulis01777
dalam C. (Atau Anda bisa menulis1023
, yang merupakan angka yang sama dalam desimal. Tapi jangan :-)Bit pertama digunakan untuk bit yang lengket http://en.wikipedia.org/wiki/Sticky_bit
Jika Anda menetapkan izin menggunakan 4 digit, yang pertama akan mengatur atau menghapus bit ini.
sumber
Jawaban yang menarik adalah:
0700
dan700
, seperti yang dijelaskan dalam jawaban lain00700
dan0700
(untuk direktori)Setidaknya itulah yang terjadi pada versi chmod GNU coreutils, yang merupakan default di Linux.
Lihat contoh ini:
Ini untuk menghindari penghapusan bit setuid / setgid secara tidak sengaja untuk direktori. Untuk detailnya, lihat dokumentasi chmod .
sumber
Di sistem Linux ada dua jenis izin yang tersedia:
Dalam Izin file, kami menetapkan izin pada file dan folder:
Izinnya adalah:
Sedangkan dalam izin khusus, tiga jenis izin adalah:
Dalam pertanyaan Anda, Anda bertanya apa perbedaannya, jadi tidak ada perbedaan antara
chmod 777 and 0777
karena adano any octal value
yang menunjukkan nilai (0) nol.sumber