Введение в администрирование UNIX/Безопасность операционной системы UNIX: различия между версиями

Содержимое удалено Содержимое добавлено
→‎Вопросы: орфография
м <source> -> <syntaxhighlight> (phab:T237267)
Строка 160:
Пример 3.1. Пример файла /etc/passwd
 
<sourcesyntaxhighlight lang='bash'>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
Строка 166:
adm:x:3:4:adm:/var/adm:/bin/false
...
</syntaxhighlight>
</source>
 
Каждый пользователь явно связан с одной из групп – это основная группа пользователя. Это сделано для того, чтобы каждый пользователь состоял хотя бы в одной группе. Все новые файлы, создаваемые этим пользователем, в качестве группы владельцев будут иметь его основную группу.
Строка 316:
:Пример использования. Для того, чтобы для файла test.txt сбросить все права для группы владельца и остальных пользователей, а для владельца установить права на чтение и запись, можно использовать следующие команды (они эквивалентны): chmod u=rw,go= test.txt, chmod a=,u=rw test.txt, chmod 600 test.txt. Результат:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
Строка 322:
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
</syntaxhighlight>
</source>
 
:Для добавления группе владельца права на запись и отмена для остальных пользователей права на чтение можно использовать следующую команду: chmod g+w,o-r test.txt. Результат:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop$ ls -l test.txt
-rw-r--r-- 1 pp ppgroup 0 7 дек 00:34 test.txt
Строка 332:
user@desktop$ ls -l test.txt
-rw-rw---- 1 pp ppgroup 0 7 дек 00:34 test.txt
</syntaxhighlight>
</source>
 
;chown: Команда используется для смены владельца/группы файлов.
Строка 348:
:Для изменения группы-владельца файла test.txtна guest необходимо ввести следующую команду: chown :guest test.txt. Результат:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop$ ls -l test.txt
-rw------- 1 pp ppgroup 0 7 дек 00:34 test.txt
Строка 354:
user@desktop$ ls -l test.txt
-rw------- 1 pp wheel 0 7 дек 00:34 test.txt
</syntaxhighlight>
</source>
 
=== Команды по управлению пользователями ===
Строка 368:
:Для того, чтобы стать суперпользователем, нужно ввести команду su без параметров:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop$ su
Password:
desktop#
</syntaxhighlight>
</source>
 
;sudo: Программа sudo является логическим развитием программы su и позволяет как переходить в сеанс суперпользователя, так и запускать отдельные программы от имени суперпользователя.
Строка 463:
1. Для входа в систему необходимо ввести логин и пароль пользователя. При этом символы вводимого пароля не отображаются.
 
<sourcesyntaxhighlight lang='bash'>
Welcome to desktop / tty1
desktop login: user
Строка 469:
Last login: Wed Dec 07 00:20:09 2006 from tty1
user@desktop ~ $
</syntaxhighlight>
</source>
 
При входе в систему в графическом режиме (через X11), пользователю вместо командной строки предоставляется графический десктоп.
Строка 475:
2. Для завершения сеанса работы в командной строке необходимо ввести команду exit:
 
<sourcesyntaxhighlight lang='bash'>user@desktop ~ $ exit</sourcesyntaxhighlight>
 
=== Сценарий: Изучение базовых прав доступа ===
Строка 485:
1. Для просмотра прав доступа можно использовать команду ls с ключом вывода расширенной информации: ls -l.
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ ls -l
drwxr-xr-x 1 user users 22 Дек 19 11:18 test/
-rw-r--r-- 1 user users 90 Сен 19 00:20 test.txt
</syntaxhighlight>
</source>
 
Особый интерес представляют: первая колонка (права доступа), третья и четвётрая – владелец и группа владельцев соответственно.
Строка 495:
2. Рассмотрим исполняемый файл ls -l /bin/bash.
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ ls -l /bin/bash
-rwxr-xr-x 1 root root 746544 Дек 21 13:40 /bin/bash*
</syntaxhighlight>
</source>
 
Исполняемые файлы в UNIX определяются наличием специального бита прав доступа.
Строка 504:
3. Для директории права на исполнения трактуются по-другому. Рассмотрим права директории /tmp ls -ld /tmp:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ ls -ld /tmp
drwxrwxrwt 26 root root 5168 Дек 22 20:04 /tmp/
</syntaxhighlight>
</source>
 
Директория имеет дополнительный sticky-bit, определающий права на создание и удаление файлов в директории.
Строка 513:
4. Изменение файла с недостатком прав приводит к ошибке доступа. Например, команда: rm /bin/bash.
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ rm /bin/bash
rm: удалить защищенный от записи обычный файл `/bin/bash'? y
rm: невозможно удалить `/bin/bash': Permission denied
</syntaxhighlight>
</source>
 
Для всех файлов, на которые данный пользователь не имеет прав записи команда rm может выводить предупреждение об удалении.
Строка 523:
5. Изменение прав доступа производится с помощью команды chmod. Для задания файлу прав только для чтения воспользуемся командой: chmod a=r test.txt.
 
:<sourcesyntaxhighlight lang='bash'>user@desktop ~ $ chmod a=r test.txt</sourcesyntaxhighlight>
 
6. Для лишения всех прав группы владельцев и остальных пользователей воспользуемся командой: chmod go-rwx test.txt.
 
:<sourcesyntaxhighlight lang='bash'>user@desktop ~ $ chmod go-rwx test.txt</sourcesyntaxhighlight>
 
=== Сценарий: Переход в режим суперпользователя ===
Строка 537:
1. Некоторые исполняемые программы обладают специальным suid-битом, например, программа passwd, рассмотрим права доступа к этому исполняемому файлу: ls -l /bin/passwd.
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ ls -l /bin/passwd
-rws--x--x 1 root root 28660 Янв 8 13:05 /bin/passwd*
</syntaxhighlight>
</source>
 
2. Запускаются suid-программы от имени владельца файла. В этом можно убедиться, если запустить команду passwd, а затем на другом терминале сделать ps aux | grep passwd:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ passwd
Changing password for user
Строка 552:
root 12937 0.0 0.1 3228 1012 pts/2 S+ 23:28 0:00 passwd
user 12989 0.0 0.1 2740 748 pts/3 R+ 23:28 0:00 grep passwd
</syntaxhighlight>
</source>
 
3. Для длительной работы в режиме суперпользователя обычно используют команду su. Используем параметр -, чтобы проинициализировать окружение суперпользователя: su -. Для того, чтобы перейти в режим суперпользователя, необходимо знать его пароль.
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ su -
Password:
desktop ~ #
</syntaxhighlight>
</source>
 
При этом запускается новая командная оболочка, уже с новыми привелегиями.
Строка 566:
4. Для завершения сеанса суперпользователя необходимо воспользоваться командой exit:
 
<sourcesyntaxhighlight lang='bash'>
desktop ~ # exit
logout
user@desktop ~ $
</syntaxhighlight>
</source>
 
=== Сценарий: Изучение базы данных пользователей ===
Строка 580:
1. Данные о зарегистрированных в системе пользователях хранятся в файле /etc/passwd. Рассмотрим его содержимое cat /etc/passwd:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
Строка 587:
adm:x:3:4:adm:/var/adm:/bin/false
...
</syntaxhighlight>
</source>
 
Подробную информацию о формате этого файла можно получить на соответствующей странице руководств: man 5 passwd.
Строка 593:
2. Аналогичным образом данные о группах хранятся в файле /etc/group. Рассмотрим его содержимое cat /etc/group:
 
<sourcesyntaxhighlight lang='bash'>
user@desktop ~ $ cat /etc/group
root:x:0:root
Строка 600:
sys:x:3:root,bin,adm
...
</syntaxhighlight>
</source>
 
=== Сценарий: Добавление и удаление пользователей ===
Строка 610:
1. Для добавления новых пользователей используется команда useradd. При этом в качестве параметров можно указать домашнюю директорию и командную оболочку пользователя: useradd testuser -d /home/users/testuser -s /bin/sh, результат можно увидеть следующим образом: cat /etc/passwd | grep testuser.
 
<sourcesyntaxhighlight lang='bash'>
desktop ~ # cat /etc/passwd
testuser:x:1003:1003::/home/users/testuser:/bin/sh
</syntaxhighlight>
</source>
 
2. С помощью команды passwd можно задать пароль для нового пользователя: passwd testuser.
 
<sourcesyntaxhighlight lang='bash'>
desktop ~ # passwd testuser
New UNIX password:
Retype new UNIX password:
passwd: пароль успешно обновлён
</syntaxhighlight>
</source>
 
3. Для изменения параметров учётной записи можно отредактировать файл /etc/passwd, однако более корректным способом является использование команды usermod. Например, для изменение командной оболочки пользователя на /bin/false приведёт к невозможности его входа в систему: usermod -s /bin/false testuser.
 
<sourcesyntaxhighlight lang='bash'>desktop ~ # usermod -s /bin/false testuser</sourcesyntaxhighlight>
 
4. Удаление пользователя производится с помощью команды userdel: userdel testuser.
 
<sourcesyntaxhighlight lang='bash'>desktop ~ # userdel testuser</sourcesyntaxhighlight>
 
=== Задания для самоподготовки ===
Строка 645:
«Сценарий: Вход в систему и завершение сеанса»
 
#<sourcesyntaxhighlight lang='bash'>exit</sourcesyntaxhighlight>
 
«Сценарий: Изучение базовых прав доступа»
 
#<sourcesyntaxhighlight lang='bash'>ls -l</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>ls -l /bin/bash</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>ls -ld /tmp</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>rm /bin/bash</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>chmod a=r test.txt</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>chmod go-rwx test.txt</sourcesyntaxhighlight>
 
«Сценарий: Переход в режим суперпользователя»
 
#<sourcesyntaxhighlight lang='bash'>ls -l /bin/passwd</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>passwd</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>ps aux | grep passwd</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>su -</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>exit</sourcesyntaxhighlight>
 
«Сценарий: Изучение базы данных пользователей»
 
#<sourcesyntaxhighlight lang='bash'>cat /etc/passwd</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>man 5 passwd</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>cat /etc/group</sourcesyntaxhighlight>
 
«Сценарий: Добавление и удаление пользователей»
 
#<sourcesyntaxhighlight lang='bash'>useradd testuser -d /home/users/testuser -s /bin/sh</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>cat /etc/passwd | grep testuser</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>passwd testuser</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>usermod -s /bin/false testuser</sourcesyntaxhighlight>
#<sourcesyntaxhighlight lang='bash'>userdel testuser</sourcesyntaxhighlight>
[[Категория:Введение в администрирование UNIX|Безопасность операционной системы UNIX]]