我正在嘗試設定一個可由任何使用者安裝的 VirtualBox 共用資料夾,所以這是我輸入的行/etc/fstab
:
# mint shared folder
mint /media/sf_mint vboxsf defaults,user,uid=1000,gid=999 0 0
但是,我收到此錯誤訊息:
juanlu@minted ~ $ mount mint
Only root can mount shared folders from the host.
juanlu@minted ~ $ sudo !!
sudo mount mint
unknown mount option `user'
valid options:
rw mount read write (default)
ro mount read only
uid =<arg> default file owner user id
gid =<arg> default file owner group id
ttl =<arg> time to live for dentry
iocharset =<arg> i/o charset (default utf8)
convertcp =<arg> convert share name from given charset to utf8
dmode =<arg> mode of all directories
fmode =<arg> mode of all regular files
umask =<arg> umask of directories and regular files
dmask =<arg> umask of directories
fmask =<arg> umask of regular files
如果我刪除該user
選項,那麼我將被迫使用,sudo
但至少安裝點的擁有者已正確分配。我在這裡做錯了什麼?
請注意,這可能會重複到以使用者身分掛載 VBox 共享資料夾,但我實際上嘗試了一個應該有效的選項。
答案1
作為在 VirtualBox 用戶支援論壇中友善地回答, vbox共享資料夾其實並不是裝置(如果是的話,他們將在/dev/
)和因此“用戶”選項除其他外不適用。因此,不可能允許非管理員使用者手動掛載共用資料夾。
但是,仍然可以自動掛載 vboxsf/etc/rc.local
並自訂掛載選項。這類似於自動掛載,但允許為資料夾設定適當的遮罩和權限,正如這裡所解釋的。請注意,此頁面是不完整的因為它指向mount
手冊頁列出可用選項列表,但事實上,其中一些選項不適用,如上所示。
答案2
這看起來像是程式檔案中的錯誤掛載vboxsf.c,它是 VirtualBox Guest Additions for Linux 的一部分,我相信您沒有做錯任何事。
檢查是否在 root 帳戶下執行是在程式開始時立即在 main() 中完成的,並且在處理參數之前,即在user
檢測或處理參數之前。
檢查應該在進程(或其分支)的有效使用者 ID 變更為指定的使用者帳戶之後完成。
您應該向 VirtualBox 開發人員回報此錯誤。
正確的論壇似乎是Linux 主機上的 VirtualBox(要求登入)。
答案3
您不一定需要該user
選項來/etc/fstab
允許普通使用者掛載檔案系統。
另一種選擇是配置sudo
為允許此操作,無論是否詢問執行使用者的密碼。
從man sudoers
:
身份驗證和日誌記錄
sudoers 安全性策略要求大多數使用者在使用 sudo 之前先進行身份驗證。如果呼叫使用者是 root、目標使用者與呼叫使用者相同或政策已停用使用者或命令的身份驗證,則不需要密碼。
標籤規格
[...]
NOPASSWD 和 PASSWD
預設情況下,sudo 要求使用者在運行命令之前對自己進行身份驗證。可以透過 NOPASSWD 標籤修改此行為。與 Runas_Spec 類似,NOPASSWD 標記為 Cmnd_Spec_List 中跟隨它的命令設定預設值。相反,PASSWD 標籤可用於逆轉事情。例如:
雷·拉什莫爾 = NOPASSWD:/bin/kill、/bin/ls、/usr/bin/lprm
將允許使用者 ray 以 root 身分在rushmore 機器上執行 /bin/kill、/bin/ls 和 /usr/bin/lprm,而無需驗證自己。
因此,像這樣的行將/etc/sudoers
允許任何使用者掛載指定的檔案系統而無需輸入任何密碼:
ALL ALL = NOPASSWD: /bin/mount mint
然後sudo mount mint
應該以普通使用者身分工作。