В этом упражнении вы будете управлять разрешениями для новых файлов, созданных в каталоге, используя настройки пользовательской маски и разрешение setgid.
Результаты
Вы сможете:
создать общий каталог, в котором владельцем новых файлов будет автоматически назначаться группа operators;
operators
поэкспериментировать с различными настройками пользовательской маски;
настроить разрешения по умолчанию для конкретных пользователей;
проверить правильность настройки.
Войдите на workstation как пользователь student с паролем student.
workstation
student
На workstation выполните команду lab perms-default start. Эта команда запускает подготовительный сценарий, который проверяет доступность хоста servera в сети. Сценарий также создает группу operators и пользователя operator1 на servera.
servera
operator1
[student@workstation ~]$ lab perms-default start
[student@workstation ~]$
lab perms-default start
С помощью команды ssh войдите на servera как пользователь student.
[student@workstation ~]$ ssh student@servera ...output omitted... [student@servera ~]$
ssh student@servera
[student@servera ~]$
С помощью команды su переключитесь на пользователя operator1, указав пароль redhat.
redhat
[student@servera ~]$ su - operator1 Password: redhat [operator1@servera ~]$
su - operator1
[operator1@servera ~]$
С помощью команды umask отобразите значение пользовательской маски по умолчанию для пользователя operator1.
[operator1@servera ~]$ umask 0002
umask
Создайте каталог с именем /tmp/shared. В каталоге /tmp/shared создайте файл с именем defaults. Просмотрите разрешения по умолчанию.
/tmp/shared
defaults
С помощью команды mkdir создайте каталог /tmp/shared. С помощью команды ls -ld отобразите список разрешений для нового каталога.
[operator1@servera ~]$ mkdir /tmp/shared [operator1@servera ~]$ ls -ld /tmp/shared drwxrwxr-x. 2 operator1 operator1 6 Feb 4 14:06 /tmp/shared
mkdir /tmp/shared
ls -ld /tmp/shared
С помощью команды touch создайте файл с именем defaults в каталоге /tmp/shared.
[operator1@servera ~]$ touch /tmp/shared/defaults
touch /tmp/shared/defaults
С помощью команды ls -l отобразите список разрешений для нового файла.
[operator1@servera ~]$ ls -l /tmp/shared/defaults -rw-rw-r--. 1 operator1 operator1 0 Feb 4 14:09 /tmp/shared/defaults
ls -l /tmp/shared/defaults
Измените группу-владельца каталога /tmp/shared на operators. Проверьте правильность нового владельца и разрешений.
С помощью команды chown измените группу-владельца каталога /tmp/shared на operators.
[operator1@servera ~]$ chown :operators /tmp/shared
chown :operators /tmp/shared
С помощью команды ls -ld отобразите список разрешений для каталога /tmp/shared.
[operator1@servera ~]$ ls -ld /tmp/shared drwxrwxr-x. 2 operator1 operators 22 Feb 4 14:09 /tmp/shared
С помощью команды touch создайте файл с именем group в каталоге /tmp/shared. С помощью команды ls -l отобразите список разрешений для файла.
group
[operator1@servera ~]$ touch /tmp/shared/group [operator1@servera ~]$ ls -l /tmp/shared/group -rw-rw-r--. 1 operator1 operator1 0 Feb 4 17:00 /tmp/shared/group
touch /tmp/shared/group
ls -l /tmp/shared/group
Группа-владелец файла /tmp/shared/group — не operators, а operator1.
/tmp/shared/group
Убедитесь, что файлы, созданные в каталоге /tmp/shared, принадлежат группе operators.
Используйте команду chmod, чтобы задать для каталога /tmp/shared группу-владельца operators.
[operator1@servera ~]$ chmod g+s /tmp/shared
chmod g+s /tmp/shared
С помощью команды touch создайте новый файл с именем operations_database.txt в каталоге /tmp/shared.
operations_database.txt
[operator1@servera ~]$ touch /tmp/shared/operations_database.txt
touch /tmp/shared/operations_database.txt
Используйте команду ls -l, чтобы убедиться, что группа operators является группой-владельцем нового файла.
[operator1@servera ~]$ ls -l /tmp/shared/operations_database.txt -rw-rw-r--. 1 operator1 operators 0 Feb 4 16:11 /tmp/shared/operations_database.txt
ls -l /tmp/shared/operations_database.txt
Создайте в каталоге /tmp/shared новый файл с именем operations_network.txt. Запишите владельца и разрешения. Измените пользовательскую маску для operator1. Создайте новый файл с именем operations_production.txt. Запишите владельца и разрешения для файла operations_production.txt.
operations_network.txt
пользовательскую маску
operations_production.txt
С помощью команды touch создайте файл с именем operations_network.txt в каталоге /tmp/shared.
[operator1@servera ~]$ touch /tmp/shared/operations_network.txt
touch /tmp/shared/operations_network.txt
С помощью команды ls -l отобразите список разрешений для файла operations_network.txt.
[operator1@servera ~]$ ls -l /tmp/shared/operations_network.txt -rw-rw-r--. 1 operator1 operators 5 Feb 0 15:43 /tmp/shared/operations_network.txt
ls -l /tmp/shared/operations_network.txt
С помощью команды umask измените маску для пользователя operator1 на 027. Выполните команду umask, чтобы подтвердить изменение.
[operator1@servera ~]$ umask 027 [operator1@servera ~]$ umask 0027
umask 027
С помощью команды touch создайте новый файл с именем operations_production.txt в каталоге /tmp/shared/. Используйте команду ls -l, чтобы убедиться, что новые файлы были созданы с доступом только на чтение для группы operators и без прав доступа для остальных пользователей.
/tmp/shared/
[operator1@servera ~]$ touch /tmp/shared/operations_production.txt [operator1@servera ~]$ ls -l /tmp/shared/operations_production.txt -rw-r-----. 1 operator1 operators 0 Feb 0 15:56 /tmp/shared/operations_production.txt
touch /tmp/shared/operations_production.txt
ls -l /tmp/shared/operations_production.txt
Откройте новое окно терминала и войдите на servera как пользователь operator1.
[student@workstation ~]$ ssh operator1@servera ...output omitted... [operator1@servera ~]$
ssh operator1@servera
Отобразите значение пользовательской маски для пользователя operator1.
Измените маску по умолчанию для пользователя operator1. Новая пользовательская маска запрещает любой доступ для пользователей, принадлежащих к другой группе. Убедитесь, что пользовательская маска была изменена.
С помощью команды echo измените маску по умолчанию для пользователя operator1 на 007.
[operator1@servera ~]$ echo "umask 007" >> ~/.bashrc [operator1@servera ~]$ cat ~/.bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions umask 007
echo "umask 007" >> ~/.bashrc
cat ~/.bashrc
umask 007
Выйдите и войдите снова как пользователь operator1. Выполните команду umask, чтобы убедиться, что изменение сохранилось.
[operator1@servera ~]$ exit logout Connection to servera closed. [student@workstation ~]$ ssh operator1@servera ...output omitted... [operator1@servera ~]$ umask 0007
exit
На servera выйдите из командных оболочек пользователей operator1 и student.
Необходимо выйти из всех командных оболочек, открытых от имени пользователя operator1. Если не сделать этого, финальный сценарий завершится ошибкой.
[operator1@servera ~]$ exit logout Connection to servera closed. [student@workstation ~]$
Конец
На workstation запустите сценарий lab perms-default finish, чтобы закончить упражнение.
[student@workstation ~]$ lab perms-default finish
lab perms-default finish
Упражнение завершено.