Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры еба!.doc
Скачиваний:
24
Добавлен:
23.12.2018
Размер:
631.3 Кб
Скачать

16. Команды unix для определения и изменения прав доступа группы (ls, chown, chgrp, newgrp).

Владельцем файла становится пользователь, создавший этот файл. Группой владельца по умолчанию становится основная группа регистрации пользователя. Для изменениявладельцев предназначена стандартная команда chown (change owner).

chown root /home/user/text.txt

-R – рекурсивно(для папок).

Однако в современных системах владельца файлов может изменять только привилегированный пользователь (root). У обычного пользователя существует возможность изменения только группы владельцев, и то лишь в пределах тех групп, в которые входит сам пользователь. Для изменения группы владельцев удобно использовать команду chgrp (change group).

Например, чтобы сделать группой владельцев каталога newdir группу student, можно

ввести:

chgrp student newdir

Существует возможность рекурсивного изменения владельцев для всех файлов и

подкаталогов заданного каталога. Для этого следует использовать ключ -R, например:

chgrp -R student newdir

Заметим, что вместо одного имени файла или каталога в приведенных командах можно

использовать множество имен, разделенных пробелами, или шаблоны имен файлов (это

относится и к большей части других команд Unix, принимающих имена файлов в качестве

последних аргументов).

Если вы принадлежите к нескольким группам, то вам может потребоваться перейти в другую группу, чтобы создаваемые вами файлы принадлежали ей. Для перехода в другую группу существует команда newgrp. Формат этой команды:

newgrp имя_группы

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

Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов - повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога.

-l — выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.

17. Понятие процесса в ос unix. Типы процессов. Атрибуты процесса. Жизненный цикл процесса. Получение информации о процессах.

Под процессом понимается копия выполняемой программы и ее окружение. Наиболее важное различие напрямую связано с понятием пользователя: каждый процесс выполняется с правами пользователя, который его запустил. Внутри себя система идентифицирует процессы по уникальному номеру, называемому идентификатором процесса или PID (proccess ID) . Из этого PID система знает, кто (т.е. какой пользователь) запустил процесс, некоторые части другой информации, и ей нужно только проверить достоверность процесса. Например, если пользователь будет иметь возможность открыть файл в режиме только для чтения, но не в режиме чтения-записи, т.к. его права доступа к файлу запрещают это. И опять же, исключением из этого правила является root.

Типы процессов

Системные процессы - являются частью ядра и всегда расположены в оперативной памяти. Системные процессы не имеют соответствующих им программ в виде исполняемых файлов и запускаются при инициализации ядра системы. Выполняемые инструкции и данные этих процессов находятся в ядре системы, таким образом, они могут вызывать функции и обращаться к данным, недоступным для остальных процессов.

Демоны - это неинтерактивные процессы, которые запускаются обычным образом — путем загрузки в память соответствующих им программ, и выполняются в фоновом режиме. Обычно демоны запускаются при инициализации системы и обеспечивают работу различных подсистем: системы терминального доступа, системы печати, почтовый сервер.

Прикладные (пользовательские) процессы. К прикладным процессам относятся все остальные процессы, выполняющиеся в системе. Как правило, это процессы, порожденные в рамках пользовательского сеанса работы. Например, команда ls породит соответствующий процесс этого типа. Важнейшим прикладным процессом является командный интерпретатор (shell), который обеспечивает вашу работу в LINUX. Он запускается сразу же после регистрации в системе. Прикладные процессы linux могут выполняться как в интерактивном, так и в фоновом режиме, но в любом случае время их жизни (и выполнения) ограничено сеансом работы пользователя. При выходе из системы все прикладные процессы будут уничтожены.

Атрибуты процесса.

* Идентификатор процесса (PID)

* Идентификатор родительского процесса (PPID).

* Реальный и эффективный идентификаторы пользователя (UID,EUID) и группы (GID, EGID). Реальные идентификаторы совпадают с идентификаторами пользователя, который запустил процесс, и группы, к которой он принадлежит. Эффективные - от чьего имени был запущен процесс.

* Приоритет или динамический приоритет (priority) и относительный или статический (nice) приоритет процесса.

Статический приоритет или nice-приоритет лежит в диапазоне от -20 до 19, по умолчанию используется значение 0. Значение –20 соответствует наиболее высокому приоритету, nice-приоритет не изменяется планировщиком, он наследуется от родителя или его указывает пользователь

Состояние процесса. В ОС Linux каждый процесс обязательно находится в состояний и может быть переведен из одного состояния в другое системой или командами пользователя. Различают следующее состояния процессов:

Жизненный цикл процесса.

Для того, чтобы появился новый процесс в unix сиcтеме, существующий процесс с помощью системного вызова fork клонирует себя. Но у вновь появившегося процесса есть отличия. У него свой PID и свои ресурсы. Новый процесс запускает новую программу с помощью системного вызова exec. При этом код процесса замещается кодом запускаемой программы. Когда процесс завершается, он сообщает об этом ядру. Передается целое число, указывающее причину завершения. В случае успешного завершения передается ноль. В unix системах завершение процесса должно быть подтверждено родительским процессом. Для этого ядро хранит код завершения процесса, пока родительский процесс его не запросит. В этот момент ядро не выделяет этому процессу процессорного времени, ресурсы освобождаются, но запись о процессе остается. Когда родительский процесс выполнит системный вызов wait, процесс будет завершен. В случае, если родительский процесс завершился раньше, то решение этой проблемы берет на себя процесс init. Он должен сам послать системный вызов wait и закрыть процесс. А вот когда он с этой задачей не справляется по какой-либо причине, то такой процесс убить нельзя. Только перезагрузкой сервера. Такие процессы называются зомби.

Получение информации о процессах.

Для того, чтобы пересмотреть список процессов, существует команда ps.

• a: выводит процессы, запущенные всеми пользователями;

• x: выводит процессы без управляющего терминала или с управляющим

терминалом, но отличающимся от используемого вами;

• u: выводит для каждого из процессов имя запустившего его

пользователя и время запуска.

Запуск ps без аргументов покажет только те процессы, что были запущены

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

Команда top показывает все процессы в системе в реальном времени.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]