Privileged LXC thì không an toàn còn Unprivileged LXC không cho phép mount CIFS trực tiếp thông thường. Vậy phải làm sao ...
Mặc định, các chia sẻ CIFS được gắn kết như người dùng root(uid=0) và nhóm root(gid=0) trên máy chủ PVE, điều này khiến chúng không thể truy cập được đối với các người dùng khác, nhóm và LXCs.
Điều này là do UIDs/GIDs trên máy chủ PVE và khách LXC đều bắt đầu từ 0. Nhưng một UID/GID=0
trong một LXC không đặc quyền thực sự là một UID/GID=100000
trên máy chủ PVE. Xem liên kết dưới đây để biết thêm thông tin.
Các container LXC không đặc quyền - Proxmox VE
Vì vậy, chỉ đơn giản là gắn kết chia sẻ CIFS vào UID thuộc về người dùng root không đặc quyền của LXC, mà theo mặc định luôn là uid=100000
.
Nhưng thay vì cũng gắn nó vào GID của người dùng root của LXC, bạn sẽ tạo một nhóm trong LXC của bạn có tên là lxc_shares
với gid=10000
tham chiếu đến gid=110000
trên máy chủ PVE.
PVE host (UID=100000/GID=110000) <--> unprivileged LXC (UID=0/GID=10000)
Tạo nhóm “lxc_shares” với GID=10000 trong LXC sẽ khớp với GID=110000 trên máy chủ PVE.
1groupadd -g 10000 lxc_shares
Thêm user
truy cập vào chia sẻ CIFS vào nhóm lxc_shares
.
ví dụ: jellyfin, plex, … (tên người dùng phụ thuộc vào ứng dụng).
1usermod -aG lxc_shares user
Tắt LXC.
Tạo folder để mount CIFS/SMB shared folder
1mkdir -p /mnt/lxc
Tạo credentials: /root/.smbcredentials
1username=your_username
2password=your_password
Thêm lệnh bên dưới vào /etc/fstab
để automount
1//XPEnology/lxc/ /mnt/lxc cifs _netdev,x-systemd.automount,noatime,uid=100000,gid=110000,dir_mode=0770,file_mode=0770,credentials=/root/.smbcredentials 0 0
Modify the script to suitable your system.
//XPEnology/lxc
: match your CIFS hostname (or IP)
Sau đó, mount CIFS/SMB folder trên PVE host
1systemctl daemon-reload
2mount -a
Mở file LXC configuration.
1nano /etc/pve/lxc/<Container_ID>.conf
Thêm dòng lệnh
1mp0: /mnt/lxc,mp=/mnt/lxc
File LXC Conf sẽ giống như ảnh.
Khởi chạy LXC để tận hưởng kết quả.