web-dev-qa-db-fra.com

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

Je fais un cours en ligne et pourrait faire avec de l'aide s'il vous plaît. S'il vous plaît voir l'image ci-dessous. J'utilise find pour localiser un fichier avec le bit SUID défini. La question demande "Quel est le contenu du fichier nommé" immersif ", qui appartient à l'utilisateur" linux ", avec le SUID et le jeu d'autorisations d'exécution d'utilisateur? Il existe plusieurs fichiers nommés" immersif "pour trouver le fichier correct!" De la question j'ai utilisé la commande

find . -perm /4100

J'espère que c'est les permissions octales correctes? Dans l'image, vous verrez deux répertoires renvoyés, mais quand je lance ls -la, je ne vois aucun fichier avec le SUID défini. Des idées 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
2
user278930

Voir cette question pour une explication de _-perm /mode_ et _-perm -mode_. J'avoue que ce n'est pas très intuitif, mais:

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

fera comme vous demandez.

_-perm -4100_ signifie: recherchez tout fichier dont _4_ (= setuid) est défini AND _1_ (= x) défini pour l'utilisateur tout en ignorant les bits restants (groupe et autres).

Le _-perm /4100_ signifie par contre: rechercher tout fichier qui a soit SOIT _4_ (= setuid) défini OR _1_ (= x) défini pour l'utilisateur (ou les deux) tout en ignorant les bits restants.

Donc _/mode_ trouvera plus de fichiers que _-mode_.


Au cas où cela ne serait pas évident (parce que 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 ANDed.


Pour afficher le contenu des fichiers trouvés, vous pouvez soit cat les un à un, c.-à-d.

_cat .../immersive
_

pour chaque fichier trouvé ou laissez 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’imprimer leurs noms et attributs (_-ls_), la commande cat sera exécutée pour chaque fichier trouvé.

3
PerlDuck