Điểm:0

ACL tệp Linux không được lưu giữ khi sử dụng Docker cho các tệp/vùng chứa mới được tạo bởi Docker daemon

lá cờ cn

Tôi đang cố cấp quyền đọc cho nhóm đám mây grafana đến các tập tin dưới /var/lib/docker/container:

#> ls /var/lib/docker/containers/ | đầu -n1
0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4

#> setfacl -Rdm g:grafana-agent:rx /var/lib/docker/containers
#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers

Thực thi đoạn mã này, nó sẽ cấp quyền cho tất cả các tệp và thư mục đã tồn tại.

#> getfacl /var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
getfacl: Xóa '/' hàng đầu khỏi tên đường dẫn tuyệt đối
# tệp: var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
# chủ sở hữu: root
# nhóm: root
người dùng::rwx
tập đoàn::---
nhóm:grafana-agent:r-x
mặt nạ::r-x
khác::---
mặc định:người dùng::rwx
mặc định:nhóm::---
mặc định: nhóm: grafana-agent: r-x
mặc định:mặt nạ::r-x
mặc định:khác::---

Nếu tôi tạo một tệp hoặc thư mục mới bên trong /var/lib/docker/container, acls được lưu giữ chính xác:

#> mkdir /var/lib/docker/containers/foo
#> getfacl /var/lib/docker/containers/foo
getfacl: Xóa '/' hàng đầu khỏi tên đường dẫn tuyệt đối
# tập tin: var/lib/docker/containers/foo
# chủ sở hữu: root
# nhóm: root
người dùng::rwx
tập đoàn::---
nhóm:grafana-agent:r-x
mặt nạ::r-x
khác::---
mặc định:người dùng::rwx
mặc định:nhóm::---
mặc định: nhóm: grafana-agent: r-x
mặc định:mặt nạ::r-x
mặc định:khác::---

Sự cố xảy ra khi một vùng chứa mới được tạo, trong đó acls dường như không được áp dụng như tôi mong đợi:

#> docker run -d busybox
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
getfacl: Xóa '/' hàng đầu khỏi tên đường dẫn tuyệt đối
# tập tin: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
# chủ sở hữu: root
# nhóm: root
người dùng::rwx
tập đoàn::---
nhóm:grafana-agent:r-x #hiệu quả:---
mặt nạ::---
khác::---
mặc định:người dùng::rwx
mặc định:nhóm::---
mặc định: nhóm: grafana-agent: r-x
mặc định:mặt nạ::r-x
mặc định:khác::---

#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
ls: không thể mở thư mục '/var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/': Quyền bị từ chối

Nếu bây giờ tôi chạy lại lệnh setfacl, các acls được áp dụng cho cây tệp vùng chứa mới và người dùng có thể đọc các tệp:

#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8-json.log điểm kiểm tra config.v2.json hostconfig.json tên máy chủ lưu trữ gắn kết độ phân giải.conf độ phân giải.conf.hash
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
getfacl: Xóa '/' hàng đầu khỏi tên đường dẫn tuyệt đối
# tệp: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
# chủ sở hữu: root
# nhóm: root
người dùng::rwx
người dùng: grafana-agent: r-x
tập đoàn::---
nhóm:grafana-agent:r-x
mặt nạ::r-x
khác::---
mặc định:người dùng::rwx
mặc định: người dùng: grafana-agent: r-x
mặc định:nhóm::---
mặc định: nhóm: grafana-agent: r-x
mặc định:mặt nạ::r-x
mặc định:khác::---

Có điều gì sai trong quy trình của tôi không? Có vẻ như acls không được áp dụng ngay từ đầu như chúng ta có thể đọc #có hiệu lực:--- bên cạnh các grafana-đại lý người dùng, nhưng tôi không thể tìm thấy bất kỳ Tôi đã thử cấp acls cho người dùng thay vì nhóm có cùng kết quả.

Cảm ơn bạn.

Điểm:1
lá cờ tv

ACL chỉ mở rộng các quyền POSIX tiêu chuẩn. Các có hiệu lực phép ở đây là --- vì quyền POSIX cho nhóm là --- và mặt nạ ACL (mặc định) cũng là ---.

Thay vào đó, bạn có thể làm như sau:

  1. Thay đổi quyền sở hữu của thư mục: ví dụ: chown root:grafana-agent /var/lib/docker/containers
  2. Đặt quyền của nó với S bit sao cho tất cả các tệp (và thư mục) mới được tạo bên trong sẽ thuộc về cùng một nhóm là chủ sở hữu của thư mục: ví dụ: chmod g+rs /var/lib/docker/container

Bạn có thể cần thay đổi quyền của nhóm đối với /var/lib/docker quá: chmod o+x /var/lib/docker (điều này sẽ cho phép mọi người dùng "khác" liệt kê các tệp trong thư mục và do đó truy cập vào hộp đựng thư mục con)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.