2

Это не обязательно прямой вопрос информатики, но он тесно связан.

Есть какой-либо способ сделать это.

Я использую Z Shell Zsh.

Я хочу настроить так, когда я нахожусь в папке

~/ Бла

Все, что я создаю, создано с использованием разрешений 770 (Весь доступ для меня и группы). В основном все, что я делаю в этой папке, должно иметь эти разрешения.

Кроме того, группа для этого файла должна быть сделана таким же образом. Но это тот же процесс, что и для разрешений.

Кто-нибудь?

5 ответов5

3

Нашел симпатичную статью на эту тему: что такое "умаск"?Как я могу установить это?

umask определяет разрешения, которые получит новый файл, или, что лучше, разрешения, которые он не получит.

[...]

Если вы хотите определить umask для определенного каталога (например: права на групповую запись для каталога, который вы используете вместе со своими колледжами), вы будете потеть при использовании команды umask, потому что она всегда действительна для всех каталогов.

Решением этой проблемы является установка ACL по умолчанию. Следующая команда гарантирует, что все новые файлы в /home/shared/ имеют все разрешения (включая разрешения на запись), установленные для группы:

setfacl -d -m mask:007 /home/shared/

Вы также должны установить бит sgid для каталога и выбрать нужную группу, используя chgrp:

chgrp the_team /home/shared/
chmod g+s /home/shared/

Если /home/shared/ уже содержит подкаталоги, вы также должны изменить их разрешения. Совет: все упомянутые команды знают опцию -R.

1

Задавать

umask 006 

в вашем ~/.bash_profile который отличается от значения по умолчанию 022. Также установлено

chgrp staff         # or some other group you pick
chmod g+s blah

включить липкий бит в каталоге. Теперь все, что вы создаете под ним, должно сохранять режимы и группу.

0

umask изменит разрешения по умолчанию для каждого файла и каталога, который вы создадите, но если вам нужно, чтобы это поведение было только для данного каталога, вы должны посмотреть списки управления доступом ACL, смотрите: man acl(5) для получения дополнительной информации.

0

Вы можете определить функцию chpwd(), которая будет запускаться каждый раз, когда изменяется cwd оболочки. Внутри протестируйте каталог и установите umask соответствующим образом.

function chpwd {
  [[ $PWD == $HOME/blah ]] && { umask 007; return }
  # or, if more tests here, use case $PWD in ... esac
  umask 022
}
0

Не забывайте, что файловая система должна быть смонтирована с флагом ' acl ', чтобы использовать списки контроля доступа. В противном случае команда setfacl вернет « Операция не поддерживается ».

Например, это запись в моем файле fstab (/etc/fstab):

# <file system>  <mount point>     <type>  <options>   <dump>  <pass>
/dev/sdb1        /media/DataDrive  ext3    acl         0       0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .