Подключение внешнего SSD по USB и использование его в контейнерах.

В опциях монтирования указывается uid и gid владельца файлов, я так понимаю, что это некоторое сопоставление пользователя windows и пользователя linux. Сюда можно прописать

root@pve-02:~# mkdir  106
root@pve-02:~# chmod 777 106/
root@pve-02:~# pct set 106 -mp0 /root/106,mp=/root/flash
root@pve-02:~# pct start 106
root@pve-02:~# pct console 106
root@test:/root# cd flash/
root@test:/root/flash# touch file.txt
root@test:/root/flash# ls -ln
total 0
-rw-r--r-- 1 0 0 0 Sep  9 20:15 file.txt
root@test:/root/flash# 
exit
root@pve-02:~# ls -lh 106/
итого 0
-rw-r--r-- 1 100000 100000 0 сен  9 23:15 file.txt

а потом

root@test:/root/flash# chown krom:krom file.txt 
root@test:/root/flash# ls -ln
total 0
-rw-r--r-- 1 1000 1000 0 Sep  9 20:15 file.txt
exit
root@pve-02:~/106# ls -lh
итого 0
-rw-r--r-- 1 101000 101000 0 сен  9 23:15 file.txt
  • root внутри контейнера становится 100000 на хосте
  • пользователь с id 1000 становится id с 101000

Это такой финт безопасности чтобы в случае компрометации контейнера пользователь root внутри контейнера все еще оставался обычным пользователем на хосте (учитывайте, что lxc использует cgroups, а это значит, что процессы внутри контейнера являются процессами и на хосте, но root процесс внутри контейнера не равен root на хосте и не имеет никаких расширенных привилегий)

соответственно в /etc/fstab

/dev/sda1 /mnt/flash exfat defaults,uid=100000,gid=100000,nofail 0 0

Либо меняем 100000 на 101000 если хотим, чтобы к файлам имел доступ пользователь с id 1000 внтри контейнера

pct set 106 -mp0 /mnt/flash,mp=/root/flash

1 лайк