グループを追加した後、18.04ではログアウト+ログインでは不十分ですか?


18

デフォルトのデスクトップを備えたubuntu 18.04では、ログアウト/ログインの動作が変更されました。

以前はUbuntuシステムで、ユーザーIDをいくつかのグループに追加する必要があるとわかったときは、

sudo adduser ludwig docker # adds me to group docker

そして、グループの変更を有効にするために、ログアウトして再度ログインする必要がありました。

Ubuntu 18.04では、グループを追加してログアウトして再度ログインした後も、有効なグループのリストは変更されていません。

回避策として、システムを再起動しましたが、これは不便です(GRUBで正しい選択を行い、ディスク暗号化パスワードを再入力する必要があります)。

  1. なぜ今の動作はこのようになっているのですか?
  2. 再起動する前に何か他のことはできますか?

(sshでlocalhostにアクセスし、sshセッションでのみ正しいグループを取得できることを知っています。これも不便です。)


sudo usermod -a -G group userは18.04でテストし、ログアウトしてからログインし直しました。
Terrance、

デフォルトのデスクトップでも?
ルートヴィヒシュルツェ

あなたはGNOME、Xubuntu、Kubuntuなどの違いが好きですか?GNOMEがデフォルトであることを意味する場合、いいえ、私はGNOMEを実行しません。しかし、コマンドはデスクトップ環境に関係なく同じである必要があります。これは、すべてのDEで同じである必要があるコアパスワード/グループの要素であるためです。
Terrance、2018年

OK、テスト用にGNOMEをインストールしただけで、sudo usermod -a -G groupname usernameそこでも問題なく動作しました。ログアウトして再度ログインすると、私の変更がありました。
Terrance、2018年

そうですか。@Terranceデフォルトのデスクトップを使用していません。デフォルトのデスクトップの名前は「ubuntu」です。私はそれがgnomeに基づいていることを知っていますが、「gnome」は別のデスクトップであることを理解しています。「ubuntu」は統一に似たものに変更されました。
Ludwig Schulze

回答:


8

コマンドloginctl terminate-user <user>は私のために働いた。(<user>ユーザー名に置き換えてください)すべてのプロセスが強制終了されるため、ログイン時にこれを実行しないでください。


Ubuntu 18.04で動作することが確認されました。ps&grepよりもはるかに簡単です。
AqD

同意しました、これは私の独自の解決策よりタイプするのに短いです。また、ubuntu 19.04にも役立ちます。私自身の解決策の代わりに賛成し、受け入れました。
Ludwig Schulze

7

ubuntu 18.04でデフォルトのデスクトップから「ログアウト」すると、ユーザーのプロセスの一部がすぐに終了せずに残ります。これらは(別のユーザーによって観察されます):

$ ps axu | grep ^ludwig
ludwig    26508  0.3  0.2  77052  8308 ?        Ss   23:32   0:00 /lib/systemd/systemd --user
ludwig    26509  0.0  0.0 261776  2968 ?        S    23:32   0:00 (sd-pam)
ludwig    26691  0.2  0.3 381288 12204 ?        S<l  23:32   0:00 /usr/bin/pulseaudio --start --log-target=syslog
ludwig    27352  0.0  0.0  49796  3756 ?        Ss   23:33   0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only

これらのプロセスが自発的に終了する前に再度ログインすると、新しいログインセッションは作成されませんが、古いログインセッションが再利用されます。これが、新しいグループメンバーシップが表示されない理由です。それでも、古いログインセッションと同じです。

再起動を回避するための回避策は、ログアウトしてから20秒ほど待ってから、再度ログインすることです。プロセスは、ログアウトしてから10〜20秒で終了します。

編集:以下のコメントで報告されているように、待機している場合でも残存プロセスが終了しないことがあり、ログイン後にグループメンバーシップが更新されません。この場合、それは

ps axu | grep ^ludwig | awk '{print $2}' | xargs kill -9

ludwigユーザー名に置き換えます。これはあなたに属するすべてのプロセスを殺します。開いているすべてのプログラムのすべてのデータが保存されていることが確実な場合にのみ使用してください。


これが私の問題でした。しかし、ログアウトして待機した後、プロセスは消えませんでした。「systemd --user」プロセスを終了して、「sudo systemctl daemon-reexec」を実行する必要がありました。また、すべてのdbusプロセスを強制終了すると、systemdが再起動してdbusが台無しになります。ネットワークマネージャーも再起動する必要があります。"systemctl restart network-manager" dbus / systemdに依存するすべてのものを再起動する可能性があります
niknah

@niknahああ、それは悪い。あなたの場合は単に再起動する方が簡単だと思います。難しい場合があることを皆に知らせてくれてありがとう。
Ludwig Schulze

@niknah今日私はあなたと同じ問題に遭遇しました。ログアウトして待機した後、一部のプロセスが終了しませんでした。回避策を見つけました。この回答を更新します。
ルートヴィヒシュルツェ

2

現在のシェルの回避策は、「su」を実行して、再起動せずに新しいグループを作成することです。

言ったように、このトリックは各シェルに適用する必要があります。それはグローバルではありません。


これを使用して、ユーザーをadbusers(別名)に追加した後、adbがデバイスを認識しないのを修正できますsudo usermod -a -G adbusers $USER。次に、あなたが行うことができますsu $USERし、sudo adb kill-server && adb start-server問題を解決するために
xdevs23
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.