Я пытаюсь дать конкретному пользователю (например, «test») право читать любой новый созданный каталог. Я делаю это с помощью:
undefine@undefine-ThinkPad-T430s:~/test$ getfacl .
# file: .
# owner: undefine
# group: undefine
user::rwx
group::rwx
other::r-x
undefine@undefine-ThinkPad-T430s:~/test$ setfacl -d -m u:test:rX .
undefine@undefine-ThinkPad-T430s:~/test$ getfacl .
# file: .
# owner: undefine
# group: undefine
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:test:r-x
default:group::rwx
default:mask::rwx
default:other::r-x
Затем - когда я создаю новый каталог с помощью команды mkdir - он отлично работает:
undefine@undefine-ThinkPad-T430s:~/test$ mkdir testa
undefine@undefine-ThinkPad-T430s:~/test$ getfacl testa
# file: testa
# owner: undefine
# group: undefine
user::rwx
user:test:r-x
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:test:r-x
default:group::rwx
default:mask::rwx
default:other::r-x
Но - если я создаю новый режим принудительного использования каталога - действующие права пусты:
undefine@undefine-ThinkPad-T430s:~/test$ mkdir -m 700 testb
undefine@undefine-ThinkPad-T430s:~/test$ getfacl testb
# file: testb
# owner: undefine
# group: undefine
user::rwx
user:test:r-x #effective:---
group::rwx #effective:---
mask::---
other::---
default:user::rwx
default:user:test:r-x
default:group::rwx
default:mask::rwx
default:other::r-x
И тестовый пользователь не может читать файлы в каталоге.
Есть ли способ избежать этого и дать «тестирующему» пользователю право читать содержимое каталога независимо от режима, используемого при создании каталога? Я могу обойти это, используя задание incron, которое «исправляет» разрешения после создания каталога - но это грязный хакер, и я хотел бы сделать это «правильно»
Настоящая проблема у меня возникла в системе докеров, где dockerd создает себе каталоги в каталоге / var / lib / docker / container в режиме 0700.
У вас есть пример разрешений, которые вы даете папке при создании каталога с флагом «режим»? AFAIK, разрешения ACL сочетаются с «обычными» разрешениями на файлы (chmod). Но права доступа к файлам заменяют разрешения ACL. Мне удалось воспроизвести то, что вы объясняли, создав папку с разрешениями ACL ниже, чем разрешения для папки.
В качестве альтернативы можно ли использовать umask?
test@shell-server:~$ getfacl .
# file: .
# owner: test
# group: test
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:test:r-x
default:group::r-x
default:mask::r-x
default:other::r-x
test@server:~$ mkdir -m 0100 dir3
test@server:~$ getfacl dir3/
# file: dir3/
# owner: test
# group: test
user::--x
user:test:r-x #effective:---
group::r-x #effective:---
mask::---
other::---
default:user::rwx
default:user:test:r-x
default:group::r-x
default:mask::r-x
default:other::r-x
Кроме того, глядя на «другие» разрешения для этой папки, ваш «тестовый» пользователь должен иметь доступ для чтения и изменения в этом каталоге (r-x)? Разве это не так?
undefine@undefine-ThinkPad-T430s:~/test$ getfacl .
# file: .
# owner: undefine
# group: undefine
user::rwx
group::rwx
other::r-x