Похожие презентации:
Lektsia_2_Linux (1)
1. Лекция 2 Права доступа
2. Процессы
Выполняющаяся программа называется вLinux процессом.
Все процессы система регистрирует в таблице
процессов, присваивая им уникальный
идентификатор процесса PID.
Для просмотра процессов можно
воспользоваться утилитами
ps [ключи] [параметры]
top [ключи] [параметры]
2
3. ps -f
34. top
45. Процессы: программа top
Она выводит постоянно обновляющийсясписок
процессов
с
сортировкой
по
процессорному времени в порядке убывания.
Работают клавиши:
Q – выход из top;
U – показывать только пользовательские
процессы;
F – изменить столбец сортировки;
Н – выдает справку по остальным командам
5
6. top (столбцы вывода)
PID –идентификатор процессаUSER –имя пользователя, запустившего процесс
PR –приоритет процесса
Ni –значение nice
VIRT- виртуальная память, используемая процессором(Кб)
RES-размер процесса, не перемещенный в область подкачки
SHR-объем памяти, разделяемой с другими процессами
S-состояние процесса:S-ожидание(находится в swap), R- выполняется, Zзомби;T-остановлен; D-непрерывный сон(ожидает сигнал от
оборудования)
%CPU-занимаемое процессом процессорное время
%MEM-использование памяти процессом
TIME+-процессорное время, израсходованное с момента запуска
COMMAND-команда, используемая для запуска процесса.
6
7. Приоритет процесса PRI и значение nice
• В работающей системе Linux выполняется множествопроцессов. И каждому запущенному процессу
назначается приоритет. Чем больше значение
приоритета, тем меньше сам приоритет. То есть,
процесс с приоритетом 15 будет более
приоритетным, чем процесс с приоритетом 20.
• Более приоритетные процессы получают больше
процессорного времени. Они более отзывчивы,
выполняются более быстро. Но при этом, они сильнее
нагружают процессор и замедляют все остальные
процессы.
7
8. Команда nice
•Но никакие пользователи и даже root не могут управлятьприоритетами процессов. Они могут управлять другим
значением — nice.
• Диапазон nice имеет 40 значений от -20 до +19. По
умолчанию, любой процесс Linux, созданный
пользователем, имеет значение nice равное 0
и приоритет равный 20.
• Разница в том, что priority — это реальный приоритет
процесса в данный момент, а nice — подсказка для ядра
указывающая нужно ли увеличить или уменьшить
приоритет процессу.
8
9. Команда nice nice <приоритет> <выполняемая команда>
Команда nicenice <приоритет> <выполняемая команда>
Для пользовательских процессов, в
большинстве случаев,
значение priority можно рассчитать по
следующей формуле:
priority = 20 - nice.
Таким образом, процесс с nice=3
(пишется nice -3) имеет priority=17,
а процесс с nice=-7
(пишется nice - - 7) имеет priority=27.
9
10.
Как видите команды md5sum работают параллельно. Но у одной командыприоритет стал 12, а у другой 18. При этом более приоритетный процесс 10
получает больше процессорного времени, это видно в колонке TIME+.
11. Команда nice
• При этом:• обычный пользователь может лишь
увеличить значение nice своего процесса;
• root может уменьшить или
увеличить nice своего или чужого процесса.
11
12.
• Если мы хотим указать отрицательноезначение для nice. Другими словами,
уменьшить nice, тем самым увеличив
приоритет. То должны
использовать двойное тире и sudo (так как
обычный пользователь не имеет право
запускать процессы с повышенным
приоритетом)
12
13.
1314. Команда renice
Чтобы изменить приоритет уже работающегопроцесса нужно использовать команду
renice -n <значение> -p <pid>.
И этой командой может пользоваться
только root.
14
15.
1516. Сигналы
Сигнал – короткое сообщение, посылаемоесистемой или процессом другому процессу.
Сигналы 9(KILL) и 19(STOP) всегда обрабатывает
система.
9- завершить процесс принудительно
19-остановить процесс до сигнала 18(CONT)
Передавать сигналы из командной строки
можно командой #kill –сигнал PID
kill -9 345
kill KILL 345
PID процесса можно узнать #ps -f
16
17.
1718. Важно!
• Каждый процесс системы обязательнопринадлежит какому-нибудь пользователю.
UID – обязательное свойство любого
процесса в Linux
• Все процессы, запущенные пользователем
во время сессии будут иметь его
идентификатор(в выводе команды ps мы
видим не числовой UID, а входное
имя(login)).
18
19. id [имя пользователя]
утилита выводит входное имя пользователя исоответствующий ему UID, а также GID
группы по-умолчанию и список всех групп,
членом которых он является.
19
20. Доступ к файлу и каталогу
Рассмотрим процедуру чтения файлаcat file1
Здесь действующим по отношению к file1 субъектом
выступает процесс cat.
И так происходит во время любого действия с
объектом файловой системы, он будет являться
параметром какого то процесса!
Файловый объект всегда идет в сцепке с процессом.
Факт использования файла процессом называется
доступом к файлу, а способ взаимодействия –
видом доступа.
20
21. Виды доступа
Видов доступа в Linux три• чтение
• запись
• выполнение/использование
21
22. Виды доступа
• Чтение(r)- разрешает получатьинформацию из объекта
• Запись (w) –разрешает изменять
информацию из объекта
• Использование(х) – разрешает выполнять
операции, специфичные для данного типа
объекта
22
23.
2324. Иерархия прав доступа
2425.
Любой пользователь Linux по отношению к любому файлуможет выступать в трех ролях:
1. Владелец (user).
2. Член группы, которой принадлежит файл (group).
3. Посторонний (other), не имеющий никаких отношений
собственности на файл.
Права доступа к файлу владельца, группы и посторонних
определяют строку атрибутов.
Строка атрибутов – это набор символов rwxrwxrwx, где
некоторые символы могут замещаться на тире. Буквы
отражают три вида доступа: чтение, запись, исполнение.
26. Иерархия прав доступа
При выяснении прав доступа между файлом и пользователем, запустившимпроцесс, роль пользователя определяется следующим образом:
1.Если UID файла =UID процесса, то пользователь –
владелец файла(первые тройка прав в строке
атрибутов)
2.Если GID файла =GID пользователя, от имени
которого запущен процесс, то пользователь –
член группы, которой принадлежит файл (вторая
тройка прав в строке атрибутов)
3. Иначе пользователь- посторонний( третья тройка
прав строки атрибутов)
!!!! Root может ВСЕ.
26
27.
Права пользователя можно изменить с помощью команд:#chown newuser:newgroup// Сменить владельца, группу.
#chmod
/ /Сменить права
х
#chmod a+w // Всем добавить возможность записи.
#chmod go=r // Группе и посторонним - только чтение.
#chmod go+x-w // Группе добавить выполнение и убрать запись.
#chmod u+w,og+r-w // Владельцу – возможность записи, группе и
посторонним – добавить чтение и убрать запись.
28.
Восьмеричное представлениеправ доступа:
Владелец
Группа
Посторонние
rwx
111
r-x
101
r-100
2 1 0 (позиция)
2 1 0 (позиция)
2 1 0 (позиция)
1 * 2² + 1 * 2¹ + 1 * 2º = 7 1 * 2² +0 * 2¹+ 1 *
2º = 5
#chmod 754 // Допускается запись и в таком виде.
1 * 2² = 4
29. Интересно!
• Команда chmod примененная ксимвольной ссылке изменят права файла
на который ссылается ссылка.
• Команда
chmod --reference=file1.txt file2.txt
Означает что file2.txt будут назначены такие
же права как у file1.txt
29
30. Еще три свойства объекта: setuid, setgid, sticky bit
Практический интерес представляет собой установка бита setuid дляисполняемых файлов, setgid для каталога, Sticky bit устанавливается
только для каталога.
Если бит setuid установлен для исполняемого файла, то работать
этот процесс будет с правами владельца, а не пользователя
запустившего процесс.
Установка setgid для каталога означает, что все создаваемые
объекты внутри каталога будут в качестве группы владельца
принимать группу владельца каталога, а не пользователя создающего
объект. Этот бит используется для создания общедоступных каталогов
пользователей.
Sticky bit установленный для каталога, разрешает удалять и
переименовывать файлы этого каталога только владельцу или root,
даже если право записи будет установлено и для остальных
пользователей.
30
31. Установка этих битов выполняется командой chmod
• chmod u+s file1.exeустановка setuid на исполняемый файл
• chmod g+s /home/user1/examples
установка setgid на каталог
• chmod u+t /home/user2
установка sticky bit на каталог
31
32.
Еще один вариант установки этих свойств числовойВпереди числовых прав добавить цифру
• 1 – sticky bit
• 2 – setgid
• 4 – setuid
chmod 4666 file1.exe
//установка effective UID через setuid для
файла
32
33. Права вновь созданных объектов
При создании объекта его права = правам поумолчанию. Задаются они при помощи числовогошаблона – маски. Узнать маску
#umask
0022
Права по-умолчанию для файла= 0666-маска
Права по-умолчанию для каталога= 0777-маска
То есть по-умолчанию права у нового файла
0644(rw-r—r--), у каталога 0755(rwxr-xr-x)
33
34. Смена маски
С помощью команды umask можно изменить шаблон маски.Цифра 7 в шаблоне маски запрещает все права для своей триады.
34
35.
3536. Расширенные ACL- атрибуты
• Для родной файловой системы Linux ext2/ext3/ext4определены дополнительные атрибуты для
объекта.
• Расширенные атрибуты носят название
ACL-атрибуты файловых объектов (access-control list).
• С ними работает не chmod, а chattr
36
37. ACL атрибуты (access-control list)
3738. chattr, lsattr
• Утилита chattr изменяет атрибуты файлов и чаще всегоиспользуется для установки/снятия специальных
атрибутов для предотвращения модификации и
удаления файла или каталога даже root.
Наиболее употрибительные флаги i-нельзя
модифицировать файл (нельзя переименовать,
исполнять, записывать, создавать символьные
ссылки, снимает атрибут только root), t-файл при
сохранении нельзя разбивать на блоки, a-добавление
данных в файл без изменения существующих данных ,uпри удалении файла его данные будут сохраняться и
пользователь сможет восстановить его.
• Утилита #lsattr путь - просмотр текущих атрибутов.
Утилиты chattr и lsattr находятся в пакете 'e2fsprogs‘
38
39. chattr [опции][оператор(+-=)] [ACL атрибуты] файл
3940. Защита от удаления
#chattr +i examples/#chattr +i file.conf
#lsattr
----i----------- ./examples
----i----------- ./file.conf
#rm –r examples/
rm:cannot
#rm file.conf
rm:cannot
#chmod 755 file.conf
chmod:cannot
#mv examples/ examples_new
mv:cannot
#chattr –i /examples file.conf
#lsattr
---------------- ./examples
---------------- ./file.conf
#rm –rf *
#ls
Total 0
41. Защита файлов /etc/passwd и /etc/shadow(отключаем создание пользовательских аккаунтов)
#chattr +i /etc/passwd#chattr +i /etc/shadow
#useradd test
useradd:cannot
42. Добавление данных в файл без изменения уже существующих
#cat file3.txtЭто пример для атрибута a
#chattr +a file3.txt
#lsattr file3.txt
-----a---------- file3.txt
#echo “добавляем с перезаписью”>file3.txt
-bash:file3.txt:operation not permitted
#echo “добавляем в конец”>>file3.txt
#cat file3.txt
Это пример для атрибута a
добавляем в конец
43. Защита всех объектов через директорию
#chattr –R +i myfolder//рекурсивная (R)
защита от модификаций для всех
элнментов папки: нельзя переименовать,
создать ссылки, исполнять, записывать,
изменять права, удалять.
#rm -rf myfolder
rm:cannot
Снять может только root #chattr –R -i myfolder
43
44.
• На этом все, спасибо за внимание.44
Программное обеспечение