2. Запускаем следующие команды, чтобы проверить, что пользователь и группа создалась:
Для пользователя: cat /etc/passwd
Для группы: cat /etc/group
3. Открываем файл /etc/pve/lxc/ххх.conf
Вместо ххх прописываем id контейнера, например, nano /etc/pve/lxc/100.conf
4. В конце файла прописываем код (если использовали другие uid и gid при создании пользователя / группы, то меняйте их на свои значения)
lxc.idmap = u 0 100000 1010
lxc.idmap = g 0 100000 1001
lxc.idmap = u 1010 1010 1
lxc.idmap = g 1001 1001 1
# Следующие 2 строчки надо прописывать по определенной формуле:
#u UID+1 100000+UID+1 65535-UID То есть для uid 1010 будет 1010+1 100000+1010+1 65535-1010
#g GID+1 100000+GID+1 65535-GID То есть для gid 1001 будет 1001+1 100000+1001+1 65535-1001
lxc.idmap = u 1011 101011 64525
lxc.idmap = g 1002 101002 64534
5. Открываем /etc/subuid nano /etc/subuid
В конце файла добавляем: (если использовали другой uid, то меняем на свой) root:1010:1
Сохраняем файл и выходим.
6. Открываем /etc/subgid nano /etc/subgid
В конце файла добавляем: (если использовали другой gid, то меняем на свой) root:1001:1
Сохраняем файл и выходим.
7. Меняем владельца примонтированной директории хоста. Если брать в пример директорию из поста выше, то получится: chown -R 1010:1001 /mnt/pve/moydisk/films
Вместо 1010 подставляем свой uid
Вместо 1001 подставляем свой gid
Вместо /mnt/pve/moydisk/films подставляем свою примонтированную директорию на хосте
8. Проверяем владельца папки films. Переходим в директорию перед films и запускаем команду ls -la cd /mnt/pve/moydisk
ls -la
В выводе команды для директории films должен отобразиться владелец lxc_user lxc_group
9. Запускаем lxc контейнер. Если все сделали четко по инструкции, то должно заработать.
1. Создаем нового пользователя и даем ему определенные uid и gid.
Например, создадим пользователя lxc_user с uid 1010 и группу lxc_group с gid 1001:
groupadd -g 1001 lxc_group
useradd -u 1010 -g 1001 lxc_user
2. Запускаем следующие команды, чтобы проверить, что пользователь и группа создалась:
Для пользователя:
cat /etc/passwd
Для группы:
cat /etc/group
3. Открываем файл /etc/pve/lxc/ххх.conf
Вместо ххх прописываем id контейнера, например,
nano /etc/pve/lxc/100.conf
4. В конце файла прописываем код (если использовали другие uid и gid при создании пользователя / группы, то меняйте их на свои значения)
lxc.idmap = u 0 100000 1010
lxc.idmap = g 0 100000 1001
lxc.idmap = u 1010 1010 1
lxc.idmap = g 1001 1001 1
# Следующие 2 строчки надо прописывать по определенной формуле:
#u UID+1 100000+UID+1 65535-UID То есть для uid 1010 будет 1010+1 100000+1010+1 65535-1010
#g GID+1 100000+GID+1 65535-GID То есть для gid 1001 будет 1001+1 100000+1001+1 65535-1001
lxc.idmap = u 1011 101011 64525
lxc.idmap = g 1002 101002 64534
5. Открываем /etc/subuid
nano /etc/subuid
В конце файла добавляем: (если использовали другой uid, то меняем на свой)
root:1010:1
Сохраняем файл и выходим.
6. Открываем /etc/subgid
nano /etc/subgid
В конце файла добавляем: (если использовали другой gid, то меняем на свой)
root:1001:1
Сохраняем файл и выходим.
7. Меняем владельца примонтированной директории хоста. Если брать в пример директорию из поста выше, то получится:
chown -R 1010:1001 /mnt/pve/moydisk/films
Вместо 1010 подставляем свой uid
Вместо 1001 подставляем свой gid
Вместо /mnt/pve/moydisk/films подставляем свою примонтированную директорию на хосте
8. Проверяем владельца папки films. Переходим в директорию перед films и запускаем команду ls -la
cd /mnt/pve/moydisk
ls -la
В выводе команды для директории films должен отобразиться владелец lxc_user lxc_group
9. Запускаем lxc контейнер. Если все сделали четко по инструкции, то должно заработать.
Полезные ссылки:
1. https://www.geeksforgeeks.org/linux-unix/useradd-c...
2. https://pve.proxmox.com/wiki/Unprivileged_LXC_cont...
3. https://obsidian.evanmingliu.com/Proxmox/LXC/Unpri...