Berapa digit pertama untuk notasi izin file Unix oktal 4 digit?

40

3 digit:

644
ugo (user group other)

4 digit:

0644
?ugo (??? user group other)

Berapa digit oktal pertama untuk notasi izin file Unix oktal 4 digit?

Steven T. Snyder
sumber

Jawaban:

48

Dari man chmod:

Mode numerik adalah dari satu hingga empat digit oktal (0-7), diturunkan dengan menjumlahkan bit dengan nilai 4, 2, dan 1. Setiap digit yang dihilangkan diasumsikan sebagai nol di depan. Digit pertama memilih atribut ID pengguna (4) dan grup ID (2) dan sticky (1).

Apa itu "setel ID pengguna", "setel ID grup", dan "sticky", Anda bertanya?

setuid / setgid :

setuid dan setgid (kependekan dari "set ID pengguna setelah eksekusi" dan "set ID grup setelah eksekusi", masing-masing) adalah tanda hak akses Unix yang memungkinkan pengguna untuk menjalankan file yang dapat dieksekusi dengan izin dari pemilik atau grup yang dapat dieksekusi. Mereka sering digunakan untuk memungkinkan pengguna pada sistem komputer untuk menjalankan program dengan hak sementara yang ditinggikan untuk melakukan tugas tertentu. Sementara id pengguna yang diasumsikan atau hak grup id yang diberikan tidak selalu meningkat, minimal mereka spesifik.

Juga, ketika diterapkan ke direktori, setuid / setgid menyebabkan file baru yang dibuat dalam direktori untuk mewarisi uid atau gid, masing-masing, dari direktori induk. Perilaku ini bervariasi berdasarkan pada rasa unix. Sebagai contoh, linux menghargai setgid, tetapi mengabaikan setuid pada direktori.

Dan lengket :

Penggunaan lengket yang paling umum saat ini adalah pada direktori. Ketika bit sticky diatur, hanya pemilik item, pemilik direktori, atau superuser yang dapat mengganti nama atau menghapus file. Tanpa bit sticky yang ditetapkan, setiap pengguna dengan menulis dan mengeksekusi izin untuk direktori dapat mengubah nama atau menghapus file yang terkandung, terlepas dari pemiliknya. Biasanya ini diatur pada direktori / tmp untuk mencegah pengguna biasa menghapus atau memindahkan file pengguna lain.

Handyman5
sumber
12

Setgid memiliki fungsi lain yang sangat penting yang saya andalkan setiap hari tetapi tidak termasuk dalam kutipan Handyman5 (kutipannya berasal dari halaman yang sama yang ditautkan di atas):

Bendera setuid dan setgid, ketika ditetapkan pada direktori, memiliki arti yang sama sekali berbeda.

Menetapkan izin setgid pada direktori (chmod g + s) menyebabkan file dan subdirektori baru yang dibuat di dalamnya mewarisi ID grupnya, dan bukan ID grup utama pengguna yang membuat file (ID pemilik tidak pernah terpengaruh, hanya saja ID grup). Sub direktori yang baru dibuat mewarisi bit setgid.

Dengan demikian, ini memungkinkan ruang kerja bersama untuk grup tanpa ketidaknyamanan yang mengharuskan anggota grup untuk secara eksplisit mengubah grup mereka saat ini sebelum membuat file atau direktori baru. Perhatikan bahwa pengaturan izin setgid pada direktori hanya memengaruhi ID grup dari file dan subdirektori baru yang dibuat setelah bit setgid ditetapkan, dan tidak diterapkan pada entitas yang ada. Pengaturan bit setgid pada subdirektori yang ada harus dilakukan secara manual, dengan perintah seperti berikut:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

chmod g+sakan berarti penambahan 2 di depan nilai oktal membuat direktori yang memiliki 775 izin ( drwxrwxr-x) menjadi 2775 ( drwxrwsr-x).

Jay Allen
sumber
2
FYI: MacOS X berperilaku seolah-olah bit SGID selalu aktif dalam direktori.
Jonathan Leffler
4

Selain jawaban yang lain, angka 0 di depan adalah konvensi yang digunakan untuk memberi tahu angka yang oktal. Tidak diperlukan di sini karena izin file selalu dinyatakan dalam oktal tetapi ini bisa menjadi alasan lain mengapa itu ada.

Jlliagre
sumber
2

Berikut ini adalah kalkulator izin Limux / Unix yang mudah digunakan untuk membantu Anda mengetahui izin file atau direktori.

vegasbrianc
sumber
Hanya memposting tautan yang disukai. Anda harus memposting konten yang relevan dan kemudian mengutip sumber Anda.
MDMarra
Tercatat akan memastikan posting selanjutnya diformat dengan benar
vegasbrianc