Score:0

ไฟล์ ACL ของ Linux ไม่ถูกเก็บไว้โดยใช้ Docker สำหรับไฟล์/คอนเทนเนอร์ใหม่ที่สร้างโดย Docker daemon

ธง cn

ฉันกำลังพยายามให้สิทธิ์ในการอ่านแก่กลุ่ม กราฟาน่า-คลาวด์ ไปยังไฟล์ภายใต้ /var/lib/docker/คอนเทนเนอร์:

#> ls /var/lib/docker/containers/ | หัว -n1
0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4

#> setfacl -Rdm g:grafana-agent:rx /var/lib/docker/คอนเทนเนอร์
#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/คอนเทนเนอร์

การดำเนินการตามตัวอย่างนี้จะให้สิทธิ์แก่ไฟล์และโฟลเดอร์ทั้งหมดที่มีอยู่แล้ว

#> getfacl /var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
getfacl: การลบ '/' นำหน้าออกจากชื่อพาธสัมบูรณ์
# ไฟล์: var/lib/docker/containers/0515ccad974eb0e4577c7b35a0c517ab889db95d996e6188e9d0377cfa2265d4
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
กลุ่ม::---
group:grafana-agent:r-x
หน้ากาก::r-x
อื่นๆ::---
ค่าเริ่มต้น:ผู้ใช้::rwx
เริ่มต้น:กลุ่ม::---
ค่าเริ่มต้น:กลุ่ม:grafana-agent:r-x
ค่าเริ่มต้น:หน้ากาก::r-x
เริ่มต้น:อื่นๆ::---

หากฉันสร้างไฟล์หรือโฟลเดอร์ใหม่ภายใน /var/lib/docker/คอนเทนเนอร์, acls ถูกเก็บไว้อย่างถูกต้อง:

#> mkdir /var/lib/docker/containers/foo
#> getfacl /var/lib/docker/containers/foo
getfacl: การลบ '/' นำหน้าออกจากชื่อพาธสัมบูรณ์
# ไฟล์: var/lib/docker/containers/foo
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
กลุ่ม::---
group:grafana-agent:r-x
หน้ากาก::r-x
อื่นๆ::---
ค่าเริ่มต้น:ผู้ใช้::rwx
เริ่มต้น:กลุ่ม::---
ค่าเริ่มต้น:กลุ่ม:grafana-agent:r-x
ค่าเริ่มต้น:หน้ากาก::r-x
เริ่มต้น:อื่นๆ::---

ปัญหาเกิดขึ้นเมื่อสร้างคอนเทนเนอร์ใหม่โดยที่ acls ดูเหมือนว่าจะไม่ถูกนำไปใช้ตามที่ฉันคาดไว้:

#> นักเทียบท่าเรียกใช้ -d busybox
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
getfacl: การลบ '/' นำหน้าออกจากชื่อพาธสัมบูรณ์
# ไฟล์: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
กลุ่ม::---
กลุ่ม:grafana-ตัวแทน:r-x #มีประสิทธิภาพ:---
หน้ากาก::---
อื่นๆ::---
ค่าเริ่มต้น:ผู้ใช้::rwx
เริ่มต้น:กลุ่ม::---
ค่าเริ่มต้น:กลุ่ม:grafana-agent:r-x
ค่าเริ่มต้น:หน้ากาก::r-x
เริ่มต้น:อื่นๆ::---

#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
ls: ไม่สามารถเปิดไดเรกทอรี '/var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/': ปฏิเสธการอนุญาต

ถ้าตอนนี้ฉันรันคำสั่ง setfacl อีกครั้ง acls จะถูกนำไปใช้กับโครงสร้างไฟล์คอนเทนเนอร์ใหม่ และผู้ใช้สามารถอ่านไฟล์ได้:

#> setfacl -Rm g:grafana-agent:rx /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/
#> su - grafana-agent -c "ls /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8/"
70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8-json.log จุดตรวจ config.v2.json hostconfig.json ชื่อโฮสต์ โฮสต์เมานต์ resolv.conf resolv.conf.hash
#> getfacl /var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
getfacl: การลบ '/' นำหน้าออกจากชื่อพาธสัมบูรณ์
# ไฟล์: var/lib/docker/containers/70216a6debce117563d2273da01a1219edc9e1357864cde5026076548b7169e8
# เจ้าของ: root
# กลุ่ม: ราก
ผู้ใช้::rwx
ผู้ใช้:grafana-agent:r-x
กลุ่ม::---
group:grafana-agent:r-x
หน้ากาก::r-x
อื่นๆ::---
ค่าเริ่มต้น:ผู้ใช้::rwx
ค่าเริ่มต้น:ผู้ใช้:grafana-agent:r-x
เริ่มต้น:กลุ่ม::---
ค่าเริ่มต้น:กลุ่ม:grafana-agent:r-x
ค่าเริ่มต้น:หน้ากาก::r-x
เริ่มต้น:อื่นๆ::---

มีบางอย่างผิดปกติในกระบวนการของฉันหรือไม่? ดูเหมือนว่าจะไม่มีการใช้ acls ในครั้งแรกที่เราอ่านได้ #มีประสิทธิภาพ:--- ถัดจาก ตัวแทนกราฟาน่า ผู้ใช้ แต่ฉันไม่พบเลย ฉันได้ลองให้สิทธิ์ acls แก่ผู้ใช้แทนกลุ่มด้วยผลลัพธ์เดียวกัน

ขอขอบคุณ.

Score:1
ธง tv

ACL ขยายสิทธิ์ POSIX มาตรฐานเท่านั้น เดอะ มีประสิทธิภาพ อนุญาตนี่คือ --- เนื่องจากสิทธิ์ POSIX สำหรับกลุ่มคือ --- และหน้ากาก ACL (ค่าเริ่มต้น) ก็เช่นกัน ---.

คุณสามารถทำสิ่งต่อไปนี้แทน:

  1. เปลี่ยนความเป็นเจ้าของไดเร็กทอรี: เช่น chown root:grafana-agent /var/lib/docker/containers
  2. ตั้งค่าการอนุญาตด้วยไฟล์ ดังนั้นไฟล์ใหม่ทั้งหมด (และไดเร็กทอรี) ที่สร้างขึ้นภายในจะเป็นของกลุ่มเดียวกันซึ่งเป็นเจ้าของไดเร็กทอรี: เช่น chmod g+rs /var/lib/docker/containers

คุณอาจต้องเปลี่ยนสิทธิ์ของกลุ่มสำหรับ /var/lib/นักเทียบท่า ด้วย: chmod o+x /var/lib/docker (สิ่งนี้จะอนุญาตให้ผู้ใช้ "อื่น ๆ " ทุกคนแสดงรายการไฟล์ในไดเร็กทอรีและเข้าถึงไฟล์ ตู้คอนเทนเนอร์ โฟลเดอร์ย่อย)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา