Как установить разрешения для папки в Unix / Linux Ubuntu

2

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

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

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

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

~ / Бла

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

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

Кто-нибудь?


источник

Ответы:

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, которая применяется только к определенной папке
Питер ван дер Хейден,
1

Задавать

umask 006 

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

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

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

Дирк Эддельбюттель
источник
0

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

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

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

источник
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

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

Чен Леви
источник