本文最后更新于 981 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。
文章摘要
在Proxmox VE环境中,无特权LXC容器因安全机制限制无法直接使用mount命令挂载SMB共享目录,导致权限异常问题。通过将SMB共享目录先挂载至PVE宿主机,再利用宿主机目录映射至容器内部的方式实现间接挂载。该方案需在宿主机安装cifs-utils工具包,创建挂载点并执行mount命令,随后通过容器配置将宿主机目录绑定挂载至容器文件系统。重启容器后可验证SMB目录内容是否正常显示,若需实现开机自动挂载,可将相关配置写入宿主机/etc/fstab文件,该方法与系列文章中介绍的SMB自动挂载方案形成技术关联。
无特权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
📌 内容结构提示:
这篇内容属于「博客知识地图」的一部分,你可以从这里查看完整内容路径:
博客知识地图
。
📎 相关文章