web-dev-qa-db-ja.com

ログイン時に作成されたゲストアカウントを特定のグループに追加しますか?

この質問は、ゲストアカウントに関する 別のより一般的な質問 に関連しています。これは非常に具体的です。

セットアップ:古いDell Latitude E6410が多くあり、16.04を実行する教室の設定で使用する新しいDell Latitude 5450がいくつかあります。多くの学生は、接続されたUSBデバイスを介したデータ分析およびデータ取得のさまざまな目的でこれらのマシンを使用しています。

ゲストアカウントは、ログインとログインの間にマシンをきれいに消去するのに役立ちます。ゲストアカウントの追加機能は、マシンをオンにして「忘れる」と、マシンが自動的にゲストアカウントにログインし、ブラウザウィンドウを起動することです。問題は、ゲストアカウントにUSBポートにアクセスする権限がないことです。

簡単な解決策は、新しいゲストアカウント(guest-abf2など)をdialoutおよびplugdevグループに追加して、生徒が接続されたデバイスとサムドライブを使用できるようにすることです。何かのようなもの:

moduser -a -G plugdev,dialout $USER

ログインプロセスの十分早い段階でスクリプト内で動作します。

これは私が今まで試したことです:

  • このコマンドを2つの ドキュメント化されたフックauto.shおよびprefs.shディレクトリの/etc/guest-sessionのいずれかに配置します。どちらも動作しません。 prefs.shはユーザーコンテキストで実行され、auto.shはルートコンテキストで実行されるはずですが、新しく作成されたゲストアカウントを2つのグループに追加するには遅すぎます
  • lightdmが実行する利用可能なスクリプトを変更します(ええ、これは良くないことを知っていますが、私は必死になりました)、それでもうまくいきません。アカウントが作成された直後、実際のログインの前にmoduserコマンドを実行する必要があります。
  • 古いドキュメント(11かそこら) によれば、setup.shと呼ばれるフックがありましたが、このフックはもう動作しません。
  • 私はudevスクリプトを書くことを検討しましたが、それはひどくつらいと思われ、ドキュメントはUSBデバイスへのアクセスを許可しないUSBサムドライブのマウントを対象としています。私はここで間違っている可能性があります。
  • どこかで、新しいユーザーを特定のグループに自動的に追加するメカニズムに似た「スクリプト」があるというドキュメントを見つけましたが、見つけられないようです。これはこの場合はうまくいくかもしれませんが、試してみます。
2
pbeeken

正確なタイミングはわかりませんが、lightdmが更新されたため、起動スクリプトprefs.shの動作が広告どおりに動作するようになりました。 prefs.shというファイルを作成することにより、/ etc/guest-session次の行で:

moduser $USER -a -G plugdev,dialout

学生がゲストアカウントの新しいUSBデバイスにアクセスできるようにするために必要なものを正確に達成しました。

0
pbeeken

ゲストアカウントは、シェルスクリプト/usr/sbin/guest-accountによって作成されます。

関数add_accountの最後で、ユーザーを作成するために seradd を呼び出します。ここに-G plugdev,dialoutオプションを追加すると、うまくいくはずです。

dpkg-divert を使用して、更新されたパッケージが変更されたスクリプトを上書きしないようにします。

2
Florian Diesch

usermodではなく、 'moduser'を使用してください。

...したがって、起動スクリプトprefs.shの動作は、広告どおりに機能します。/etc/guest-session にprefs.shというファイルを作成し、次の行を使用します。

moduser $USER -a -G plugdev,dialout

このコマンドは、prefs.shに含めると、ゲストセッションをクラッシュさせ、ロードしません。 '`moduser'は有効なコマンドではありません。代わりに次の行を使用してください。

usermod -a -G plugdev,dialout $USER
1
Godvalve

auto.shはルートコンテキストで実行されたことはありません。 prefs.shは、/usr/sbin/guest-account、しかしコードはリファクタリングされ、16.04 prefs.shのソースは/usr/share/lightdm/guest-session/setup.shこれはルートとして実行されません。

この行動の変化が意図的なものかどうかはわかりません。そうでない場合、変更を提案する理由があるかもしれません。

ゲストセッションがUSBポートにアクセスできないと言うときの意味がわかりません。少なくともUSBスティックを使用できることを知っています。 AppArmorを介して使用が禁止されている他のデバイスがある可能性があります。

編集:

バグレポート を提出しました。承認された場合は、prefs.sh以前のようにゲストをグループに割り当てます。

USBスティックに関しては、いくつかのテストを行い、スティックのフォーマット方法が重要であることがわかりました。 ext4でフォーマットされたスティックでは、読み取りも書き込みもできませんでしたが、fat16としてフォーマットすると正常に動作します。

0