Web'de bulduğum tüm howtos şöyle diyor:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Ama bu doğru değil. Görmek:
$ ls -lah test
-r-sr-xr-x 1 user user 0B Jan 24 22:47 test
$
$
$ stat -x test | grep Mode
Mode: (4555/-r-sr-xr-x) Uid: ( 1000/ user) Gid: ( 1000/ user)
$
$
$ find test -perm 4000
$ find test -perm 2000
$
Soru: Peki gerçek nedir? Tüm SUID / SGID dosyalarını gerçekten nasıl listeleyebilirim?
Peki neden bu "doğru değil"? Dedin R EAD T o F riendly M , sağ anual? Dosyanın izin bitleri tam olarak moddur (sekizli veya sembolik).
—
0xC0000022L
** test ** bir dosyadır. Dizinlerdeki aramaları bulun. Bu nedenle testin bulunduğu dizinde find komutunu kullanmalısınız.
—
Nils
@Nils: doğru değil.
—
0xC0000022L
find
(GNU kesin olarak bulur) dizinleri ve dosyaları benzer şekilde alacaktır. Sadece -perm
anahtarın noktasını kaçırır . Kılavuzu okumak yardımcı olacaktır.
@ 0xC0000022L İlginç. CentOS 5'teki linux-man sayfam bana sadece dizinler alacağını söylüyor. Bir dosya üzerinde çalıştırmanın bir anlamı var mı?
—
Nils
@Nils: hayır, bunu yapmanın belirli bir anlamı yok. Ama o ahmaktan uzak durmayacaksın. Ne olursa olsun, ilk bakışta bunun bir sorun olduğunu düşündüm. Ne yazık ki, bu soru için değil. Bunun gibi bir dosyada bazı bitleri kontrol
—
0xC0000022L
find $FILE -perm /7777
edip find
etmediğini veya engelleyip engellemediğini deneyebilirsiniz .