Ломаю голову уже какой день.
Есть внешний SSD подключенный по USB к MiniPC
Я бы хотел его использовать в своих контейнерах.
Отформатировал SSD в exfat и закинул на него файлы.
Смонтировал его в local porxmox-a и там я могу редактировать файлы, но при монтирование его в контейнер, файлы я могу просматривать и копировать с SSD, а вот записывать или редактировать нет.
Смонтировал его командой:
pct set 100 -mp0 /dev/sda1,mp=/root/flash
Пытался выдать права на запись и тд. Но ну ни как.
Хотел бы иметь полный доступ к нему.
Попытки поиска не чего не дали. Использую Proxmox 9.0.3.
Был бы благодарен за помощь.
up. Даже редактировать через веб-файл браузер в самохостинге не могу, даже записать на него.
тут указывается владелец файлов и маска прав (вычитающая)
Ну и надо учитывать, что непривилегированный lxc имеет свой маппинг UID/GID и root внутри контейнера будет иметь ID 10000 или типа того на хосте, поэтому, надо указывать uid в параметрах монтирования именно после этого преобразования (самый простой способ проверить это создать папку на хосте, пробросить и создать там файл из контейнера ну и посмотерть под какими uid/gid он создался)
Если не хочется следить за маппингом, то можно включить привилегированный режим lxc, но это снижает безопасность
Первый пример помог только когда контейнер делаешь привилегированным, только тогда я могу редактировать файлы на usb sdd
2. Да в курсе, но мне нужно что бы она монтировалась в Windows когда мне нужно было это.
3. Можно по подробнее.
Мне нужно что бы только некоторые контейнеры имели право на запись, а другие только на чтение. И те контейнеры которые на запись, скорей всего придется ставить привилегированными.
В опциях монтирования указывается 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 на хосте и не имеет никаких расширенных привилегий)