2 votes

Aide avec la commande find pour identifier le fichier SUID s'il vous plaît ?

Je suis en train de suivre un cours en ligne et j'aurais besoin d'aide s'il vous plaît. Veuillez consulter l'image ci-dessous. J'utilise la commande find pour localiser un fichier avec le bit SUID défini. La question demande "Quel est le contenu du fichier nommé 'immersive', qui est possédé par l'utilisateur 'linux', avec les permissions SUID et d'exécution utilisateur définies ? Il y a plusieurs fichiers nommés 'immersive', trouvez le bon !" À partir de la question j'ai utilisé la commande

find . -perm /4100

J'espère que ce sont les permissions octales correctes ? Dans l'image, vous verrez que deux répertoires sont renvoyés mais lorsque j'exécute ls -la, je ne vois aucun fichier avec le SUID défini. Avez-vous une idée de ce que je fais mal ?

$ find . -perm /4100
.
./immersive
$ ls .
immersive
$ ls -la ./immersive
lrwxrwxrwx  1   root    root   23 Aug 20 14:25 ./immersive -> /lib/firmware/immersive
linux@find-command:~$ find . -perm /4100 . ./immersive 
linux@find-command:~$ ls -la 
total 24 
drwxr-xr-x 1  linux linux   4096 Oct 13 13:00 . 
drwxr-xr-x 1  root  root    4096 Oct 11 18:56 .. 
-rw------- 1  linux linux   134  Oct 13 13:00 .bash_history 
-rw-r--r-- 17 linux linux   220  Apr  4 2018 .bash_logout 
-rw-r--r-- 17 linux linux   3771 Apr  4 2018 .bashrc
-rw-r--r-- 17 linux linux   807  Apr  4 2018 .profile
lrwxrwxrwx 1  root  root    23   Aug 20 14:25 immersive -> /lib/firmware/immersive

3voto

PerlDuck Points 12079

Consultez cette question pour une explication de -perm /mode vs. -perm -mode. J'admets, ce n'est pas très intuitif, mais :

find . -type f -name immersive -user linux -perm -u=sx -ls
# ou
find . -type f -name immersive -user linux -perm -4100 -ls

fera ce que vous demandez.

Le -perm -4100 signifie : trouver tout fichier ayant 4 (=setuid) défini ET 1 (=x) défini pour l'utilisateur en ignorant les bits restants (groupe et autres).

Le -perm /4100 d'autre part signifie : trouver tout fichier ayant SOIT 4 (=setuid) défini OU 1 (=x) défini pour l'utilisateur (ou les deux) en ignorant les bits restants.

Ainsi /mode trouvera plus de fichiers que -mode.


Au cas où ce n'est pas évident (car je me suis concentré sur le drapeau -perm) : les autres signifient : trouver un fichier (-type f) avec le nom immersive appartenant à l'utilisateur linux. Toutes ces conditions sont ET.


Pour afficher le contenu des fichiers trouvés, vous pouvez soit les cat un par un, c'est-à-dire exécuter

cat .../immersive

pour chaque fichier trouvé, ou laisser la commande find le faire pour vous :

find . -type f -name immersive -user linux -perm -4100 -exec cat {} \;

Cela trouvera les fichiers selon les conditions ci-dessus mais au lieu d'afficher leurs noms et attributs (-ls), exécutera la commande cat pour chaque fichier trouvé.

-1voto

ASak Points 1

Essayez cette commande :

find / -name immersive 2> /dev/null

Cela vous montrera également tous les fichiers cachés. J'espère que cela vous aidera

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X