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

6085

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

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

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

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

~ / Бла

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

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

Кто-нибудь?

2

5 ответов на вопрос

3
Pascal Thivent

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

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.

Я думаю, что OP ищет настройки типа umask, которые применяются только к определенной папке Peter van der Heijden 14 лет назад 1
1
Dirk Eddelbuettel

Задавать

umask 006 

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

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

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

0
Chen Levy

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

0

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

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

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

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

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

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