- •Введение
- •Лабораторная работа 1.
- •Регистрация пользователя в системе
- •Выход из системы
- •Выполнение простых команд
- •Группирование команд
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Литература
- •5.3. Задание для самостоятельной работы
- •5.4. Контрольные вопросы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Формат файла /etc/passwd
- •Формат файла /etc/shadow
- •Формат файла /etc/group
- •Создание нового пользователя
- •Переключение между пользователями
- •Файлы инициализации пользователей
- •Файлы, регламентирующие работу пользователей
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •9.3. Права доступа к каталогам
- •9.4. Смена прав доступа на файлы
- •9.5. Маска на вновь создаваемые файлы
- •9.6. Дополнительные атрибуты файла
- •9.7. Списки управления доступом
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •10.3. Метасимволы или шаблоны
- •10.4. История команд
- •10.5. Псевдонимы
- •10.6. Перенаправление ввода и вывода
- •10.7. Конвейеры
- •10.8. Приглашение ко вводу
- •10.9. Сценарии оболочки
- •10.10. Задания для самостоятельной работы
- •10.11. Контрольные вопросы
- •11.3. Системный вызов open()
- •11.4. Системный вызов read()
- •11.5. Системный вызов write()
- •11.6. Системный вызов lseek()
- •11.7. Системный вызов close()
- •11.8. Задания для самостоятельной работы
- •11.9. Контрольные вопросы
- •12.3. Системный вызов fork
- •12.4. Системный вызов exit
- •12.5. Системный вызов wait
- •12.6. Системный вызов exec
- •12.7. Системные вызовы наследования пользовательских дескрипторов файла
- •12.8. Задания для самостоятельной работы
- •12.9. Контрольные вопросы
- •13.3. Системный вызов signal
- •13.4. Системный вызов pause
- •13.5. Системный вызов alarm
- •13.6. Управление непредусмотренными событиями
- •13.7. Неименованные каналы
- •13.8. Именованные каналы
- •13.9. Задания для самостоятельной работы
- •13.10. Контрольные вопросы
- •Литература
- •Заключение
- •Учебное издание
- •Системное программирование Лабораторный практикум
Переключение между пользователями
В ОС Linux для того чтобы переключаться между пользователями не требуется всякий раз выходить из системы и регистрироваться в ней заново. В процессе работы пользователь может изменить имя регистрации (открыть новый сеанс работы в системе, не завершая старый) или изменить свою группу. В таблице 8.7 представлены команды переключения между пользователями.
Таблица 8.7
Команды для переключения между пользователями
Команда |
Описание |
su username |
Переключение на пользователя username. |
su - username |
Переключение на пользователя username с загрузкой его переменных окружения. |
id |
Возвращает идентификатор пользователя. |
who |
Список пользователей, находящихся сейчас в системе. |
whoami |
Возвращает эффективный идентификатор пользователя, то есть username от имени которого в данном shell выполняются команды. |
who am i |
Возвращает первоначальный username, под которым пользователь вошел в систему. |
newgrp |
Переключение группы пользователя. |
last |
Вывод информации о том кто был в системе. |
whodo |
Пользователи и их процессы. |
logins -x -l имя_пользователя |
Мониторинг деятельности пользователей. |
logins -p |
Выявление пользователей, не имеющих паролей. |
exit |
Выход. |
Если по какой-то причине необходимо запретить вход пользователей в систему, то для этого суперпользователь может создать файл /etс/nologin. В этом файле можно написать сообщение, которое будет выводиться пользователю при его входе в систему.
Пример. Команда $su root позволяет переключиться на пользователя root.
Файлы инициализации пользователей
При входе пользователя в систему, в зависимости от того какой shell установлен для пользователя в качестве login-shell, запускаются различные файлы инициализации, которые представлены в таблице 8.8.
Таблица 8.8
Файлы инициализации для shell
Shell |
Файлы инициализации |
Bourne |
$HOME/.profile |
C |
$HOME/.cshrc $HOME/.login |
Korn |
$HOME/.profile $HOME/$ENV |
Bash |
$HOME/.profile $HOME/.bashrc |
Пример файла инициализации .profile
PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/ccs/bin:.
MANPATH=/usr/share/man:/usr/local/man
umask 022
export PATH МANРАТН
Файлы, регламентирующие работу пользователей
В ОС присутствует несколько конфигурационных файлов, регламентирующих работу пользователей в системе. Они представлены в следующей таблице 8.9.
Таблица 8.9
Ограничения для пользователей
Shell |
Файлы инициализации |
/etc/default/login |
Содержит ограничения на вход под пользователем root |
/etc/default/passwd |
Содержит ограничения на пароли пользователей |
/etc/default/su |
Настройки команды su |
Задания для самостоятельной работы
1. Определите требования к минимальной длине пароля.
2. Определете UID пользователя sys
3. Определите домашний каталог пользователя root
4. Определите, какие пользователи принадлежат группе bin
5. Определите, принадлежит ли пользователь sys группе bin
6. Определите, принадлежит ли пользователь root группе other
7. Создайте нового пользователя c помощью утилиты admintool
Характеристики пользователя:
Username student1
UID 1001
GID 10
Home directory /home/student1
Login shell bash
8. Создайте нового пользователя с помощью утилиты usradd
Характеристики пользователя:
Username student 2
UID 1002
GID 10
Login shell /usr/bin/ksh
9. Установите личный каталог пользователю student2 с помощью команды usermod: /home/ student2
10. Задайте пароль пользователю student2 с помощью команды passwd
11. Создайте нового пользователя, редактируя файл /etc/passwd.
Характеристики пользователя:
Username student3
UID 1003
GID 10
Home directory /home/ student3
Login shell /usr/bin/ksh
12. Разбейтесь на пары. Войдите в другую систему удаленно ($telnet адрес-системы) под пользователем studentЗ. Выполните команду who на своей системе и на удаленной.
13. Попробуйте войти удаленно в систему под пользователем root. Определите, почему пользователь root не может войти в систему удаленно.
14. Для пользователя student3 установите новую переменную ORACLE_HOME=/space/ora так, чтобы она была доступна всем процессам, запускаемым этим пользователем.
15. Определите файл, в который записываются записи журнала аудита команды su