亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們如何通過 Go 在 Linux 中將文件掛載為只讀?

我們如何通過 Go 在 Linux 中將文件掛載為只讀?

Go
白衣染霜花 2022-10-31 15:43:44
我想知道如何通過 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_RDONLYMS_BIND來修復它。您可以使用以下代碼:

syscall.Mount(source, destination, "bind", syscall.MS_REMOUNT|syscall.MS_RDONLY|syscall.MS_BIND, "")


查看完整回答
反對 回復 2022-10-31
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

只讀模式由 syscall 標志定義,該標志MS_RDONLY也在syscall 包中定義。所以調用應該是:

syscall.Mount(src, dst, "auto", syscall.MS_BIND | syscall.MS_RDONLY, "")


查看完整回答
反對 回復 2022-10-31
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號