Setelah menambahkan grup, logout + masuk tidak cukup di 18,04?

18

Di ubuntu 18.04 dengan desktop default, perilaku logout / login telah berubah:

Sebelumnya pada sistem Ubuntu, ketika saya menemukan bahwa saya perlu menambahkan ID pengguna saya ke beberapa kelompok, itu sudah cukup

sudo adduser ludwig docker # adds me to group docker

dan kemudian saya harus keluar dan masuk lagi untuk membuat perubahan grup efektif.

Saya perhatikan bahwa dengan Ubuntu 18.04, setelah menambahkan grup dan logout dan kembali, daftar grup yang efektif masih tidak berubah.

Sebagai solusinya, saya mem-boot ulang sistem, yang merepotkan (harus membuat pilihan yang tepat di grub dan memasukkan kembali kata sandi enkripsi disk).

  1. Kenapa perilakunya sekarang seperti ini?
  2. Bisakah saya melakukan sesuatu yang lain selain me-reboot?

(Saya tahu saya bisa ssh ke localhost dan mendapatkan grup yang benar di sesi ssh saja. Ini juga terlalu merepotkan.)

Ludwig Schulze
sumber
Saya menguji sudo usermod -a -G group userpada 18,04 dan logout dan kembali dan itu berhasil.
Terrance
juga dengan desktop default?
Ludwig Schulze
Maksud Anda seperti perbedaan antara GNOME, Xubuntu, Kubuntu, dll? Jika Anda bermaksud bahwa GNOME adalah default, maka tidak, saya tidak menjalankan GNOME. Tetapi perintahnya harus sama terlepas dari lingkungan desktop karena ini adalah kata sandi inti / grup yang harus sama di semua DE.
Terrance
OK, saya baru saja menginstal GNOME untuk pengujian, dan sudo usermod -a -G groupname usernamebekerja dengan baik di sana. Keluar dan kembali dan kembalian saya ada di sana.
Terrance
Saya melihat. @Terrance Anda tidak menggunakan desktop default. Desktop default bernama "ubuntu". Saya tahu ini didasarkan pada gnome, tetapi saya mengerti bahwa "gnome" adalah desktop lain. "ubuntu" diubah menyerupai kesatuan.
Ludwig Schulze

Jawaban:

8

Perintah itu loginctl terminate-user <user>bekerja untuk saya. (Ganti <user>dengan nama pengguna Anda) Anda mungkin tidak harus menjalankan ini saat masuk karena akan membunuh semua proses Anda.

iczero
sumber
dikonfirmasi bekerja di Ubuntu 18.04. Jauh lebih mudah daripada ps & grep!
AqD
Setuju, ini lebih pendek untuk diketik daripada solusi saya sendiri. Ini juga membantu di ubuntu 19.04. Dipilih dan terima alih-alih solusi saya sendiri.
Ludwig Schulze
7

Saat "logout" dari desktop default di ubuntu 18.04, beberapa proses pengguna tidak segera dihentikan, tetapi berlama-lama. Ini adalah (diamati oleh pengguna lain):

$ 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

Ketika masuk kembali sebelum proses ini keluar secara sukarela, maka tidak ada sesi login baru dibuat, tetapi yang lama digunakan kembali. Ini adalah alasan mengapa keanggotaan grup baru tidak terlihat, itu masih merupakan sesi login lama yang sama.

Sebuah solusi untuk menghindari reboot adalah dengan menunggu ~ 20 detik setelah logout dan hanya kemudian login kembali. Proses keluar di suatu tempat antara 10 dan 20 detik setelah logout.

Sunting : Seperti dilaporkan dalam komentar di bawah, kadang-kadang proses yang tersisa tidak akan berhenti bahkan dengan menunggu, dan setelah masuk kembali, keanggotaan grup belum diperbarui. Saya menemukan bahwa dalam hal ini membantu

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

Ganti ludwigdengan nama pengguna Anda. Ini membunuh semua proses milik Anda. Gunakan hanya ketika Anda yakin Anda memiliki semua data Anda di semua program terbuka Anda disimpan.

Ludwig Schulze
sumber
Ini masalah saya. Tetapi proses tidak hilang setelah logout dan menunggu. Saya harus mematikan proses "systemd --user", dan menjalankan "sudo systemctl daemon-reexec". Dan juga membunuh semua proses dbus yang menyebabkan restart systemd mengacaukan dbus. Diperlukan untuk me-restart manajer jaringan juga. "systemctl restart network-manager" Mungkin restart semua yang tergantung pada dbus / systemd
niknah
@niknah Oh itu buruk. Kedengarannya seperti itu akan lebih mudah untuk hanya reboot dalam kasus Anda. Terima kasih telah memberi tahu semua orang bahwa ini bisa lebih sulit.
Ludwig Schulze
@niknah saya mengalami masalah yang sama seperti Anda hari ini. Setelah logout dan menunggu, beberapa proses tidak mau berhenti. Saya menemukan solusi dan akan memperbarui jawaban ini.
Ludwig Schulze
2

Solusi dalam shell saat ini adalah menjalankan "su" untuk memiliki grup baru tanpa harus reboot.

Seperti yang saya katakan, trik ini harus diterapkan pada setiap shell. Itu bukan global.

Michael Opdenacker
sumber
Ini dapat digunakan untuk memperbaiki adb yang tidak mengenali perangkat setelah menambahkan pengguna ke adbusers alias sudo usermod -a -G adbusers $USER. Maka Anda dapat melakukan su $USERdan sudo adb kill-server && adb start-serveruntuk memperbaiki masalah ini
xdevs23