Помогите с командой 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
Он также покажет вам все скрытые файлы. Надеюсь это поможет