Все инструкции, которые я нахожу в Интернете, гласят:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Но это неправда. Видеть:
$ 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
$
Вопрос: так в чем правда? Как я могу действительно перечислить все файлы SUID / SGID?
Хм, так почему именно это "не правда"? Вы сделали R EAD T он F riendly M Anual, верно? Биты прав доступа к файлу точно в режиме (восьмеричное или символическое).
—
0xC0000022L
** тест ** это файл. Найти поиски по каталогам. Поэтому вы должны использовать find в каталоге, где находится test.
—
Нильс
@Nils: не соответствует действительности.
—
0xC0000022L
find(GNU определит, чтобы быть точным) будет принимать каталоги и файлы одинаково. Он / она просто пропускает точку -permпереключения. Чтение руководства поможет.
@ 0xC0000022L Интересно. Моя man-страница linux на CentOS 5 говорит мне, что она будет принимать только каталоги. Есть ли смысл запускать его на файл?
—
Нильс
@Nils: Нет, в этом нет особого смысла. Но это не помешает тебе от этой глупости. Несмотря на это, на первый взгляд, я тоже думал, что это проблема. Увы, это не для этого вопроса. Вы можете попробовать проверить какие-либо биты в файле, подобном этому,
—
0xC0000022L
find $FILE -perm /7777чтобы увидеть, findделает это ваш или нет.