Установка разрешения группы на каталоге

Отвечать на вопрос в предмете:

Когда каталог B создается в Unix, он добавляется как новая запись в другой каталог A (его родительский каталог), и в B, две записи добавляются: один названный . как жесткая ссылка на себя и один названный .. как жесткая ссылка на A.

Это - единственные жесткие ссылки на позволенные каталоги (хотя некоторые более старые версии некоторых Нельдов действительно также позволяли произвольные ссылки).

вот почему с большинством файловых систем (btrfs будучи существенным исключением), количество links из каталога признак того, сколько подкаталогов он имеет (составление их .. записи).

Когда Вы переименовываете/перемещаете каталог, если это к тому же каталогу (под другим именем), только запись имени в A изменяется. B . и .. не затронут. Но если Вы перемещаетесь, это делает другой каталог, затем .. в B изменится. Это объясняет, почему можно переименовать каталог, на котором у Вас нет доступа для записи (предполагающий, что у Вас есть доступ для записи к родительскому каталогу), только, пока Вы не перемещаете его в другой каталог (иначе потребность измениться .. запись препятствует тому, чтобы Вы переместили его).

Остерегайтесь хотя: /a/b/../c не мог бы совпасть с /a/c потому что /a/b могла бы быть символьная ссылка на некоторый другой каталог.

Исключение к этому - когда тот путь дан cd управляйте к некоторым оболочкам. Они cds обработка .. логически игнорирование .. записи в каталогах. Причина, почему Вы часто видите cd -P в правильно записанных сценариях, для отключения той опции, которая могла иначе вызвать беспорядок и несоответствия.

Считать количество записей в текущем каталоге, исключая . и .. с bash, можно сделать:

shopt -s nullglob dotglob
set -- *
echo "$#"

С zsh:

f=(*(ND))
echo $#f

Портативно:

find . ! -name . -prune -print | grep -c /
5
28.10.2013, 00:55
1 ответ

Вместо того, чтобы унавоживать с полномочиями /var/log Я думаю, что пошел бы направление предоставления этих пользователей sudo права для ограниченного набора команд.

Установка sudo доступ

Можно создать псевдоним команды в /etc/sudoers файлы как так:

Cmnd_Alias RDONLY_VARLOG = tail /var/log/messages, tail /var/log/maillog, ...

Затем предоставьте пользовательский доступ к этому псевдониму команды, снова в /etc/sudoers файл.

# single user
user1    ALL = RDONLY_VARLOG

# group of users (group1)
%group1  ALL = RDONLY_VARLOG
2
27.01.2020, 20:42

Теги

Похожие вопросы