我想知道如何通过 Golang 在 Linux CentOS 7 服务器中将文件挂载为只读。我已经尝试过系统调用,但这不起作用,系统调用会挂载文件,但作为读写,我试图在数据中提供 ro 参数,但它仍然以读写方式挂载。这是我的代码:syscall.Mount(src, dst, "auto", syscall.MS_BIND, "ro")你可以看到我在数据中给出了ro参数,我也试图只给出r和readonly以及只读但它们都不起作用,当我编译 go 文件并执行它然后当我检查 /etc/ mtab 然后我得到这个输出:cat /etc/mtab | grep "firewall"/dev/vda1 /root/firewall.txt ext4 rw,relatime,data=ordered,jqfmt=vfsv1,usrjquota=quota.user 0 0在这里可以看到 firewall.txt 挂载为rw表示读写我想将它安装为只读,任何人都可以帮助我如何在 Golang 中做到这一点?
2 回答

MMMHUHU
TA贡献1834条经验 获得超8个赞
我遇到了类似的问题,通过将 fstype 设置为bind并将标志设置为MS_REMOUNT MS_RDONLY和MS_BIND来修复它。您可以使用以下代码:
syscall.Mount(source, destination, "bind", syscall.MS_REMOUNT|syscall.MS_RDONLY|syscall.MS_BIND, "")
- 2 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消