У меня проблема с ACL в контейнере для докеров.Почему setfacl не работает в контейнере докеров?
Как вы можете видеть ниже, я устанавливаю разрешения на чтение/запись для пользователя «ts» на «/ opt/transfer_station/webapp/logs». Это работает для папки «/ opt/transfer_station/webapp/logs», но не для файла /opt/transfer_station/webapp/logs/debug.log. Почему это не работает?
[[email protected] logs]# setfacl -Rdm u:ts:rw,g:ts:rw /opt/transfer_station/webapp/logs
[[email protected] logs]# echo $?
0
[[email protected] logs]# getfacl /opt/transfer_station/webapp/logs
getfacl: Removing leading '/' from absolute path names
# file: opt/transfer_station/webapp/logs
# owner: apache
# group: apache
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:apache:rw-
default:user:ts:rw-
default:group::r-x
default:group:apache:rw-
default:group:ts:rw-
default:mask::rwx
default:other::r-x
[[email protected] logs]# getfacl /opt/transfer_station/webapp/logs/debug.log
getfacl: Removing leading '/' from absolute path names
# file: opt/transfer_station/webapp/logs/debug.log
# owner: root
# group: root
user::rw-
group::r--
other::r--
[[email protected] logs]# whoami
root
КПП. Я попробовал это с опцией докера OPTIONS = '- storage-driver = devicemapper' и без нее. SELinux находится в разрешающем режиме и поэтому ничего не блокирует.
Если я прикрепить к контейнеру, создать тестовый файл в папке, списки управления доступом наследуется как я ожидаю:
[[email protected] transfer_station]# touch webapp/logs/test
[[email protected] transfer_station]# getfacl webapp/logs/test
# file: webapp/logs/test
# owner: root
# group: root
user::rw-
user:apache:rw-
user:ts:rw-
group::r-x #effective:r--
group:apache:rw-
group:ts:rw-
mask::rw-
other::r--
Я бегу Centos 7.1 и Докер версии 1.7.1, построить 446ad9b/1,7 0,1.
Я также добавил CAP_FOWNER в контейнер (используя -cap-add = FOWNER), но это не решает проблему.
Любые идеи?
-d - по умолчанию; в моем случае setfacl работает и сохраняется, но по умолчанию acl нет, это функционально для вас? – Doubidou