Что такое umask и как установить права на файл или директорию
Очередной пост из серии: всегда хотел это понять, … Подглядел вот здесь, довольно легкое и доходчивое объяснение того, как посчитать umask, если знаешь какие права в итоге должен иметь твой файл или директория. Как правило, при администрировании Linux систем, больше приходится сталкиваться с фактическими правами, а вот с umask возникают некоторые трудности. Автор оригинальной статьи сам немного запутался, но я все исправил.
Как установить umask по умолчанию?
Узнать текущее значение вашей umask можно просто:
$ umask $ 0022
Umask для всех пользователей по умолчанию устанавливается в файлах /etc/.bashrc или /etc/.profile. После процедуры начальной инсталляции Linux он равен 0022 (022) или 0002 (002).
Просто добавьте или измените строку с umask:
umask 022
Изменения вступят в силу при следующем входе.
Что такое 0022 и 0002?
По умолчанию umask 0002 используется для обычного пользователя. С этой маской права по умолчанию, для директории, равны 775, а для файла 664.
Для суперпользователя (root) umask по умолчанию равен 0022. С этой маской права по умолчанию, для директории, равны 755, а для файла 644.
Базовые права для директорий, это 0777 (rwxrwxrwx) и для файлов 0666 (rw-rw-rw).
Как посчитать (определить) права файла для маски 022 (пользователь root):
Права по умолчанию: 666
Вычитаемое значение umask: 022 (-)
Итоговые права: 644
Как посчитать (определить) права директории для маски 022 (пользователь root):
Права по умолчанию: 777
Вычитаемое значение umask: 022 (-)
Итоговые права: 755
Вывод
Таким образом umask «отбирает» необходимые права в нужных разрядах: 7-ка полностью все, 2-ка права на запись, 0 оставляет по умолчанию. По-моему очень просто и понятно.
К примеру вот такие команды:
$ umask 077 $ touch file.txt $ ls -l file.txt
приведут к такому результату:
-rw------- 1 hb hb 0 2010-02-19 05:21 file.txt
И напоследок, пример umask с различными (наиболее часто используемыми) значениями и результирующие (итоговые) права:
| Значение umask | User | Group | Others |
|---|---|---|---|
| 0000 | all | all | all |
| 0007 | all | all | none |
| 0027 | all | r | none |
| 0077 | all | none | none |
Как сделать по отдельным пользователям права по умолчанию 775 при созданий папки или файла.
это profile пользователя. Что тут нужно сделать ? Ведь почти все закомментированно.
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. «$HOME/.bashrc»
fi
fi
# set PATH so it includes user’s private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH=»$HOME/bin:$PATH»
fi
в ~/.profile добавить строку:
umask 002
[...] 19 фев 2010 – Что такое umask и как установить права на файл или директорию. Очередной пост из серии: всегда хотел это понять, … Подглядел вот … Перейти на сайт [...]