Помогите с командой find для идентификации файла SUID, пожалуйста?

Я делаю онлайн-курс и мог бы с некоторой помощью, пожалуйста. Пожалуйста, смотрите изображение ниже. Я использую find, чтобы найти файл с установленным битом SUID. Вопрос спрашивает: "Каково содержимое файла с именем" immersive ", принадлежащего пользователю" linux ", с установленными SUID и разрешениями на выполнение пользователя? Существует несколько файлов с именем" immersive ", найдите правильный!" Из вопроса я использовал команду

find . -perm /4100

Я надеюсь, что это правильные восьмеричные разрешения? На изображении вы увидите два возвращенных каталога, но когда я запускаю ls -la, я не вижу ни одного файла с установленным SUID. Есть идеи, что я делаю не так?

$ 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 ответа

Смотрите этот вопрос для объяснения -perm /mode против -perm -mode, Признаюсь, это не очень интуитивно понятно, но:

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

будет делать, как вы просите.

-perm -4100 означает: найти любой файл, который имеет 4 (=setuid) установить AND 1 (=x) устанавливается для пользователя, игнорируя оставшиеся биты (групповые и другие).

-perm /4100 с другой стороны, означает: найти любой файл, который имеет либо 4 (=setuid) установить ИЛИ 1 (=x) устанавливается для пользователя (или обоих), игнорируя оставшиеся биты.

Так /mode найдет больше файлов, чем -mode,


В случае, если это не очевидно (потому что я сосредоточился на -perm флаг): остальные означают: найти файл (-type f) с именем immersive принадлежит пользователю linux, Все эти условия AND.


Для просмотра содержимого найденных файлов вы можете либо cat их один за другим, т.е. выдают

cat .../immersive

для каждого найденного файла или пусть find Команда сделает это за вас:

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

Это позволит найти файлы в соответствии с условиями, указанными выше, но вместо того, чтобы печатать их имена и атрибуты (-ls) выполнит cat Команда для каждого найденного файла.

Попробуйте эту команду:

      find / -name immersive 2> /dev/null

Он также покажет вам все скрытые файлы. Надеюсь это поможет

Другие вопросы по тегам