ТОП 10:

Использование прав доступа в Linux



Использование групп

В Linux определено несколько системных групп, задача которых – обеспечивать доступ членов этих групп к разнообразным ресурсам системы. Часто такие группы носят говорящие названия: "disk", "audio", "cdwriter" и т. п. Если обычным пользователям доступ к некоторому файлу, каталогу или специальному файлу Linux закрыт, он открыт членам группы, которой этот объект принадлежит.

Например, в Linux почти всегда используется виртуальная файловая система /proc – каталог, в котором в виде подкаталогов и файлов представлена информация из таблицы процессов. Имя подкаталога /proc совпадает с PID соответствующего процесса, а содержимое этого подкаталога отражает свойства процесса. Хозяином такого подкаталога будет хозяин процесса (с правами на чтение и использование), поэтому любой пользователь сможет посмотреть информацию о своих процессах. Именно каталогом /proc пользуется утилита ps. Использование утилиты ps для просмотра выполняющихся процессов Linux рассматривается в работе “Процессы ОС Linux“.

Разделяемые каталоги и sticky-бит

 

Это еще один атрибут каталога, наличие которого запрещает пользователю удалять оттуда файлы, которым он не хозяин. Таким образом, права записи в разделяемый каталог и для членов группы, и для посторонних ограничены их собственными файлами, и только хозяин имеет право изменять список файлов в каталоге, как ему вздумается. Такие каталоги называются разделяемыми, потому что предназначены они, как правило, для совместной работы всех пользователей в системе, обмена информацией и т. п. При установке для каталога десятого бита (бита "t", восьмеричное значение 1000) доступ на использование для посторонних не отменяется.

Бит t установлен для каталога /tmp. Команда ls –l / для каталога /tmp выводит права доступа в виде drwxrwxrwt , отображая бит t в позиции, в которой обычно выводится символ х для пользователей, не являющихся владельцами и не принадлежащих группе.

Установка признака sticky-бит с помощью числовых обозначений предполагает указание четвертой цифры в составе параметра, передаваемого команде chmod. Например, для каталога mydir командой

chmod 1775 mydir

будут установлены права доступа drwxrwxr-t

Биты setuid и setgid

Биты, которым в коде доступа соответствуют восьмеричные значения 4000 и 2000, - это биты смены идентификатора пользователя (setuid) и смены идентификатора группы (setgid). Будучи установленными для исполняемых файлов, они позволяют программам получать доступ к файлам и процессам, которые при прочих обстоятельствах недоступны пользователю, выполняющему эти программы. Если запускается исполняемый файл, у которого установлен один из этих битов, то эффективными идентификаторами создаваемого процесса становятся идентификаторы владельца файла. Смена полномочий действительна только на время работы программы.

Бит setuid позволяет обычным пользователям выполнять программы, выполняющие жестко регламентированные административные действия. Например, команда passwd изменения пароля обращается к файлу /etc/shadow, принадлежащему суперпользователю, вследствие чего у нее установлен бит setuid.

Суперпользователь

Суперпользователь - единственный пользователь в Linux, на которого не распространяются ограничения прав доступа. Имеет нулевой идентификатор пользователя.

Суперпользователь в Linux – это выделенный пользователь системы, на которого не распространяются ограничения прав доступа. UID суперпользовательских процессов равен 0: так система отличает их от процессов других пользователей. Именно суперпользователь имеет возможность произвольно изменять владельца и группу файла. Ему открыт доступ на чтение и запись к любому файлу системы и доступ на чтение, запись и использование к любому каталогу. Наконец, суперпользовательский процесс может на время сменить свой собственный UID с нулевого на любой другой. Именно так и поступает программа login, когда, проведя процедуру идентификации пользователя, запускает стартовый командный интерпретатор.

Среди учетных записей Linux всегда есть запись по имени root ("корень"), соответствующая нулевому идентификатору, поэтому вместо "суперпользователь" часто говорят "root". Множество системных файлов принадлежат root, множество файлов только ему доступны на чтение или запись. Пароль этой учетной записи – одна из самых больших драгоценностей системы. Именно с ее помощью системные администраторы выполняют самую ответственную работу. Свойство root иметь доступ ко всем ресурсам системы накладывает очень высокие требования на человека, знающего пароль root. Суперпользователь может все – в том числе и все поломать, поэтому любую работу стоит вести с правами обычного пользователя, а к правам root прибегать только по необходимости.

Существует два различных способа получить права суперпользователя. Первый – это зарегистрироваться в системе под этим именем, ввести пароль и получить стартовую оболочку, имеющую нулевой UID. Это – самый неправильный способ, пользоваться которым стоит, только если нельзя применить другие. Что в этом случае выдаст команда last? Что тогда-то с такой-то консоли в систему вошел неизвестно кто с правами суперпользователя и что-то там такое делал. С точки зрения системного администратора, это очень подозрительное событие, особенно если сам он в это время к указанной консоли не подходил... Сами администраторы такого способа избегают.

Второй способ —воспользоваться специальной утилитой su (shell of user), которая позволяет выполнить одну или несколько команд от лица другого пользователя. По умолчанию эта утилита выполняет команду sh от лица пользователя root, то есть запускает командный интерпретатор с нулевым UID. Отличие от предыдущего способа – в том, что всегда известно, кто именно запускал su, а значит, ясно, с кого спрашивать за последствия. Утилита su запускается без аргументов и запрашивает пароль администратора. Если пароль введен правильно, пользователь получает права администратора.

Для возврата к режиму пользователя следует использовать команду su имя_пользователя. Пароль пользователя не требуется.

 

Поиск файлов

Для поиска файла по имени или его части используется утилита locate. Параметр задает имя файла. Для поиска без учета регистра служит ключ –i.

Для ограничения объема выводимой информации используется ключ –n число. Построчный вывод получается, если результаты поиска направить по конвейеру в программу less, например

locate mp3 | less

Утилита locate ведет поиск в базе данных, которая должна периодически обновляться утилитой updatedb, выполняемой с правами администратора.

Другой способ найти файл предоставляет утилита find.Ее ключи приведены в таблице 1.

Таблица 1.Ключи утилиты find

 

Ключ Назначение
-name Задает имя файла или его часть
-size Задает размер файла, например 12k
-type Задает тип объекта для поиска: f-обычный файл d-каталог l-символьная ссылка
-a Логическая связка and
-o Логическая связка or
-user Задает имя пользователя

 

 

Достоинствами утилиты find являются независимость от базы данных и широкие функциональные возможности, недостаток – меньшая скорость поиска по сравнению с locate.

 


 

2. МЕТОДИКА ВЫПОЛНЕНИЯ

1. Ознакомиться с теоретическими сведениями.

2. Запустить виртуальную машину.

3. Выбрать виртуальную машину и запустить ее

4. После загрузки ОС Linux и запроса имени ввести имя и пароль пользователя. Имя и пароль суперпользователя при запуске ОС Linux использовать не рекомендуется (см. теоретические сведения).

5. По окончании загрузки ОС запустить терминал.

 

Для освобождения курсора и перехода в окно Windows используйте правый Alt

 

Все задания работы желательно выполнить в режиме командной строки с помощью терминала. Допустимо использовать и графические утилиты и менеджер файлов mc.

 

Рисунок 2 Вид менеджера файлов midnight commander, запущенного командой консоли mc.

Правая панель отображает содержимое корневого каталога /

 

 

Задания

 

1. Создать в домашнем каталоге следующую структуру подкаталогов (существующие каталоги не удалять!):

2. Скопировать файл /etc/group в каталоги 1, 2, 3 и 4 используя абсолютные имена копируемого файла и каталога назначения.

3.С помощью утилиты file вывести на экран сведения о 3 - 4 различных файлах (в том числе из каталогов /bin и /dev).

4.Выполнить команду ls –l /dev

Используя таблицу 2 обозначений типов файлов

 

Таблица 2. Обозначения типов файлов

Символ Тип файла
d Каталог
l Символьная ссылка
s Сокет
b Блочное устройство
c Символьное устройство
p Именованный канал

перечислить типы файлов, хранящихся в каталоге /dev

5.Используя справочную систему, ознакомиться с ключами утилиты ls

-R, -1 (единица), -m, --color, ключи, определяющие порядок вывода на экран

6. Создать жесткую и символическую ссылки для одного из созданных в п.2 файлов.

 

Рекомендуемые индивидуальные задания для бригад

Таблица 3

Номер бригады Задание
1.Вывести список имен файлов из /var, используя ключ –l Список упорядочить по размерам файлов. 2. Найти файлы, имена которых оканчиваются на pdf
1.Вывести список имен файлов из /bin, используя ключ –l Список упорядочить по датам создания 2. Найти файлы, имена которых оканчиваются на jpg
1.Вывести список имен файлов из /sbin, используя ключ –l Список упорядочить по именам 2. Найти файлы, размеры которых превышают 25к (запись +25k)
1.Вывести список имен файлов из /tmp, используя ключ –l Список упорядочить по именам 2. Найти файлы, имена которых оканчиваются на text
1.Вывести список имен файлов из /usr, используя ключ –l Список упорядочить по размерам файлов. 2. Найти файлы, имена которых оканчиваются на jpg и размеры более 1к
1. Вывести список имен файлов из /bin, используя ключ –l Список упорядочить по датам создания 2. Найти файлы, размеры которых превышают 15к (запись +15k)
1.Вывести список имен файлов из /usr, используя ключ –l Список упорядочить по размерам файлов. 2. Найти файлы, размеры которых превышают 25к (запись +25k) и имена начинаются на s
1. Вывести список имен файлов из /var, используя ключ –l Список упорядочить по датам создания 2. Найти файлы, размеры которых превышают 25к (запись +25k) и имена начинаются на s, а заканчиваются на jpg
1. Вывести список имен файлов из /sbin, используя ключ –l Список упорядочить по размерам файлов 2. Найти файлы, размеры которых превышают 1М (запись +1m)
1. Вывести список имен файлов из /bin, используя ключ –l Список упорядочить по именам 2. Найти файлы, размеры которых превышают 5к (запись +5k)

 

7. Закрыть окно терминала и выключить виртуальный компьютер.

Дождаться завершения работы виртуальной машины.

8. Выключить реальный компьютер.

 

3. ОТЧЕТ О РАБОТЕ

 

Готовится в письменном виде один на бригаду. Содержание отчета:

1. построенное в задании 1 дерево каталогов.

2. описания назначений ключей команды ls.

3. результаты выполнения заданий.

 

4. КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Типы файлов ОС Linux

2. Назначение утилиты file.

3. Структура дерева каталогов ОС Linux.

4. Отличия структуры файловых систем ОС Windows и Linux.

5. В чем отличие каталогов /var и /tmp.

6. Назначение утилиты pwd.

7. Назначение утилиты cat.

8. Назначение утилиты ls. Использование ключей –F, -a.

9. Утилита mkdir.

10. Утилиты копирования и перемещения файлов.

11. Жесткие ссылки: назначение и создание.

12. Cоздание файлов.

13. Символьные ссылки.

14. Удаление файлов и каталогов. Как восстановить ошибочно удаленный файл?

15. Назначение утилиты id.

16. Ярлыки объектов файловой системы.

17. Права доступа к файлу.

18. Команды, изменяющие права доступа к файлу.

19. Суперпользователь и его права.

20. Назначение утилиты su.

21. Утилиты поиска файлов locate и find, их достоинства и недостатки.

 







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.172.213 (0.011 с.)