在 Linux 底下的 VirtualBox 連接 USB device 設定

透過 apt-get 或是從 virtualbox.org 下載 deb 在 LinuxMint 底下裝的Virtualbox,發現要從 Client 直接存取 Host 的 USB device 的時候發現virtualbox 的 USB 選單裏面什麼都沒有

原來是要把自己的帳戶加入 vboxusers 群阻就OK了:

sudo usermod -a -G vboxusers username

相關的說明可以參考 :

Oracle VM VirtualBox® User Manual / Chapter 2. Installation details / 2.3.4. The vboxusers group

我以為這東西應該要像 apache 一樣打包進去,安裝的時候自動處理就好了… xD

Linux 使用者群組設定、透過 group 來給 sudo 權限 (比改 sudoer 方便!)

一般要透過 sudo 的機制給使用者 root 權限比較常看到的好像是編輯 sudoer 這個檔案 、直接把對應的使用者帳號加入列表的作法,不過每次有新帳號需要 sudo 權限的時候都要做 visudo 自己編輯 sudoer 很麻煩,不小心可能還會改壞檔案(如果這時候沒有 root 的密碼可能就只能透過 single-user mode 進行救援了!),量大的時候用群組來管理 sudo 權限會簡單一點,而且透過群組的方式還可以更容易地進行權限控管,未來要移除使用者時也不必再次編輯 sudoer 的紀錄手動將使用者移除!

sudoer (Ubuntu 上的套件版本 1.8.9p5-1ubuntu1) 裡面部份的設定及說明:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

可以看的出有預設的群組可以用 (admin, sudo、不同的系統可能會有略有出入),如果不合用的話(例如預設的這兩個群組權限太高、什麼事情都能做),也可以另外自己建立群組、加新規則限制能執行的命令,不過一般自己在使用的主機、甚至一些學校或中小企業沒有嚴格進行權限控管時,權限通常會直接開到最大(比較省事),所以直接把使用者加入 sudo 群組會最方便快速

修改使用者群組可以透過直接編輯 /etc/group 這個紀錄群組資訊的檔案,也可以透過簡單的命令操作來把使用者加入群組,以下是一些使用 usermod / useradd 指令把使用者加至群組的範例(這邊不考慮使用 nis/yp 控管使用者帳號的情況)

把現有的使用者加入某群組:

$ sudo usermod -a -G groupname username

or

$ sudo adduser username groupname

( groupname 代表群組名稱、username 代表使用者名稱,注意上下兩種用法的參數順序)

把現有的使用者加入某”些”群組:

$ sudo usermod -a -G groupname,groupname2,groupname3 username

調整某使用者的主要群組:

$ sudo usermod -g groupname usernam

也可以在新增使用者的時候就把某使用者加入某群組:

$ sudo useradd -G groupname username
$ sudo useradd -G groupname,groupname2,groupname3 username

或是在新增使用者的時候就指定主群組:

$ sudo useradd -g groupname username

比較要注意的地方:參數小寫 g 是指主群組,大寫 G 是指副群組

另外就是 sudoer 檔案更改後基本上是馬上生效,因為 sudo 每次執行都會去檢查該設定,但透過 group 加群組之後使用者要重新登入才能讓群組生效,這是比較不一樣的地方。

如果在 FreeBSD 上要把某個 user 加入某個群組該怎麼做呢?

$ sudo pw groupmod groupname -M username

恩,大概就這樣吧XD