4

Это с коробкой freenas (FreeNAS-9.3-STABLE-201506292130).

В Linux на основе Debian обычно есть разрешения по умолчанию 644/755 для файлов / каталогов (сейчас 664/775?). Насколько я понимаю, это происходит потому, что для umask установлено значение 022 или 002, которое определяет разрешения по умолчанию для создания новых файлов. Однако в freenas (разрешения в стиле Windows ACL) создание файла по умолчанию просто наследует права доступа к каталогу. Я вижу со страницы руководства setfacl

setfacl(1) справочная страница

что есть флаг наследования. Тем не менее, я ищу больше по умолчанию, а не наследования. Есть ли способ изменить это, чтобы поведение создания было ближе к тому, что делается в системах на основе Debian? То есть я хочу, чтобы файлы были 644, а каталоги 755. Я не хочу, чтобы вновь созданные файлы просто забрали 755 разрешений, потому что каталог как эти разрешения.

Я ломал голову, пытаясь заставить что-то работать. В настоящее время я использую списки управления доступом NFSv4 и получаю сообщение об ошибке «несоответствие брендинга», когда пытаюсь использовать списки управления доступом POSIX, поэтому я придерживался того, что я могу, с командами в стиле windows, freenas, freebsd, NFSv4, setfacl/getfacl, и я не смог получить вышеуказанное поведение от всего, что я пытаюсь.

$ mkdir test
$ cd test
$ ls -lat
drwxr-xr-x+  2 user  user   2 Aug  1 12:40 . 
drwxr-xr-x+ 67 user  user  67 Aug  1 12:40 ..
$ touch testfile
$ ls -lat
drwxr-xr-x+  2 user  user   3 Aug  1 12:40 .
-rwxr-xr-x+  1 user  user   0 Aug  1 12:40 testfile
drwxr-xr-x+ 67 user  user  67 Aug  1 12:40 ..
# file: .
# owner: user
# group: user
            owner@:rwxpDdaARWcCos:fd----:allow
            group@:r-x---a-R-c--s:fd----:allow
         everyone@:r-x---a-R-c--s:fd----:allow
$ getfacl testfile
# file: testfile
# owner: user
# group: user
            owner@:rwxpDdaARWcCos:------:allow
            group@:r-x---a-R-c--s:------:allow
         everyone@:r-x---a-R-c--s:------:allow

1 ответ1

1

В списках ACL для NFSv4 нет списка ACL по умолчанию. Тем не менее, вы имеете точный контроль над тем, что наследуется и чем. В частности, вы можете добавить ACE, которые будут наследоваться файлами, и другой набор, который может быть унаследован каталогами. Вот так - первые три будут применяться к каталогам, следующие три - к файлам. Обратите внимание, что каталоги будут наследовать оба, но записи "file" будут иметь установленный флаг "i" (inherit_only), поэтому они не будут применяться к самому каталогу - они существуют только для наследования файлами в каталогах. Итак, это ACL в родительском каталоге:

        owner@:rwxp----------:-di----:allow
        group@:r-x-----------:-di----:allow
     everyone@:r-x-----------:-di----:allow
        owner@:rw-p----------:f-i----:allow
        group@:r-------------:f-i----:allow
     everyone@:r-------------:f-i----:allow
        owner@:rwxp--aARWcCos:-------:allow
        group@:r-x---a-R-c--s:-------:allow
     everyone@:r-x---a-R-c--s:-------:allow

Это то, что будет наследоваться файлами (флаг 'I' означает, что запись была унаследована; ее не было до FreeBSD 11-CURRENT):

        owner@:rw-p----------:------I:allow
        group@:r-------------:------I:allow
     everyone@:r-------------:------I:allow

Это то, что будет унаследовано каталогами (флаг «i» означает «inherit_only» - ACE есть, но он не влияет на фактические права доступа к нему; он только наследуется):

        owner@:rwxp----------:-d----I:allow
        group@:r-x-----------:-d----I:allow
     everyone@:r-x-----------:-d----I:allow
        owner@:rw-p----------:f-i---I:allow
        group@:r-------------:f-i---I:allow
     everyone@:r-------------:f-i---I:allow

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