本文最后更新于 426 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。
Contents
无特权LXC
什么是无特权Linux容器(LXC)?无特权容器被认为比特权容器更安全,更保密。无特权容器运行时,容器的root UID映射到主机系统上的非root UID。这使得攻击者即使破解了容器,也难以获得对底层主机的root权限。简而言之,如果攻击者设法通过已知的软件漏洞破坏了您的容器,他们会立即发现自己无法获取任何主机权限。所以无特权容器本来就是为了限制LXC的root用户权限,从而保护宿主机的安全。但是这样一来也会引起一些不便,比如我们想在PVE的无特权LXC中像在正常Linux中用mount命令挂载SMB共享的NAS目录的时候就会因为权限报错,无法成功:
mount error(1): Operation not permitted lxc
那么这种情况下想挂载外部SMB目录应该怎么办呢?只能绕一个圈:先将SMB目录挂载到pve的宿主机上,然后再利用pve的宿主机将自己挂载的目录再映射到无特权LXC容器中去。
注:以下操作在pve宿主机上运行
将需要挂载到LXC的共享目录先挂载到PVE宿主机上
安装 cifs-utils 包
apt-get install cifs-utils
创建挂载目录
mkdir -p /mnt/share/
运行挂载命令
mount -o username=账号,password=密码 //your-ip/共享目录 /mnt/share
将PVE宿主机目录挂载到无特权LXC容器内
pct set "CT id" -mp0 /mnt/share/,mp=/mnt/share
如果后续要挂载其他目录,则依次是mp1,mp2等。
重启LXC容器以后查看
ls /mnt/share
如果看到SMB目录内容则说明成功。
注:如要pve开机启动既自动加载SMB目录,需要编辑/etc/fstab,加入以下内容:
//your-ip/共享目录 /mnt/share cifs defaults,username=账号,password=密码
这个可以参看我另一篇文章:debian系列 自动开机挂载SMB