2015-10-23 2 views
0

У меня проблема с 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), но это не решает проблему.

Любые идеи?

ответ

1

Понял:

setfacl -Rm u:ts:rw,g:ts:rw /opt/transfer_station/webapp/logs 

setfacl -d только для каталогов. Мне пришлось удалить его, чтобы он работал:/

+0

-d - по умолчанию; в моем случае setfacl работает и сохраняется, но по умолчанию acl нет, это функционально для вас? – Doubidou