Điểm:0

Tại sao khối lượng Docker có thể ghi trên thế giới nếu được đặt thành/tmp?

lá cờ in

Đối với bối cảnh:

docker --version
    Docker phiên bản 20.10.7, bản dựng 20.10.7-0ubuntu5~20.04.2

kiểm tra 1: khối lượng là /myvolume

Đây là Dockerfile của tôi

TỪ núi cao:mới nhất
NGƯỜI DÙNG 1000:1000
KHỐI LƯỢNG /myvolume

và các lệnh build + run:

docker build -t myimage .
docker run --rm -it myimage

sau đó, một lần trong container:

/ $ whoami
    whoami: không xác định uid 1000
/ $ ls -ld /myvolume/
    gốc drwxr-xr-x 2 gốc 4096 ngày 8 tháng 3 09:22 /myvolume/
/ $ chạm /myvolume/kiểm tra
    chạm: /myvolume/test: Quyền bị từ chối

Cho đến nay, điều này không có gì ngạc nhiên khi người dùng có UID 1000 không thể ghi vào /myvolume.

kiểm tra 2: khối lượng là /tmp

Dockerfile của tôi

TỪ núi cao:mới nhất
NGƯỜI DÙNG 1000:1000
KHỐI LƯỢNG /tmp

(cùng các lệnh build + run) và trong vùng chứa:

/ $ whoami
    whoami: không xác định uid 1000
/ $ ls -ld /tmp
    drwxrwxrwt 2 gốc gốc 4096 ngày 24 tháng 11 09:20 /tmp
/ $ chạm /tmp/kiểm tra
/ $ ls -l /tmp
    tổng số 0
    -rw-r--r-- 1 1000 1000 0 ngày 8 tháng 3 09:23 kiểm tra

Bây giờ âm lượng đã thay đổi thành /tmp, người dùng có UID 1000 có thể viết vào đó.

Tôi biết /tmp thường có thể ghi được trên thế giới trong GNU/Linux, nhưng ở đây, điều này có vẻ "ma thuật" (điều này chỉ ổn khi có Harry Potter) và tôi tự hỏi liệu:

a) Tôi đang thiếu điều gì đó về cách Docker và ổ đĩa hoạt động (vui lòng giới thiệu cho tôi tài liệu/hướng dẫn thích hợp)

b) đó là sự trùng hợp ngẫu nhiên do thiết lập của tôi/thiếu điều gì đó rõ ràng và ngừng dựa vào giá trị mặc định

c) đó là một tính năng không có giấy tờ có thể thay đổi bất cứ lúc nào mà không cần thông báo trước

d) đó là một tính năng mà tôi không thể tìm thấy tài liệu về nó, và tôi có thể tin tưởng một cách an toàn vào thực tế là khi một tập đĩa được gắn vào /tmp, nó luôn có thể ghi được trên thế giới

Điểm:0
lá cờ cn

"Phép thuật" đó được gọi là (và được ghi chép đầy đủ) "Bit dính".

Httqm avatar
lá cờ in
Bạn đã bỏ lỡ quan điểm của tôi (hoặc tôi đã không đặt câu hỏi của mình đủ rõ ràng): Tôi biết về/tmp và các quyền của nó. Câu hỏi của tôi là tại sao (và làm thế nào) một tập có được các quyền này khi được liên kết với/tmp trong khi nó không ở nơi nào khác.

Đă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.