9218
Комментарий:
|
9925
|
Удаления помечены так. | Добавления помечены так. |
Строка 26: | Строка 26: |
## LAST Вопрос: кто записывает файл, читает из файла? Тут объектом явл. фалй, а субъектом явл. процесс. вся работа системы сост. в том, что процессы что-то делают с файлами. В каждый момент времени выполн. моного процессов. Команда ps показывает список процессв, по умолчанию, привязанных к текущей консоли, -e --- все процессы, -f --- более полная информация. Каждому прцессу сотв. идентификатор процесса. Прцессы в кв. скобках --- куски ядра, зарег. как процессы. Процессы порождают друг друга., поэтому в выдаче указан не только идент. процесса, но и его папы. Если род. процесс умер, а сын живёт, то их усыновляет init. |
Вопрос: кто записывает файл, читает из файла? Вовсе не пользователь, как об этом некоторые думают, а процесс. Вся работа системы состоит в том, что процессы что-то делают с файлами. В каждый момент времени выполняется много процессов. Команда ps показывает список процессв, по умолчанию, привязанных к текущей консоли, -e --- все процессы, -f --- более полная информация. Каждому прцессу сответствует идентификатор процесса. Прцессы в квадратных скобках --- куски ядра, зарегистрированные как процессы (для того, чтобы им можно было посылать сингалы). Процессы порождают друг друга, поэтому в выдаче указан не только идентификатор процесса, но и его папы. Если родительский процесс умер, а сын живёт, то их усыновляет init. |
Строка 29: | Строка 28: |
Программы могут обмен. разным способами, бин из них --- сигналы. В программе kill -l приведён список всех сигн., подд. ОС. | Программы могут обмениваться разным способами, один из них --- сигналы. В программе kill -l приведён список всех сигналов, поддерживаемых ОС. |
Строка 31: | Строка 30: |
С данного терминала можно запускать много процессов, но только одна может занимать терминал --- foreground-процесс. (по вводу один, по выводу много). Для запуска процесса в фоне ужно дописать ему &. Если процесс в фоне, то можно его перевести в fg и убить, или сказать ps -H, посмотреть номер процесса и убить ненужный. | С данного терминала можно запускать много процессов, но только одна может занимать терминал --- foreground-процесс (по вводу один, по выводу много). Для запуска процесса в фоне ужно дописать в конце команды &. Если процесс в фоне, то можно его перевести в fg и убить, или сказать ps -H, посмотреть номер процесса и убить ненужный. |
Строка 35: | Строка 34: |
Работа происх. след. образом: после логина запуск. логин шелл. Этому первому процессу присв. id процесса и ему присв. некий идент., соотв польз., ктрый зарег.. Все процессы обяз. прин. какому-то польз.. Польз. определяется по номеру. То есть текстовый или граф. лгин при логине лезет в базу польз., проверяет пароль, создаёт новый процесс, меняет ему UID и выполн. шелл. Все файлы также прин. какому-то пользователю. Возн. сразу дихотомия, связанная вот с чем --- чей процесс осущ. дступ к файлу? Процесс у них одинаковый или разный? Получается две категории уровня доступа: первый урвень доступа ()u --- какие права имеет польз. по отн. к своему файлу. Третье (o) --- опред., какие права имеют прцессы других пользователей. В ткой дихотомии есть слабое звено, с которым часто прих. сталкиваться во время совм. работы --- если надо, чтобы одни имели доступ, а другие --- не имели. Для этого сущ. множественный субъект, групп пользователей. Для того, чтобы вводить сотн. между неск. польз. вместе и файлом, вводится понятие группа. что такое группа? У каждого файла прописан не только польз., но и группа. Например, ls -ld /etc/tcb. Любой польз. может принадлежать любому количеству групп. Эта инф. отчасти лежит в файле /etc/passwd (основная группа). Инф о других вхожд. в группы есть в /etc/group. Для того, чтобы узнать, у кого каой id, мжно восп. командой id. | Работа происходит следующим образом: после логина запускается логин шелл. Этому первому процессу присваивается id процесса и ему присваивается некий идентификатор пользователя, котрый зарегистрировался в системе. Все процессы обязательно принадлежат какому-то пользователю. Пользователь определяется по номеру (UID). То есть текстовый или графический логин при логине лезет в базу пользователей, проверяет пароль, создаёт новый процесс, меняет ему UID и выполняет шелл. Все файлы также принадлежат какому-то пользователю. Возникает сразу дихотомия, связанная вот с чем --- чей процесс осуществляет доступ к файлу? Процесс у них одинаковый или разный? Получается две категории уровня доступа: первый урвень доступа u --- какие права имеет пользователь по отношению к своему файлу. Третье (o) --- определяет, какие права имеют прцессы других пользователей. В такой дихотомии есть слабое звено, с которым часто приходится сталкиваться во время совместной работы --- если надо, чтобы одни имели доступ, а другие --- не имели. Для этого существует множественный субъект, группа пользователей. Для того, чтобы вводить сотношение между несколькими пользователями вместе и файлом, вводится понятие группа. Что такое группа? У каждого файла прописан не только пользователь, но и группа. Например, ls -ld /etc/tcb. Любой пользователь может принадлежать любому количеству групп. Эта информация отчасти лежит в файле /etc/passwd (основная группа). Инф о других вхождениях в группы есть в /etc/group. Для того, чтобы узнать, у кого каой id, мжно воспользоваться командой id. |
Строка 37: | Строка 36: |
Таким обр, мы получаем не два ур. доступа, а три, второй триплет (g) определяет права доступа для группы. | Таким образом, мы получаем не два уровня доступа, а три, второй триплет (g) определяет права доступа для группы. |
Строка 45: | Строка 44: |
|| 7 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, [[Allena]], MaximByshevskiKonopko || || || | || 13 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, [[Allena]], MaximByshevskiKonopko || || || |
Процессы, права доступа
Как кому разрешать и запрещать делать разные вещи. Дело вот в чём: ещё в линуксе обычный пользователь достаточно сильно поражён в правах. Говоря простым языком, он может изменять файлы в своём каталоге и свои файлы в /tmp. Ещё он может часть файлов читать, но не больше. Поскольку такова практика работы в linux, то почти любая программа должна работать от лица обычного пользователя, и тут не имеем проблем, свойственных Windows.
Есть три вида доступа:
- Чтение. Ознчает, что файл можно читать.
- Запись. Означает, что файл можно изменять.
- Использование, исполнение. Означает, что файл можно исполнять.
ls -l выведет права, количество имён у файла, пользователь, группу, размер, время изменения и имя файла. Первый символ в правах значает тип файла (- у обычных файлов, d у каталогов, другие символы у специальных файлов). Посмотри ls -l /bin/ | head. Можно увидеть, что файлы исполняемые.
Создадим файл MyExecutable с простым скриптом и ппробуем запустить его. Узреем, что отказано в доступе. Если скажем ls -l MyExecutable, то увидим, что у него нет бита исполнения. Если скажем chmod +x MyExecutable, то исполнение файла станет возможным. После того, как мы скажем chmod -r MyExecutable, то мы не сможем читать, но сможем писать: echo 'echo \'Hello?\' ' > MyExecutable.
Как работает эта программа? Как работают бинарные, понятно, а как она Hello вывела? Наверное, её выполнил shell. Он её выполнил, птому что он указан в первой строчке файла, после #!. По умолчанию используется (для текствых файлов, у которых эта первая строчка не указана) /bin/sh.
Более хитро три вида доступа устроено применительно к каталогам. Каталог это такой список файлов, где хранится имя файла и соответствующий ему индексный дескриптор. Когда мы обращаемся к файлу по имени, то мы неявно производим поиск по этой таблице соответствий, чтобы узнать, откуда с диска брть файл. Итак, права:
- Чтение из каталога --- доступ к списку файлов
- Запись в каталог --- изменить список файлов
- Использование каталога --- возможность получить доступ к файлу в каталоге
По принципу прав --1 делаются директории с именами файлов, известых только избранным.
Теперь разберёмся с ограничением доступа.
Вопрос: кто записывает файл, читает из файла? Вовсе не пользователь, как об этом некоторые думают, а процесс. Вся работа системы состоит в том, что процессы что-то делают с файлами. В каждый момент времени выполняется много процессов. Команда ps показывает список процессв, по умолчанию, привязанных к текущей консоли, -e --- все процессы, -f --- более полная информация. Каждому прцессу сответствует идентификатор процесса. Прцессы в квадратных скобках --- куски ядра, зарегистрированные как процессы (для того, чтобы им можно было посылать сингалы). Процессы порождают друг друга, поэтому в выдаче указан не только идентификатор процесса, но и его папы. Если родительский процесс умер, а сын живёт, то их усыновляет init.
Программы могут обмениваться разным способами, один из них --- сигналы. В программе kill -l приведён список всех сигналов, поддерживаемых ОС.
С данного терминала можно запускать много процессов, но только одна может занимать терминал --- foreground-процесс (по вводу один, по выводу много). Для запуска процесса в фоне ужно дописать в конце команды &. Если процесс в фоне, то можно его перевести в fg и убить, или сказать ps -H, посмотреть номер процесса и убить ненужный.
Почему групп прав три штуки?
Работа происходит следующим образом: после логина запускается логин шелл. Этому первому процессу присваивается id процесса и ему присваивается некий идентификатор пользователя, котрый зарегистрировался в системе. Все процессы обязательно принадлежат какому-то пользователю. Пользователь определяется по номеру (UID). То есть текстовый или графический логин при логине лезет в базу пользователей, проверяет пароль, создаёт новый процесс, меняет ему UID и выполняет шелл. Все файлы также принадлежат какому-то пользователю. Возникает сразу дихотомия, связанная вот с чем --- чей процесс осуществляет доступ к файлу? Процесс у них одинаковый или разный? Получается две категории уровня доступа: первый урвень доступа u --- какие права имеет пользователь по отношению к своему файлу. Третье (o) --- определяет, какие права имеют прцессы других пользователей. В такой дихотомии есть слабое звено, с которым часто приходится сталкиваться во время совместной работы --- если надо, чтобы одни имели доступ, а другие --- не имели. Для этого существует множественный субъект, группа пользователей. Для того, чтобы вводить сотношение между несколькими пользователями вместе и файлом, вводится понятие группа. Что такое группа? У каждого файла прописан не только пользователь, но и группа. Например, ls -ld /etc/tcb. Любой пользователь может принадлежать любому количеству групп. Эта информация отчасти лежит в файле /etc/passwd (основная группа). Инф о других вхождениях в группы есть в /etc/group. Для того, чтобы узнать, у кого каой id, мжно воспользоваться командой id.
Таким образом, мы получаем не два уровня доступа, а три, второй триплет (g) определяет права доступа для группы.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
13 |
1 |
1 |
1 |
|
1 |
|
|