Pertanyaan Berapa angka pertama untuk dalam argumen chmod 4-angka (seperti `chmod 4555`)?


Ketika saya menginstal sebuah program, itu merekomendasikan saya untuk melakukannya chmod 4555. Oke, saya tahu tentang nilai jika saya hanya menggunakan tiga angka. Sebagai contoh

chmod 555 test-file

akan memberi

-r-xr-xr-x

4 untuk menulis, 2 untuk dibaca dan 1 untuk dieksekusi. Tapi, ketika saya melakukan ini:

chmod 4555 test-file

itu memberi saya

-r-sr-xr-x

Begitu, x berubah menjadi s. Apa artinya?


17
2018-02-03 16:59


asal


juga dijelaskan di sini: askubuntu.com/a/550947/72216 ("tentang s-bendera") - Jacob Vlijm
@JacobVlijm juga menjelaskan lebih mendalam dengan bit "khusus" lainnya, di bawah ini - Thomas Ward♦


Jawaban:


Sebenarnya ada 4 set atribut yang dapat Anda gunakan melalui via chmod.

Special, User/Owner, Group, dan Others dalam urutan itu, ketika bekerja dengan chmod empat nomor, dengan angka pertama itu adalah bit khusus yang dapat diatur.

chmod 4555 sama dengan yang berikut:

  • Set UID bit - Jalankan file sebagai pemilik terlepas dari pengguna yang menjalankannya
  • Pengguna / Pemilik: Read, Execute
  • Kelompok: Read, Execute
  • Lainnya: Read, Execute

Itu s dalam string 'terbaca manusia' untuk izin menunjukkan bahwa SetUID bit (dijelaskan di bawah) diatur.


Secara efektif, kita dapat memecah empat angka chmod perizinan argumen ke deskriptor tertentu sebagai berikut, dan melakukan matematika untuk menentukan apa 4 di bagian pertama akan menjadi, a 5 di bagian selanjutnya, dan seterusnya.

Ingat itu #### aku s Special  User/Owner  Group dan Others dalam urutan itu.

Untuk Special atribut (angka pertama dalam empat angka chmod argumen):

  • Set UID - Jalankan file sebagai pemilik terlepas dari pengguna menjalankannya (menunjukkan sebagai s dalam string izin yang dapat dibaca manusia untuk User bagian) = +4 (--s dibawah User/Owner)
  • Set GID - Jalankan file sebagai grup tanpa menghiraukan pengguna / grup menjalankannya (menunjukkan sebagai s dalam string izin yang dapat dibaca manusia untuk Group bagian) = +2 (--s dibawah Group)
  • Sticky Bit - EFEKTIF HANYA DIRECTORIES - Jika disetel, hanya pengguna dan pengguna direktori root dapat menghapus direktori, dan hanya pemilik file atau root dapat menghapus file di dalamnya. (menunjukkan sebagai t dalam string izin yang dapat dibaca manusia untuk Others bagian) = +1 (--t dibawah Others)

Untuk User/Owner, Group dan Others atribut (tiga angka terakhir dalam empat angka chmod argumen):

  • Read = +4 (r--)
  • Write = +2 (-w-)
  • Execute (untuk file), atau 'Masukkan Ke / Item Daftar' = +1 (--x)

25
2018-02-03 17:10





Ini disebut SETUID sedikit. jika disetel oleh chmod 4555 test-file (dalam kasus Anda), maka test-file dapat dijalankan oleh pengguna mana pun seolah-olah pengguna adalah pemilik file.

Ketika SETUID bit diatur kemudian ID Pengguna Efektif (EUID) dari pengguna yang tidak memiliki izin untuk mengeksekusi file sebaliknya (dengan izin normal, misalnya 0744), mengambil EUID dari pemilik file dan dapat mengeksekusi file.


7
2018-02-03 17:12