Приемы профессиональной работы в UNIX


ПОЯСНЕНИЯ - часть 3


Находит путь и вместо того, чтобы его напечатать, выполняет команду ls -l применительно к этому пути.

Формат setuid в строке 34 прощается с подходом "один файл за один раз" и включает каталоговую машину. Поскольку внешний цикл установлен на одну итерацию, внутренний цикл становится главным. Для каждого каталога, указанного в PATH, печатаются оформление из двоеточий и имя каталога. Это делает распечатку приятной, информативной и наглядной. Ключевой командой является комбинация ls-grep. Каждое имя файла в каталоге распечатывается в длинном формате, затем просматривается бит установки пользовательского идентификатора. Модель такова, что команда ls -al $DIR печатает следующее:

| | -rws--x--x 1 root bin 16235 Sep 13 1985 /bin/su | |

Аргумент "^[^ ]*s[^ ]*" означает поиск от начала строки символа, отличного от пробела, за которым следует один или более символов, отличных от пробела, затем символ s и затем один или более символов, отличных от пробела. Это выражение ограничивает поиск битами прав доступа в начале строки. Если имеется символ s где-либо в правах доступа (либо в пользовательском идентификаторе процесса, либо в групповом идентификаторе процесса), то команда grep отрабатывает успешно и печатается вся строка.

Такой вид поиска установленного пользовательского идентификатора несколько "легковесен" в том смысле, что поиск ведется только согласно переменной PATH, которая у вас есть. Файлы с установленным пользовательским идентификатором могут находиться в каталогах, которые не указаны в PATH. Однако в такой реализации данная опция обеспечивает быстрое обращение к вашим локальным файлам с установленным пользовательским идентификатором.




Начало  Назад  Вперед



Книжный магазин