Linux Labs

Пользователи, права, процессы / Ступень 4 из 13

Общий каталог: setgid, sticky и umask

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 7 · на машине · 8 мин

Маска новых файлов

Почему у plan.txt запись была у группы, но не у остальных? Это решила маска процесса.

Программа, которая создаёт файл, просит права с запасом: rw-rw-rw- (666) для файла и rwxrwxrwx (777) для каталога. Маска процесса, umask, убирает из них лишние буквы. Записывают её цифрами, как режим, только цифра здесь значит «убрать»:

Маска Новый файл Новый каталог
002 rw-rw-r-- (664) rwxrwxr-x (775)
022 rw-r--r-- (644) rwxr-xr-x (755)

umask без аргументов печатает маску своей оболочки — у тебя 0002. Ведущий ноль можно не писать: umask 022 и umask 0022 значат одно и то же.

Проверь себя 1 вопрос

У процесса маска 027. Какие права получит файл, который он создаст?

  • Цифра 2 у группы убирает w: от rw- остаётся r--. Проверь: bash -c 'umask 027; touch m.txt', затем ls -l m.txt.

  • Так выходит с маской 022. Цифра 7 у остальных убирает все три буквы — остаётся ---.

  • Так выйдет у нового каталога: он начинает с 777. Файл начинает с 666, и x в нём нет ни у кого — маска его не добавляет.

Из запрошенных 666 маска 027 убирает w у группы и всё у остальных: остаётся 640, rw-r-----. Проверь в отдельной оболочке: bash -c 'umask 027; touch m.txt', затем ls -l m.txt.

Маску процесс получает от родителя, как и группы: umask 022, набранная в терминале, действует в этой оболочке до выхода из неё.

Начальную маску задаёт вход в систему: Ubuntu ставит 0002 пользователю с личной группой. Строка umask 022 в ~/.profile меняет маску при входе — этот файл читает оболочка входа. sudo -u alice оболочку входа не запускает и ~/.profile не читает, а sudo -iu alice запускает: так работает и настоящий вход alice.

Упражнение · посмотреть

Создай файл от alice двумя способами

В конце ~/.profile у alice стоит строка umask 022. Создай в /srv/team файл от alice через sudo -u и через sudo -iu, потом сравни их в ls -l.

Сначала предположи

Какие права ls -l покажет у a2.txt — файла от sudo -iu alice?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Ubuntu 24.04
Загрузка…