Umask Linux Pro
Оглавление:
В операционных системах Linux и Unix все новые файлы создаются с набором разрешений по умолчанию. Утилита
umask
позволяет вам просматривать или устанавливать маску создания режима файла, которая определяет биты прав доступа для вновь создаваемых файлов или каталогов.
Он используется командами mkdir, touch, tee и другими, которые создают новые файлы и каталоги.
Разрешения Linux
Прежде чем идти дальше, давайте кратко объясним модель разрешений Linux.
В Linux каждый файл связан с владельцем и группой и ему назначены права доступа для трех разных классов пользователей:
- владелец файла. участники группы. все остальные.
Существует три типа разрешений, которые применяются к каждому классу:
- разрешение на чтение. разрешение на запись. разрешение на выполнение.
Эта концепция позволяет вам указать, каким пользователям разрешено читать файл, записывать в файл или выполнять файл.
Чтобы просмотреть права доступа к файлу, используйте команду
ls
:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
Первый символ представляет тип файла, который может быть обычным файлом (
-
), каталогом (
d
), символической ссылкой (
l
) или любым другим специальным типом файла.
Следующие девять символов представляют разрешения, три набора по три символа в каждом. Первый набор показывает права владельца, второй - права группы, а последний набор - права доступа для всех остальных.
Символ
r
с восьмеричным значением
4
обозначает чтение,
w
с восьмеричным значением
2
для записи,
x
с восьмеричным значением
1
для разрешения на выполнение и (
-
) с восьмеричным значением
0
для отсутствия разрешений.
Есть также три других специальных типа прав доступа к файлам:
setuid
,
setgid
и
Sticky Bit
.
В приведенном выше примере (
rwxr-xr-x
) означает, что владелец имеет разрешения на чтение, запись и выполнение (
rwx
), группа и другие пользователи имеют разрешения на чтение и выполнение.
Если мы представим права доступа к файлу с помощью числовой записи, мы подойдем к числу
755
:
- Владелец:
rwx=4+2+1 = 7Группа:rx=4+0+1 = 5Другое:rx=4+0+1 = 5
Когда они представлены в цифровом формате, разрешения могут иметь три или четыре восьмеричных цифры (0-7). Первая цифра представляет специальные разрешения, а если она опущена, это означает, что никаких специальных разрешений для файла не установлено. В нашем случае
755
совпадает с
0755
. Первая цифра может быть комбинацией
4
для
setuid
,
2
для
setgid
и
1
для
Sticky Bit
.
Права доступа к файлам можно изменить с помощью команды
chmod
а владельца - с помощью команды
chown
.
Понимание масок
По умолчанию в системах Linux разрешения на создание по умолчанию составляют
666
для файлов, что дает права на чтение и запись для пользователя, группы и других пользователей, и
777
для каталогов, что означает разрешение на чтение, запись и выполнение для пользователя, группы и другие. Linux не позволяет создавать файл с разрешениями на выполнение.
Разрешения на создание по умолчанию можно изменить с помощью утилиты
umask
.
umask
влияет только на текущую оболочку. В большинстве дистрибутивов Linux значение umask по умолчанию для всей системы устанавливается в
pam_umask.so
или
/etc/profile
.
Чтобы просмотреть текущее значение маски, просто введите
umask
без аргументов:
umask
Выход будет включать
022
Значение
umask
содержит биты прав доступа, которые НЕ будут установлены во вновь создаваемых файлах и каталогах.
Как мы уже упоминали, разрешения на создание файлов по умолчанию -
666
а для каталогов -
777
. Чтобы вычислить биты прав доступа для новых файлов, вычтите значение umask из значения по умолчанию.
Например, чтобы рассчитать, как
uname 022
повлияет на вновь созданные файлы и каталоги, используйте:
- Файлы:
666 - 022 = 644. Владелец может читать и изменять файлы. Группа и другие могут только читать файлы. Каталоги:777 - 022 = 755755. Владелец может перейти в каталог и перечислить чтение, изменение, создание или удаление файлов в каталоге. Группа и другие могутcdв каталог и перечислить и прочитать файлы.
Вы также можете отобразить значение маски в символической записи, используя опцию
-S
:
umask -S
u=rwx, g=rx, o=rx
В отличие от числовой записи, значение символической записи содержит биты прав доступа, которые будут установлены во вновь создаваемых файлах и каталогах.
Установка значения маски
Маска создания файла может быть установлена с использованием восьмеричной или символической записи. Чтобы сделать изменения постоянными, установите новое значение
umask
в глобальном файле конфигурации, таком как
/etc/profile
который будет влиять на всех пользователей, или в файлах конфигурации оболочки пользователя, таких как
~/.profile
,
~/.bashrc
или
~/.zshrc
которые повлияет только на пользователя. Пользовательские файлы имеют приоритет над глобальными файлами.
Прежде чем вносить изменения в значение
umask
убедитесь, что новое значение не представляет потенциальной угрозы безопасности. Значения менее ограничительные, чем
022
следует использовать с большой осторожностью. Например,
umask 000
означает, что любой пользователь будет иметь права на чтение, запись и выполнение для всех вновь создаваемых файлов.
Допустим, мы хотим установить более строгие разрешения для вновь создаваемых файлов и каталогов, чтобы другие не могли
cd
в каталоги и читать файлы. Разрешения, которые мы хотим, -
750
для каталогов и
640
для файлов.
Чтобы вычислить значение
umask
просто вычтите нужные разрешения из значений по умолчанию:
Значение
777-750 = 027
:
777-750 = 027
Желаемое значение
umask
представленное в числовой записи, равно
027
.
Чтобы навсегда установить новое значение для всей системы, откройте файл
/etc/profile
текстовом редакторе:
sudo nano /etc/profile
и измените или добавьте следующую строку в начале файла:
/ И т.д. / профиль
umask 027
Чтобы изменения вступили в силу, выполните следующую
source
команду или выйдите из системы и войдите в систему:
source /etc/profile
Для проверки новых настроек мы создадим один новый файл и каталог с помощью
mkdir
и
touch
:
mkdir newdir
touch newfile
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
Другой способ установить маску создания файла - использовать символическую запись. Например,
umask u=rwx, g=rx, o=
совпадает с
umask 027
.
Вывод
В этом руководстве мы объяснили права доступа Linux и как использовать команду
umask
для установки битов прав доступа для вновь создаваемых файлов или каталогов.
Для получения дополнительной информации наберите
man umask
в своем терминале.
Команда Chmod в Linux (права доступа к файлам)
В Linux доступ к файлам управляется через права доступа к файлам, атрибуты и права собственности. В этом руководстве рассказывается, как использовать команду chmod для изменения прав доступа к файлам и каталогам.
Команда Chgrp в Linux (сменить группу)
В Linux каждый файл связан с владельцем и группой и имеет разрешения, которые определяют, какие пользователи могут читать, записывать или выполнять файл. Команда chgrpc меняет групповое владение данными файлами.
Команда cp в linux (копирование файлов)
cp - утилита командной строки для копирования файлов и каталогов в системах Unix и Linux.







