linux-command

chmod (change mode)

Опубликовано

Права доступа хранятся в inode и занимают 2 байта(16 бит).

  • первые 4 бита хранят кодировку о типе файла.
  • следующие 3 задают особые свойства испоняемых фалов
  • оставшиеся 9 бит формируют права доступа. По 3 бита на каждую группу.

Устанавливать права можно как в текстовом, так и в числовом формате. Числовой формат лично мне кажется более простым, и он чаше используется. При установке в числовом формате каждой группе User, Group, Other присваивается итоговая сумма прав доступа. Rea d = 4, Write = 2, eXecute = 1.

Число 750 расшифровать можно как: Вадельцу разрешена 4+2+1, группе разрешено 4+1, а всем остальным доступ закрыт

chmod

Команда используется для изменения прав доступа к файлам.

флагзначение
-cСообщает о всех файлах которые успешно изменены
-fНе выдавать сообщения о тех файлах, которые не удаётся отредактировать
-vПодробный вывод процесса
-RРекурсивное обход для всех директорий и файлов.
  1. При числовом формате изменения прав
chmod -c myfolder 700
  1. При буквенном
chmod -c -u+rwx myfolder

Сначала устанавливаем группу (-u — владелец, -g — группа, -o — другие). После ставим флаг действия(+ или ) добавляем права или убираем. И только потом перечисляем права над которыми мы совершаем действия(rwx).

Установка прав для новых файлов

Изначально при создании нового файла его могут изменять все и вся! То есть его права 777. Однако если вы создадите новый каталог.

mkdir temp

и посмотрите на его права доступа

stat temp

Вы увидите что некоторые ограничения система всё-таки поставила. Всё дело в маске которая накладывается на права 777, отсекая ненужное.

введите команду

umask

Вы должны увидеть четыре числа, например

0022

Это говорит о что, что при создании файла из прав 777 вычитается 022, таким образом у файла будут права 755. Ограничивая группе и остальным пользователям записывать информацию, если это файл и задавать новые права, если это каталог.

итоговое значение маски

маскафайлдиректория
0read writeread write executex
1read writeread write
2readread execute
3readread
4writewrite execute
5writewrite
6execute
7

Смена маски

Первый способ самый простой. Действуя от имени пользователя, чтобы установить маску по умолчанию — использовать команду umask

umask 0037

новые файлы будут создаваться с правами 740.

Но при следующем запуске терминала, установленные права сбросятся. Поэтому это решение только одной сессии.

Второй способ — это установить маску всем пользователям открывающим shell. Для этого вам необходимо открыть файл /etc/profile

nano /etc/profile

и в конце файла добавить

umask 077

в директории /etc/procfile.d можно создать скрипты, которые будут выполняться при каждом запуске shell

И третий способ, это устновить маску по умолчанию конкретному пользователю. Для этого перейдите в домашний каталог конкретного пользователя и найдите в нём системный файл .bashrc — это файл настроек, которые подгружаются в момент запуска терминала. Введите команду

nano .bashrc

и в самом конце файла добавьте строку

umask 0077

Чтобы изменения вступили в силу перезапустите терминал или введите комаду для повторного считывания настроек файла .bashrc.

source .bashrc
  • добавьте в файл .bashrc следующие строки
export HISTCONTROL=ignoredups # игнорировать дубликаты в истории
export HISTSIZE=1000 # размер истории
alias l.='ls -d .* --color=auto' # вывести все скрытые файлы
  • Создайте папку music_library, в которую все пользователи группы hogwarts могли бы сохранять файлы и просматривать файлы других пользователей, но удалять чужие файлы запрещается. 

Вам так же может пригодиться

Добавить комментарий

Ваш адрес email не будет опубликован.