Работая с Linux, Мефодий заметил, что некоторые файлы и каталоги недоступны ему ни для чтения, ни для записи, ни для использования. Зачем такие нужны? Оказывается, другие пользователи могут обращаться к этим файлам, а у Мефодия просто недостаточно прав.
Говоря о rm или cat ). Поскольку и файл, и субъектов и файлов как объектов системы.
В Linux, однако, используются не какие угодно свойства, а результат login запускает exec() ) или порождение нового fork() ) не изменяют
Поскольку methody ", говорят " methody " (в приведенном ниже примере этот
[methody@localhost methody]$ id uid=503(methody) gid=503(methody) группы=503(methody) [methody@localhost methody]$ id shogun uid=400(shogun) gid=400(shogun) г руппы=400(shogun),4(adm),10(wheel),19(proc)
Утилита id, которой воспользовался Мефодий, выводит
Как было рассказано в лекции 1, пользователь может быть членом нескольких group указываются не идентификаторы, а входные имена пользователей. Формально говоря, можно создать двух пользователей с одинаковым
Часто процедуру создания пользователя проектируют так, что имя
При создании объектов файловой системы – файлов, каталогов и т. п. – каждому в обязательном порядке приписывается
[methody@arnor methody]$ ls -l итого 24 drwx------ 2 methody methody 4096 Сен 12 13:58 Documents drwxr-xr-x 2 methody methody 4096 Окт 31 15:21 examples -rw-r--r-- 1 methody methody 26 Сен 22 15:21 loop -rwxr-xr-x 1 methody methody 23 Сен 27 13:27 script drwx------ 2 methody methody 4096 Окт 1 15:07 tmp -rwxr-xr-x 1 methody methody 32 Сен 22 13:26 to.sort
Ключ " -l " утилиты ls определяет "длинный" ( l ong) формат выдачи (справа налево): имя файла, время последнего изменения файла, размер в байтах, - " отвечает "обычному" файлу, а тип " d " – каталогу ( d irectory). Имя пользователя и имя methody.
Быстрый разумом Мефодий немедленно заинтересовался вот чем: несмотря на то, что создание tmp/.). Если же в каталоге создать подкаталог, количество .." в подкаталоге (например, tmp/subdir1/..):
[methody@arnor methody]$ ls -ld tmp drwx------ 3 methody methody 4096 Окт 1 15:07 tmp [methody@arnor methody]$ mkdir tmp/subdir2 [methody@arnor methody]$ ls -ld tmp drwx------ 4 methody methody 4096 Окт 1 15:07 tmp [methody@arnor methody]$ rmdir tmp/subdir* [methody@arnor methody]$ ls -ld tmp drwx------ 2 methody methody 4096 Окт 1 15:07 tmp
Здесь Мефодий использовал ключ " -d " ( d irectory) для того, чтобы ls выводил информацию не о содержимом каталога tmp, а о самом этом каталоге.
Теперь – более подробно о том, чему соответствуют девять символов в строке ls. Эти девять символов имеют вид " rwxrwxrwx ", где некоторые " r ", " w " и " x " могут заменяться на " - ". Очевидно, буквы отражают принятые в Linux три вида доступа – чтение, запись и использование – однако в
Дело в том, что любой пользователь ( rwx ", описывающие u "), g ") и o "). Если в какой-либо тройке не хватает буквы, а вместо нее стоит " - ", значит, пользователю в соответствующей роли будет в соответствующем виде доступа отказано.
При выяснении отношений между файлом и пользователем, запустившим
Именно в роли
Далее следует протокол действий Гуревича, который, пользуясь возможностями /tmp несколько файлов с различными bash заменил привычный "доллар" в конце
[root@localhost root]# echo "All can read" > /tmp/read.all [root@localhost root]# echo "Group wheel can read" > /tmp/read.wheel [root@localhost root]# echo "Group methody can read" > /tmp/read.methody [root@localhost root]# echo "Methody himself can read" > /tmp/read.Methody [root@localhost root]# chgrp wheel /tmp/read.wheel; chmod o-r /tmp/read.wheel [root@localhost root]# chgrp methody /tmp/read.methody; chmod o-r /tmp/read.methody [root@localhost root]# chown methody /tmp/read.Methody; chmod og-r /tmp/read.Methody
chown ( ch ange own er, сменить владельца), chgrp ( ch ange gr ou p, сменить chmod с расширенным форматом параметра: перед частью, определяющей доступ (перед знаком " + " или " - "), могут быть перечислены роли " u ", " g ", " o " и " a " ( a ll, что соответствует " ugo "), доступ для которых изменяется. Кроме того, при задании доступа можно вместо " + " и " - " использовать " = ", тогда для заданных ролей указанные способы доступа разрешаются, а неуказанные – запрещаются. Вместо пары команд chown ; chgrp группа файл можно применять одну: chown хозяин:группа файл, которая изменяет одновременно и
Мефодий хочет посмотреть, кто имеет доступ к файлам, созданным Гуревичем, а вдобавок – к файлу /etc/shadow. Для этого он использует команду ls -l с /tmp и имя которых начинается на " read.".
[methody@localhost methody]$ ls -l /tmp/read.* /etc/shadow -r-------- 1 root root 0 Сен 10 02:08 /etc/shadow -rw-r--r-- 1 root root 13 Сен 22 17:49 /tmp/read.all -rw-r----- 1 root methody 23 Сен 22 17:49 /tmp/read.methody -rw------- 1 methody root 25 Сен 22 17:50 /tmp/read.Methody -rw-r----- 1 root wheel 21 Сен 22 17:49 /tmp/read.wheel [methody@localhost methody]$ cat /tmp/read.* /etc/shadow All can read Group methody can read Methody himself can read cat: /tmp/read.wheel: Permission denied cat: /etc/shadow: Permission denied
Что же получается? Из файла /etc/shadow можно только читать, причем только пользователю root. Изменять файлы /tmp/read.all, /tmp/read. и /tmp/read.methody может только root, он же может и читать из них. Также читать из файла /tmp/read. могут члены , а из файла /tmp/read.methody – члены methody (это имя /tmp/read.Methody может только пользователь methody. Наконец, читать из файла /tmp/read.all могут к тому же и члены root, и вообще любые пользователи.
Попытка вывести содержимое этих файлов на экран (а значит, прочитать их) приводит к ожидаемому результату: cat ( methody ) разрешено чтение из трех файлов. Из /tmp/read.all – так как по отношению к нему Мефодий играет роль r " в начале третьей тройки). Из /tmp/read.methody – так как пользователь methody входит в methody (см. пример 6.1), членам которой разрешено читать из этого файла (" r " в начале второй тройки). И, конечно, из файла /tmp/read.Methody, которому methody – r " в первой тройке).
Если бы Мефодию захотелось записать что-нибудь в эти файлы, он бы получил доступ только к одному – /tmp/read.Methody, потому что по отношению к остальным файлам Мефодий играет роль, которой закрыт доступ на запись ( /tmp/read.methody – член
Таким образом, определение chmod u+r, а потом читать из него.
В Linux определено несколько disk ", " audio ", " cdwriter " и т. п. Тогда обычным пользователям доступ к некоторому файлу, каталогу или
Например, в Linux почти всегда используется /proc – каталог, в котором в виде подкаталогов и файлов представлена информация из /proc совпадает с /proc пользуется утилита ps:
[methody@arnor methody]$ ls -l /proc . . . dr-xr-x--- 3 methody proc 0 Сен 22 18:17 4529 dr-xr-x--- 3 shogun proc 0 Сен 22 18:17 4558 dr-xr-x--- 3 methody proc 0 Сен 22 18:17 4589 . . . [methody@localhost methody]$ ps -af UID PID PPID C STIME TTY TIME CMD methody 4529 4523 0 13:41 tty1 00:00:00 -bash methody 4590 4529 0 13:42 tty1 00:00:00 ps -af
Оказывается, запущено немало shogun ( 4558 ). Однако, несмотря на ключ " -a " ( a ll), ps выдала Мефодию только сведения о его 4529 – это входной shell, а 4590 – видимо, сам ps.
Другое дело – Гуревич. Он, как видно из примера 6.1, входит в proc, членам которой разрешено читать и использовать каждый подкаталог /proc:
shogun@localhost ~ $ ps -af UID PID PPID C STIME TTY TIME CMD methody 4529 4523 0 13:41 tty1 00:00:00 -bash shogun 4558 1828 0 13:41 tty3 00:00:00 -zsh shogun 4598 4558 0 13:41 tty3 00:00:00 ps -af
Гуревич, опытный пользователь Linux, предпочитает bash "The Z Shell", zsh. Отсюда и различие приглашения в командной строке. Во всех shell, кроме самых старых, символ " ~ " означает домашний каталог. Этим сокращением удобно пользоваться, если текущий каталог – не домашний, а оттуда (или туда) нужно скопировать файл. Получается команда наподобие " cp ~/нужный_файл." или " cp нужный_файл ~ " соответственно.
Команда ps -efH.
Проанализировав систему
Чтобы доказать новичку, что право на удаление любых файлов полезно, кто-то создал прямо в домашнем каталоге Мефодия файл, недоступный ему, да к тому же с подозрительным именем, содержащим пробел:
[methody@localhost methody]$ ls 4TO-TO Mep3koe Documents examples loop script tmp to.sort [methody@localhost methody]$ ls -l 4* -rw------- 1 root root 0 Сен 22 22:20 4TO-TO Mep3koe [methody@localhost methody]$ rm -i 4* rm: удалить защищенный от записи пустой обычный файл `4TO-TO Mep3koe'? y
Подозревая, что от хулиганов всего можно ожидать, Мефодий не решился набрать имя удаляемого файла с клавиатуры, а воспользовался -i " ( i nteractive) команды rm, чтобы та ожидала подтверждения перед тем, как удалять очередной файл. Несмотря на отсутствие доступа к самому файлу, удалить его оказалось возможно:
[methody@localhost methody]$ ls -dl /tmp drwxrwxrwt 4 root root 1024 Сен 22 22:30 /tmp [methody@localhost methody]$ ls -l /tmp итого 4 -rw-r--r-- 1 root root 13 Сен 22 17:49 read.all -rw-r----- 1 root methody 23 Сен 22 17:49 read.methody -rw------- 1 methody root 25 Сен 22 22:30 read.Methody -rw-r----- 1 root wheel 21 Сен 22 17:49 read.wheel [methody@localhost methody]$ rm -f /tmp/read.* rm: невозможно удалить '/tmp/read.all': Operation not permitted rm: невозможно удалить '/tmp/read.methody': Operation not permitted rm: невозможно удалить '/tmp/read.wheel': Operation not permitted [methody@localhost methody]$ ls /tmp read.all read.methody read.wheel
Убедившись, что любой доступ в каталог /tmp открыт всем, Мефодий решил удалить оттуда все файлы. Затея гораздо более хулиганская, чем заведение файла: а вдруг они кому-нибудь нужны? Удивительно, но удален оказался только файл, принадлежащий самому Мефодию...
Дело в том, что Мефодий проглядел особенность /tmp: вместо " x " в тройке "для ls выдал " t ". Это еще один drwxrwxrwt группа хозяин " и для членов
При установке t " доступ на использование для t " в строчке x ") не отменяется. Просто они так редко используются друг без друга, что ls выводит их в одном и том же месте. Если кому-нибудь придет в голову организовать ls выведет на месте девятого t ", а " T ":
[methody@localhost methody]$ ls -l loop -rw-r--r-- 1 root root 26 Сен 22 22:10 loop [methody@localhost methody]$ chown methody loop chown: изменение владельца `loop': Operation not permitted [methody@localhost methody]$ cp loop loopt [methody@localhost methody]$ ls -l loop* -rw-r--r-- 1 root root 26 Сен 22 22:10 loop -rw-r--r-- 1 methody methody 26 Сен 22 22:15 loopt [methody@localhost methody]$ mv -f loopt loop [methody@localhost methody]$ ls -l loop* -rw-r--r-- 1 methody methody 26 Сен 22 22:15 loop
Оказывается, мелкие пакости продолжаются. Кто-то сменил файлу loop root. Это несложно: чужой файл можно переименовать (это действие над каталогом, а не над файлом), скопировать переименованный файл в файл с именем старого (доступ на чтение открыт) и, наконец, удалить чужой файл с глаз долой. Ключ " -f " ( f orce, "силком") позволяет утилите mv делать свое дело, не спрашивая подтверждений. В частности, увидев, что файл с именем, в которое необходимо переименовывать, существует, даже чужой, даже недоступный на запись, mv преспокойно удалит его и выполнит операцию переименования.
Мефодий возмутился, узнав, что кто-то может проделывать над ним всякие штуки, которые сам Мефодий ни над кем проделывать не может. Обоснованное подозрение пало на Гуревича, единственного администратора этой системы, обладающего
0: так система отличает их от login, когда, проведя процедуру
Среди root, множество файлов только ему доступны на чтение или запись. Пароль этой учетной записи – одна из самых больших драгоценностей системы. Именно с ее помощью системные администраторы выполняют самую ответственную работу. Свойство root иметь доступ ко всем ресурсам системы накладывает очень высокие требования на человека, знающего пароль root. root прибегать только по необходимости.
Существует два различных способа получить last? Что тогда-то с такой-то консоли в систему вошел неизвестно кто с
Второй способ —воспользоваться специальной утилитой su ( s hell of u ser), которая позволяет выполнить одну или несколько команд от лица другого пользователя. По умолчанию эта утилита выполняет команду sh от лица пользователя root, то есть запускает командный интерпретатор с нулевым su, а значит, ясно, с кого спрашивать за последствия. В некоторых случаях удобнее использовать не su, а утилиту sudo, которая позволяет выполнять только заранее заданные команды.
Утилиты su и sudo имеют некоторую странность, объяснить которую Мефодий пока не в состоянии. Эта же странность распространяется и на давно известную программу passwd, которая позволяет редактировать собственную su запускает для обычного пользователя суперпользовательский shell? Как passwd получает доступ к хранилищу всех
В Linux этот механизм называется
[foreigner@somewhere foreigner]$ ls -l /usr/bin/passwd /bin/su -rws--x--x 1 root root 19400 Фев 9 2004 /bin/su -rws--x--x 1 root root 5704 Янв 18 2004 /usr/bin/passwd [foreigner@somewhere foreigner]$ ls -l /etc/shadow -r-------- 1 root root 5665 Сен 10 02:08 /etc/shadow
Как и в случае с t- ls выводит букву " s " вместо буквы " x " в тройке "для ls выведет " S " вместо " s ". Во многих дистрибутивах Linux и /bin/su, и /usr/bin/passwd имеют установленный root, что и позволяет su запускать passwd – модифицировать файл /etc/shadow, содержащий в таких системах сведения обо всех passwd выполнить любую другую программу, то все проблемы с защитой системы от взлома будут разом решены – нет защиты, нет и проблемы.
Однако Мефодий работает с такой системой, где /usr/bin/passwd вообще не имеет shadow и имеет другой shadow. Утилита ls выводит s " вместо " x " во второй тройке s ", " S " и " x " действительны для
[root@localhost root]# ls -l /usr/bin/passwd -rwx--s--x 1 root shadow 5704 Jan 18 2004 /usr/bin/passwd [root@localhost root]# ls -al /etc/tcb/methody total 3 drwx--s--- 2 methody auth 1024 Sep 22 12:58 . drwx--x--- 55 root shadow 1024 Sep 22 18:41 .. -rw-r----- 1 methody auth 81 Sep 22 12:58 shadow -rw------- 1 methody auth 0 Sep 12 13:58 shadow- -rw------- 1 methody auth 0 Sep 12 13:58 shadow.lock
Каталог /etc/ в этой системе содержит подкаталоги, соответствующие собственный файл shadow соответствующего пользователя. Доступ к каталогу /etc/ на использование (а, следовательно, и ко всем его подкаталогам) имеют, кроме root, только члены shadow. Доступ на запись к каталогу /etc/ и к файлу /etc/ имеет только пользователь methody. Значит, чтобы изменить что-либо в этом файле, methody и shadow (или нулевой /usr/bin/passwd: он наследует shadow из-за passwd ошибки и заставив ее делать что угодно, злоумышленник всего только и сможет, что... отредактировать собственную
Оказывается, /etc/ имел auth. Используется это разнообразными auth и shadow, могут прочесть информацию из файлов /etc/.
Вполне очевидно, что
Все двенадцать sU|sG|t|rU|wU|xU|rG|wG||xG|rO|wO|xO, где sU – это sG – это chmod вместо конструкции " роли=виды_доступа ", причем число надо записывать в восьмеричной системе счисления. Так, /tmp будут равны 1777, /bin/su – 4711, /bin/ls – 755 и т. д.
Тем же побитовым представлением umask должен обязательно начинатся на 0, как это принято для восьмеричных чисел в языке Си.
Работая с Linux, Мефодий заметил, что некоторые файлы и каталоги недоступны ему ни для чтения, ни для записи, ни для использования. Зачем такие нужны? Оказывается, другие пользователи могут обращаться к этим файлам, а у Мефодия просто недостаточно прав.
Говоря о rm или cat ). Поскольку и файл, и субъектов и файлов как объектов системы.
В Linux, однако, используются не какие угодно свойства, а результат login запускает exec() ) или порождение нового fork() ) не изменяют
Поскольку methody ", говорят " methody " (в приведенном ниже примере этот
[methody@localhost methody]$ id uid=503(methody) gid=503(methody) группы=503(methody) [methody@localhost methody]$ id shogun uid=400(shogun) gid=400(shogun) г руппы=400(shogun),4(adm),10(wheel),19(proc)
Утилита id, которой воспользовался Мефодий, выводит
Как было рассказано в лекции 1, пользователь может быть членом нескольких group указываются не идентификаторы, а входные имена пользователей. Формально говоря, можно создать двух пользователей с одинаковым
Часто процедуру создания пользователя проектируют так, что имя
При создании объектов файловой системы – файлов, каталогов и т. п. – каждому в обязательном порядке приписывается
[methody@arnor methody]$ ls -l итого 24 drwx------ 2 methody methody 4096 Сен 12 13:58 Documents drwxr-xr-x 2 methody methody 4096 Окт 31 15:21 examples -rw-r--r-- 1 methody methody 26 Сен 22 15:21 loop -rwxr-xr-x 1 methody methody 23 Сен 27 13:27 script drwx------ 2 methody methody 4096 Окт 1 15:07 tmp -rwxr-xr-x 1 methody methody 32 Сен 22 13:26 to.sort
Ключ " -l " утилиты ls определяет "длинный" ( l ong) формат выдачи (справа налево): имя файла, время последнего изменения файла, размер в байтах, - " отвечает "обычному" файлу, а тип " d " – каталогу ( d irectory). Имя пользователя и имя methody.
Быстрый разумом Мефодий немедленно заинтересовался вот чем: несмотря на то, что создание tmp/.). Если же в каталоге создать подкаталог, количество .." в подкаталоге (например, tmp/subdir1/..):
[methody@arnor methody]$ ls -ld tmp drwx------ 3 methody methody 4096 Окт 1 15:07 tmp [methody@arnor methody]$ mkdir tmp/subdir2 [methody@arnor methody]$ ls -ld tmp drwx------ 4 methody methody 4096 Окт 1 15:07 tmp [methody@arnor methody]$ rmdir tmp/subdir* [methody@arnor methody]$ ls -ld tmp drwx------ 2 methody methody 4096 Окт 1 15:07 tmp
Здесь Мефодий использовал ключ " -d " ( d irectory) для того, чтобы ls выводил информацию не о содержимом каталога tmp, а о самом этом каталоге.
Теперь – более подробно о том, чему соответствуют девять символов в строке ls. Эти девять символов имеют вид " rwxrwxrwx ", где некоторые " r ", " w " и " x " могут заменяться на " - ". Очевидно, буквы отражают принятые в Linux три вида доступа – чтение, запись и использование – однако в
Дело в том, что любой пользователь ( rwx ", описывающие u "), g ") и o "). Если в какой-либо тройке не хватает буквы, а вместо нее стоит " - ", значит, пользователю в соответствующей роли будет в соответствующем виде доступа отказано.
При выяснении отношений между файлом и пользователем, запустившим
Именно в роли
Далее следует протокол действий Гуревича, который, пользуясь возможностями /tmp несколько файлов с различными bash заменил привычный "доллар" в конце
[root@localhost root]# echo "All can read" > /tmp/read.all [root@localhost root]# echo "Group wheel can read" > /tmp/read.wheel [root@localhost root]# echo "Group methody can read" > /tmp/read.methody [root@localhost root]# echo "Methody himself can read" > /tmp/read.Methody [root@localhost root]# chgrp wheel /tmp/read.wheel; chmod o-r /tmp/read.wheel [root@localhost root]# chgrp methody /tmp/read.methody; chmod o-r /tmp/read.methody [root@localhost root]# chown methody /tmp/read.Methody; chmod og-r /tmp/read.Methody
chown ( ch ange own er, сменить владельца), chgrp ( ch ange gr ou p, сменить chmod с расширенным форматом параметра: перед частью, определяющей доступ (перед знаком " + " или " - "), могут быть перечислены роли " u ", " g ", " o " и " a " ( a ll, что соответствует " ugo "), доступ для которых изменяется. Кроме того, при задании доступа можно вместо " + " и " - " использовать " = ", тогда для заданных ролей указанные способы доступа разрешаются, а неуказанные – запрещаются. Вместо пары команд chown ; chgrp группа файл можно применять одну: chown хозяин:группа файл, которая изменяет одновременно и
Мефодий хочет посмотреть, кто имеет доступ к файлам, созданным Гуревичем, а вдобавок – к файлу /etc/shadow. Для этого он использует команду ls -l с /tmp и имя которых начинается на " read.".
[methody@localhost methody]$ ls -l /tmp/read.* /etc/shadow -r-------- 1 root root 0 Сен 10 02:08 /etc/shadow -rw-r--r-- 1 root root 13 Сен 22 17:49 /tmp/read.all -rw-r----- 1 root methody 23 Сен 22 17:49 /tmp/read.methody -rw------- 1 methody root 25 Сен 22 17:50 /tmp/read.Methody -rw-r----- 1 root wheel 21 Сен 22 17:49 /tmp/read.wheel [methody@localhost methody]$ cat /tmp/read.* /etc/shadow All can read Group methody can read Methody himself can read cat: /tmp/read.wheel: Permission denied cat: /etc/shadow: Permission denied
Что же получается? Из файла /etc/shadow можно только читать, причем только пользователю root. Изменять файлы /tmp/read.all, /tmp/read. и /tmp/read.methody может только root, он же может и читать из них. Также читать из файла /tmp/read. могут члены , а из файла /tmp/read.methody – члены methody (это имя /tmp/read.Methody может только пользователь methody. Наконец, читать из файла /tmp/read.all могут к тому же и члены root, и вообще любые пользователи.
Попытка вывести содержимое этих файлов на экран (а значит, прочитать их) приводит к ожидаемому результату: cat ( methody ) разрешено чтение из трех файлов. Из /tmp/read.all – так как по отношению к нему Мефодий играет роль r " в начале третьей тройки). Из /tmp/read.methody – так как пользователь methody входит в methody (см. пример 6.1), членам которой разрешено читать из этого файла (" r " в начале второй тройки). И, конечно, из файла /tmp/read.Methody, которому methody – r " в первой тройке).
Если бы Мефодию захотелось записать что-нибудь в эти файлы, он бы получил доступ только к одному – /tmp/read.Methody, потому что по отношению к остальным файлам Мефодий играет роль, которой закрыт доступ на запись ( /tmp/read.methody – член
Таким образом, определение chmod u+r, а потом читать из него.
В Linux определено несколько disk ", " audio ", " cdwriter " и т. п. Тогда обычным пользователям доступ к некоторому файлу, каталогу или
Например, в Linux почти всегда используется /proc – каталог, в котором в виде подкаталогов и файлов представлена информация из /proc совпадает с /proc пользуется утилита ps:
[methody@arnor methody]$ ls -l /proc . . . dr-xr-x--- 3 methody proc 0 Сен 22 18:17 4529 dr-xr-x--- 3 shogun proc 0 Сен 22 18:17 4558 dr-xr-x--- 3 methody proc 0 Сен 22 18:17 4589 . . . [methody@localhost methody]$ ps -af UID PID PPID C STIME TTY TIME CMD methody 4529 4523 0 13:41 tty1 00:00:00 -bash methody 4590 4529 0 13:42 tty1 00:00:00 ps -af
Оказывается, запущено немало shogun ( 4558 ). Однако, несмотря на ключ " -a " ( a ll), ps выдала Мефодию только сведения о его 4529 – это входной shell, а 4590 – видимо, сам ps.
Другое дело – Гуревич. Он, как видно из примера 6.1, входит в proc, членам которой разрешено читать и использовать каждый подкаталог /proc:
shogun@localhost ~ $ ps -af UID PID PPID C STIME TTY TIME CMD methody 4529 4523 0 13:41 tty1 00:00:00 -bash shogun 4558 1828 0 13:41 tty3 00:00:00 -zsh shogun 4598 4558 0 13:41 tty3 00:00:00 ps -af
Гуревич, опытный пользователь Linux, предпочитает bash "The Z Shell", zsh. Отсюда и различие приглашения в командной строке. Во всех shell, кроме самых старых, символ " ~ " означает домашний каталог. Этим сокращением удобно пользоваться, если текущий каталог – не домашний, а оттуда (или туда) нужно скопировать файл. Получается команда наподобие " cp ~/нужный_файл." или " cp нужный_файл ~ " соответственно.
Команда ps -efH.
Проанализировав систему
Чтобы доказать новичку, что право на удаление любых файлов полезно, кто-то создал прямо в домашнем каталоге Мефодия файл, недоступный ему, да к тому же с подозрительным именем, содержащим пробел:
[methody@localhost methody]$ ls 4TO-TO Mep3koe Documents examples loop script tmp to.sort [methody@localhost methody]$ ls -l 4* -rw------- 1 root root 0 Сен 22 22:20 4TO-TO Mep3koe [methody@localhost methody]$ rm -i 4* rm: удалить защищенный от записи пустой обычный файл `4TO-TO Mep3koe'? y
Подозревая, что от хулиганов всего можно ожидать, Мефодий не решился набрать имя удаляемого файла с клавиатуры, а воспользовался -i " ( i nteractive) команды rm, чтобы та ожидала подтверждения перед тем, как удалять очередной файл. Несмотря на отсутствие доступа к самому файлу, удалить его оказалось возможно:
[methody@localhost methody]$ ls -dl /tmp drwxrwxrwt 4 root root 1024 Сен 22 22:30 /tmp [methody@localhost methody]$ ls -l /tmp итого 4 -rw-r--r-- 1 root root 13 Сен 22 17:49 read.all -rw-r----- 1 root methody 23 Сен 22 17:49 read.methody -rw------- 1 methody root 25 Сен 22 22:30 read.Methody -rw-r----- 1 root wheel 21 Сен 22 17:49 read.wheel [methody@localhost methody]$ rm -f /tmp/read.* rm: невозможно удалить '/tmp/read.all': Operation not permitted rm: невозможно удалить '/tmp/read.methody': Operation not permitted rm: невозможно удалить '/tmp/read.wheel': Operation not permitted [methody@localhost methody]$ ls /tmp read.all read.methody read.wheel
Убедившись, что любой доступ в каталог /tmp открыт всем, Мефодий решил удалить оттуда все файлы. Затея гораздо более хулиганская, чем заведение файла: а вдруг они кому-нибудь нужны? Удивительно, но удален оказался только файл, принадлежащий самому Мефодию...
Дело в том, что Мефодий проглядел особенность /tmp: вместо " x " в тройке "для ls выдал " t ". Это еще один drwxrwxrwt группа хозяин " и для членов
При установке t " доступ на использование для t " в строчке x ") не отменяется. Просто они так редко используются друг без друга, что ls выводит их в одном и том же месте. Если кому-нибудь придет в голову организовать ls выведет на месте девятого t ", а " T ":
[methody@localhost methody]$ ls -l loop -rw-r--r-- 1 root root 26 Сен 22 22:10 loop [methody@localhost methody]$ chown methody loop chown: изменение владельца `loop': Operation not permitted [methody@localhost methody]$ cp loop loopt [methody@localhost methody]$ ls -l loop* -rw-r--r-- 1 root root 26 Сен 22 22:10 loop -rw-r--r-- 1 methody methody 26 Сен 22 22:15 loopt [methody@localhost methody]$ mv -f loopt loop [methody@localhost methody]$ ls -l loop* -rw-r--r-- 1 methody methody 26 Сен 22 22:15 loop
Оказывается, мелкие пакости продолжаются. Кто-то сменил файлу loop root. Это несложно: чужой файл можно переименовать (это действие над каталогом, а не над файлом), скопировать переименованный файл в файл с именем старого (доступ на чтение открыт) и, наконец, удалить чужой файл с глаз долой. Ключ " -f " ( f orce, "силком") позволяет утилите mv делать свое дело, не спрашивая подтверждений. В частности, увидев, что файл с именем, в которое необходимо переименовывать, существует, даже чужой, даже недоступный на запись, mv преспокойно удалит его и выполнит операцию переименования.
Мефодий возмутился, узнав, что кто-то может проделывать над ним всякие штуки, которые сам Мефодий ни над кем проделывать не может. Обоснованное подозрение пало на Гуревича, единственного администратора этой системы, обладающего
0: так система отличает их от login, когда, проведя процедуру
Среди root, множество файлов только ему доступны на чтение или запись. Пароль этой учетной записи – одна из самых больших драгоценностей системы. Именно с ее помощью системные администраторы выполняют самую ответственную работу. Свойство root иметь доступ ко всем ресурсам системы накладывает очень высокие требования на человека, знающего пароль root. root прибегать только по необходимости.
Существует два различных способа получить last? Что тогда-то с такой-то консоли в систему вошел неизвестно кто с
Второй способ —воспользоваться специальной утилитой su ( s hell of u ser), которая позволяет выполнить одну или несколько команд от лица другого пользователя. По умолчанию эта утилита выполняет команду sh от лица пользователя root, то есть запускает командный интерпретатор с нулевым su, а значит, ясно, с кого спрашивать за последствия. В некоторых случаях удобнее использовать не su, а утилиту sudo, которая позволяет выполнять только заранее заданные команды.
Утилиты su и sudo имеют некоторую странность, объяснить которую Мефодий пока не в состоянии. Эта же странность распространяется и на давно известную программу passwd, которая позволяет редактировать собственную su запускает для обычного пользователя суперпользовательский shell? Как passwd получает доступ к хранилищу всех
В Linux этот механизм называется
[foreigner@somewhere foreigner]$ ls -l /usr/bin/passwd /bin/su -rws--x--x 1 root root 19400 Фев 9 2004 /bin/su -rws--x--x 1 root root 5704 Янв 18 2004 /usr/bin/passwd [foreigner@somewhere foreigner]$ ls -l /etc/shadow -r-------- 1 root root 5665 Сен 10 02:08 /etc/shadow
Как и в случае с t- ls выводит букву " s " вместо буквы " x " в тройке "для ls выведет " S " вместо " s ". Во многих дистрибутивах Linux и /bin/su, и /usr/bin/passwd имеют установленный root, что и позволяет su запускать passwd – модифицировать файл /etc/shadow, содержащий в таких системах сведения обо всех passwd выполнить любую другую программу, то все проблемы с защитой системы от взлома будут разом решены – нет защиты, нет и проблемы.
Однако Мефодий работает с такой системой, где /usr/bin/passwd вообще не имеет shadow и имеет другой shadow. Утилита ls выводит s " вместо " x " во второй тройке s ", " S " и " x " действительны для
[root@localhost root]# ls -l /usr/bin/passwd -rwx--s--x 1 root shadow 5704 Jan 18 2004 /usr/bin/passwd [root@localhost root]# ls -al /etc/tcb/methody total 3 drwx--s--- 2 methody auth 1024 Sep 22 12:58 . drwx--x--- 55 root shadow 1024 Sep 22 18:41 .. -rw-r----- 1 methody auth 81 Sep 22 12:58 shadow -rw------- 1 methody auth 0 Sep 12 13:58 shadow- -rw------- 1 methody auth 0 Sep 12 13:58 shadow.lock
Каталог /etc/ в этой системе содержит подкаталоги, соответствующие собственный файл shadow соответствующего пользователя. Доступ к каталогу /etc/ на использование (а, следовательно, и ко всем его подкаталогам) имеют, кроме root, только члены shadow. Доступ на запись к каталогу /etc/ и к файлу /etc/ имеет только пользователь methody. Значит, чтобы изменить что-либо в этом файле, methody и shadow (или нулевой /usr/bin/passwd: он наследует shadow из-за passwd ошибки и заставив ее делать что угодно, злоумышленник всего только и сможет, что... отредактировать собственную
Оказывается, /etc/ имел auth. Используется это разнообразными auth и shadow, могут прочесть информацию из файлов /etc/.
Вполне очевидно, что
Все двенадцать sU|sG|t|rU|wU|xU|rG|wG||xG|rO|wO|xO, где sU – это sG – это chmod вместо конструкции " роли=виды_доступа ", причем число надо записывать в восьмеричной системе счисления. Так, /tmp будут равны 1777, /bin/su – 4711, /bin/ls – 755 и т. д.
Тем же побитовым представлением umask должен обязательно начинатся на 0, как это принято для восьмеричных чисел в языке Си.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.