將登入時建立的訪客帳戶新增至某些群組?

將登入時建立的訪客帳戶新增至某些群組?

這個問題與另一個更普遍的問題關於訪客帳戶。這個是非常具體的。

設定:我有許多較舊的 Dell Latitude E6410 和一些較新的 Dell Latitude 5450,我在教室環境中使用運行 16.04 的版本。許多學生透過連接的 USB 裝置將這些機器用於數據分析和數據收集等多種用途。

訪客帳戶可以很好地幫助我們在登入之間清理機器。訪客帳戶的附加功能是,在開啟電腦並「忘記」它們時,電腦會自動登入訪客帳戶並啟動瀏覽器視窗。問題是來賓帳戶沒有任何存取 USB 連接埠的權限。

一個簡單的解決方案是將新的來賓帳戶(例如 guest-abf2)新增至 dialout 和plugdev 群組,以便學生可以使用連接的裝置和拇指驅動器。就像是:

moduser -a -G plugdev,dialout $USER

在登入過程中儘早在腳本中進行工作。

這是我到目前為止所嘗試過的:

  • 將此命令放置在兩個命令中的任何一個中記錄的鉤子:auto.shprefs.sh在目錄中/etc/guest-session。兩者都不起作用。 prefs.sh在用戶上下文中運行,雖然auto.sh應該在根上下文中運行,但運行得太晚,無法將新建立的來賓帳戶新增至兩個群組
  • 修改 lightdm 運行的可用腳本(是的,我知道這不好,但我變得絕望)但這仍然不起作用。我需要在建立帳戶後但在實際登入之前執行 moduser 命令。
  • 根據舊文檔(11 個左右)有一個名為setup.sh我嘗試過的鉤子,但我不確定這個鉤子是否還能工作。
  • 我已經考慮過編寫一個 udev 腳本,但這似乎非常痛苦,而且文件似乎是針對安裝 USB 隨身碟而不允許存取 USB 裝置的。我在這裡可能是錯的。
  • 我在某個地方偶然發現了一些文檔,其中有一個類似的“腳本”之類的機制可以自動將新用戶添加到某些組,但我似乎找不到它。這在這種情況下可能有效,也可能無效,但我會嘗試一下。

答案1

來賓帳戶是由 shell 腳本建立的/usr/sbin/guest-account

add_account在它所呼叫的函數末尾用戶新增創建用戶。如果您-G plugdev,dialout在此處新增該選項,應該可以解決問題。

使用dpkg 轉移以避免更新的套件覆蓋您修改的腳本。

答案2

使用usermod, 不是 ' moduser'。

……因此啟動腳本 prefs.sh 的行為現在按照廣告中的方式工作。透過在 /etc/guest-session 中建立一個名為 prefs.sh 的文件 與以下行

moduser $USER -a -G plugdev,dialout

如果您將該命令包含在prefs.sh. “moduser”不是有效指令。使用這一行代替:

usermod -a -G plugdev,dialout $USER

答案3

auto.sh從未在根上下文中運行過。prefs.sh在 Ubuntu 15.10 之前都是這樣做的/usr/sbin/guest-account,但程式碼已經被重構,並且在 16.04 中,它不是以 root 身分運行prefs.sh/usr/share/lightdm/guest-session/setup.sh

不知道這種行為改變是否是有意為之。如果沒有,可能有理由提出更改。

當您說訪客會話無法存取 USB 連接埠時,不確定您的意思。我知道你至少可以使用 USB 隨身碟。可能還有其他裝置的使用被 AppArmor 阻止。

編輯:

我提交了錯誤報告,如果接受,您將能夠prefs.sh像以前一樣將客人分配到群組中。

至於USB棒,我做了一些測試,發現USB棒的格式化方式很重要。使用 ext4 格式的棒時,我既無法讀取也無法寫入,但是當格式化為 fat16 時,它可以正常工作。

答案4

我不知道它是什麼時候發生的,但 lightdm 已更新,因此啟動腳本的行為首選項.sh現在如廣告所示工作。透過建立一個名為首選項.sh/etc/來賓會話與以下行:

moduser $USER -a -G plugdev,dialout

我完全實現了允許學生存取訪客帳戶中的新 USB 裝置所需的功能。

相關內容