Saya telah mencoba menemukan executable setuid menggunakan `one liner'.
Baris yang pertama kali saya coba adalah:
find / -perm /u+s -type f
Kemudian saya menemukan garis yang serupa tetapi memberikan hasil yang berbeda:
find / -perm /6000 -type f
Ini terlihat identik sejauh yang saya tahu, tetapi yang pertama tidak menunjukkan hasil sebanyak yang kedua (kebanyakan yang dengan grup aneh tidak ada). Mengapa, apa yang berbeda?
Jawaban yang Diterima:
Kebanyakan orang tidak tahu tetapi izin Unix sebenarnya bukan hanya Pengguna, Grup, dan Lainnya (rwx). 3 triad ini adalah izin khas yang memungkinkan pengguna, grup, dan pengguna lain mengakses file &direktori. Namun ada juga sekelompok bit yang mendahului bit Pengguna. Bit ini disebut sebagai “Mode Khusus”.
Ini lebih merupakan notasi singkat yang tidak perlu Anda atur secara eksplisit saat menangani alat seperti chmod
.
$ chmod 644
Sebenarnya setara dengan:
$ chmod 0644
Berikut daftar bitnya:
kutipan artikel wikipedia berjudul:chmod
Flag Octal value Purpose
---- ----------- -------
S_ISUID 04000 Set user ID on execution
S_ISGID 02000 Set group ID on execution
S_ISVTX 01000 Sticky bit
S_IRUSR, S_IREAD 00400 Read by owner
S_IWUSR, S_IWRITE 00200 Write by owner
S_IXUSR, S_IEXEC 00100 Execute/search by owner
S_IRGRP 00040 Read by group
S_IWGRP 00020 Write by group
S_IXGRP 00010 Execute/search by group
S_IROTH 00004 Read by others
S_IWOTH 00002 Write by others
S_IXOTH 00001 Execute/search by others
Pertanyaan Anda
Jadi dalam perintah pertama Anda, Anda mencari u+s
, yang akan berhasil menjadi bit 04000
. Saat Anda menggunakan notasi numerik, Anda meminta bit 04000
DAN 02000
. Ini akan memberi Anda file dengan kumpulan bit setuid pengguna atau grup.
Bacaan Lebih Lanjut
Saya sangat menyarankan siapa pun yang ingin memahami izin lebih baik di Unix, untuk membaca halaman Wikipedia tentang chmod
. Ini menguraikannya dengan sangat sederhana dan merupakan referensi yang sangat baik ketika Anda lupa.
Referensi
- Tutorial chmod