Tous les howtos que je trouve sur le web indiquent:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Mais ce n'est pas vrai. Voir:
$ 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
$
Question: Quelle est donc la vérité? Comment puis-je vraiment lister tous les fichiers SUID / SGID?
find
(GNU find to be exact) prendra les répertoires et les fichiers de la même façon. Il / elle manque simplement le point de l'-perm
interrupteur. La lecture du manuel serait utile.find $FILE -perm /7777
pour voir sifind
cela le fait ou l'empêche.Réponses:
Si vous souhaitez tester l' un des bits, utilisez
/
. C'est à dire pour votre cas d'utilisation:et:
ou combiné:
Vous pouvez utiliser à la fois des dossiers et des fichiers comme argument pour GNU
find
.Une autre approche, plus lisible de l'OMI, utilise les raccourcis mnémoniques. C'est à dire:
Caveat emptor
Gardez à l'esprit que les variantes
find
varient. Ils peuvent également se comporter différemment. Lisez toujours le manuel convivial (RTFM).la source
En utilisant la commande suivante, vous pouvez énumérer tous les fichiers binaires disposant de l'autorisation SUID. Le
-perm -u=s
drapeau de l'find
outil fait l'affaire:la source