Давайте погрузимся глубже разрешений Linux File помимо чтения и записи и выполнение для владельца
группы, а остальные три дополнительных специальных разрешений для каждого файла или каталога
это SUID или набор SGID идентификатор пользователя или набор идентификатор группы и липкий бит эти специальные режимы
для файла или каталога в целом, а не только для категории пользователей, давайте посмотрим, что они означают,
и начнем с первого, который по умолчанию является suid. Команды Linux и программы запускаются с теми
же точными разрешениями, что и пользователь, который их выполняет, давайте возьмем общий Linux команда, такая как cat,
команда cad запускается с разрешениями пользователя, который ее выполняет, если пользователь имеет право
просматривать файл, что означает разрешение на удаление, тогда команда cat также будет иметь право и
отобразит контекст файла, которого он не независимо от того, что владелец исполняемого двоичного файла cat является root,
владелец исполняемого файла груб, но программа будет работать с привилегиями пользователя,
который ее выполняет, так работает Linux, и это действительно y важно в отношении безопасности всей системы,
поскольку каждый пользователь имеет очень ограниченный доступ, и все комментарии, запускаемые пользователем, будут иметь
одинаковый доступ в системе, иногда требуется временно обрабатывать пользователей как root или как другого
пользователя, и именно здесь Бит suid или set user id вступает в игру, когда исполняемый файл с suid
выполняется, в результате процесс будет иметь разрешения владельца команды, а
не права пользователя, который выполняет команду, это очень важно, имейте это в виду,
давайте вернемся к комментарию cat, если двоичный файл cat имеет установленный бит suid, тогда команда cat
будет запускаться только с привилегиями root независимо от того, кто ее запускает, потому что root является владельцем
исполняемого файла, позвольте мне продемонстрировать это на примере как непривилегированный пользователь,
я попытаюсь отобразить содержимое теневого файла с помощью cat, so cat и т. д. shadow,
и, конечно же, мне отказано в разрешении, потому что комментарий cat запускался с разрешениями
пользователя, который его выполнил, и t если мы отобразим права доступа к файлу,
мы увидим, что пользователь с именем student, текущий пользователь принадлежит к другому
классу и не имеет никаких разрешений, следовательно, у кота вообще нет разрешений для этого файла,
но если я установил suid в двоичном файле cad команда будет иметь разрешения владельца ix,
который является root, независимо от того, кто ее запускает, давайте установим suid в исполняемом файле cat,
есть два способа сделать это, если вы хотите использовать числовой режим, просто добавьте
для существующие разрешения давайте посмотрим существующие разрешения cat,
теперь существующие разрешения в числовом режиме равны 0 7 5 5 или просто 755, а новые разрешения
будут 4 7 5 5, кстати, если вы запустите команду состояния для файла, который вы ' Я вижу ноль перед
тремя цифрами, которые представляют разрешения, что означает, что файл не имеет специальных разрешений,
таких как suid sjid или липкий бит, я устанавливаю бит suid в файле, конечно, это хорошо,
вы можете проверить, применен ли бит suid или нет в файле с помощью t команда ls minus l
файл отображается другим цветом, просто посмотрите на положение разрешения на
выполнение для владельца буква s в этой позиции означает, что бит syd
в некоторых случаях вы увидите заглавную букву s вместо наименьшей заглавной буквы s, указывающую,
что к этому файлу не применено исполняемое разрешение, я удаляю разрешение на выполнение,
вы увидите заглавную букву s в этой позиции,
я возвращаю разрешение на выполнение для владельца,
вы также можете проверить бит suid, запустив команду stat, которую
вы видите 4 в первой позиции и s в позиции выполнения владельца. Второй способ
установить бит suid в файле - использовать символический режим sudo chmod u plus s и путь к файлу,
теперь команда cat имеет suid установлен бит, и это означает, что он будет иметь
разрешения своего владельца, который является root, независимо от того, кто будет выполнять его
как непривилегированный пользователь, я попытаюсь снова увидеть содержимое теневого файла,
и на этот раз контакты файла были отображены, потому что команда РА n с привилегиями root,
даже если непривилегированный пользователь фактически выполнил его в этот момент, любой непривилегированный пользователь
теперь может видеть любой файл системы, если вы следовали этому примеру, важно удалить
suid bid, потому что в противном случае плохие вещи может произойти в будущем,
и я проверяю разрешения,
о, извините, я удалил разрешение на выполнение вместо svid, без проблем, я исправлю
свою ошибку,
так что минус s для удаления svid, так что это правильные разрешения семь пять пять
и кошка etc shadow, и, как и ожидалось, у меня есть ошибка с отказом в разрешении,
теперь, когда вы знаете, что suid означает, как его устанавливать и отображать, может быть, интересно, почему это необходимо
на первый взгляд, это кажется угрозой безопасности, давайте подумаем о паролях на хранимых в
Linux сохранены в файле, и только кто-то с хорошими привилегиями может получить доступ к
файлу, содержащему пароли, это файл, который содержит пароли, которые могут звучать нормально,
но если только root может получить доступ к сохраненным паролям, как сделать непривилегированный d пользователи имеют доступ для изменения
своих собственных паролей, и ответ - это комментарий, который в данном случае pa double swd для
этой команды установлен бит s id, а это означает, что когда кто-то запускает команду,
эта команда запускается с хорошими привилегиями и не с ограниченными привилегиями
того, кто его выполняет, потому что root является владельцем, давайте проверим, правда ли, что
root - это честь, и в программе установлен бит suid, отсутствуют команды linux,
которые используют бит suid для предоставления команде повышенных привилегий при запуске обычным пользователем,
чтобы найти все команды с установленным битом svid, запустите команду find с параметром minus perm,
подобным этому, найдите путь usrbin, например, minus perm 4000,
это означает, что найдите все файлы, которые имеют хотя бы эти разрешения, которые мне нужны поставить знак минус
перед разрешениями, потому что я ищу все файлы, у которых есть хотя бы эти разрешения,
все эти исполняемые файлы имеют установленный бит suid, также обратите внимание, что программы, которые работают с повышенными
привилегиями или имеют t Набор битов suid может представлять угрозу безопасности, если они не созданы с
учетом конструктивного мышления, проблема в том, что если злоумышленники находят исполняемый файл, который принадлежит
пользователю root и имеет установленный бит suid, они могут использовать его для эксплуатации системы. необходимо,
чтобы в системе не были установлены небезопасные программы с установленным битом suid.