Sau khi thêm một nhóm, đăng xuất + đăng nhập không đủ trong 18.04?


18

Trong Ubuntu 18.04 với máy tính để bàn mặc định, hành vi đăng xuất / đăng nhập đã thay đổi:

Trước đây trên một hệ thống Ubuntu, khi tôi thấy rằng tôi cần thêm id người dùng của mình vào một số nhóm, nó đã đủ để

sudo adduser ludwig docker # adds me to group docker

và sau đó tôi đã phải đăng xuất và đăng nhập lại để thay đổi nhóm hiệu quả.

Tôi nhận thấy rằng với Ubuntu 18.04, sau khi thêm nhóm và đăng xuất và đăng nhập lại, danh sách các nhóm hiệu quả vẫn không thay đổi.

Như một giải pháp thay thế, tôi đã khởi động lại hệ thống, điều này rất bất tiện (yêu cầu thực hiện lựa chọn đúng trong grub và nhập lại mật khẩu mã hóa đĩa).

  1. Tại sao bây giờ hành vi như thế này?
  2. Tôi có thể làm gì khác khi khởi động lại không?

(Tôi biết tôi có thể ssh vào localhost và chỉ nhận các nhóm chính xác trong phiên ssh. Điều này cũng quá bất tiện.)


Tôi đã thử nghiệm sudo usermod -a -G group uservào 18.04 và đăng xuất và đăng nhập trở lại và nó đã hoạt động.
Terrance

còn với máy tính để bàn mặc định?
Ludwig Schulze

Ý bạn là giống như sự khác biệt giữa Gnome, Xubfox, Kubfox, v.v.? Nếu bạn muốn nói rằng Gnome là mặc định, thì không, tôi không chạy Gnome. Nhưng lệnh phải giống nhau bất kể môi trường máy tính để bàn vì đây là mật khẩu lõi / công cụ nhóm nên giống nhau trên tất cả các DE.
Terrance

OK, tôi vừa cài đặt Gnome để thử nghiệm và cũng sudo usermod -a -G groupname usernamehoạt động tốt ở đó. Đăng xuất và trở lại và thay đổi của tôi là ở đó.
Terrance

Tôi hiểu rồi. @Terrance bạn không sử dụng máy tính để bàn mặc định. Máy tính để bàn mặc định được đặt tên là "ubfox". Tôi biết nó dựa trên gnome, nhưng tôi hiểu rằng "gnome" là một máy tính để bàn khác. "Ubuntu" đã được thay đổi để giống với sự thống nhất.
Ludwig Schulze

Câu trả lời:


8

Lệnh loginctl terminate-user <user>đã làm việc cho tôi. (Thay thế <user>bằng tên người dùng của bạn) Có lẽ bạn không nên chạy cái này khi đăng nhập vì nó sẽ giết tất cả các quy trình của bạn.


xác nhận làm việc trên Ubuntu 18.04. Dễ dàng hơn nhiều so với ps & grep!
AqD

Đồng ý, đây là loại ngắn hơn so với giải pháp của riêng tôi. Nó cũng giúp trên Ubuntu 19.04. Nâng cao và chấp nhận thay vì giải pháp của riêng tôi.
Ludwig Schulze

7

Khi "đăng xuất" khỏi máy tính để bàn mặc định trong Ubuntu 18.04, một số quy trình của người dùng không bị chấm dứt ngay lập tức mà chỉ dừng lại ở đó. Đây là (được quan sát bởi người dùng khác):

$ 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

Khi đăng nhập lại trước khi các quy trình này thoát ra một cách tự nguyện, sau đó không có phiên đăng nhập mới nào được tạo, nhưng phiên cũ được sử dụng lại. Đây là lý do tại sao thành viên nhóm mới không hiển thị, nó vẫn là phiên đăng nhập cũ.

Một cách giải quyết để tránh khởi động lại là đợi ~ 20 giây sau khi đăng xuất và chỉ sau đó đăng nhập lại. Quá trình thoát ra ở đâu đó trong khoảng từ 10 đến 20 giây sau khi đăng xuất.

Chỉnh sửa : Như đã báo cáo trong các bình luận bên dưới, đôi khi các quy trình kéo dài sẽ không thoát ngay cả khi chờ đợi và sau khi đăng nhập lại, tư cách thành viên nhóm không được cập nhật. Tôi thấy rằng trong trường hợp này nó giúp

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

Thay thế ludwigbằng tên người dùng của bạn. Điều này giết chết tất cả các quá trình thuộc về bạn. Chỉ sử dụng khi bạn chắc chắn rằng bạn có tất cả dữ liệu của mình trong tất cả các chương trình đang mở.


Đây là vấn đề của tôi. Nhưng các quy trình đã không biến mất sau khi đăng xuất và chờ đợi. Tôi đã phải giết tiến trình "systemd --user" và chạy "sudo systemctl daemon-reexec". Và cũng giết tất cả các quá trình dbus gây ra khởi động lại vít hệ thống lên dbus. Cần khởi động lại trình quản lý mạng. "systemctl khởi động lại trình quản lý mạng" Có thể khởi động lại mọi thứ phụ thuộc vào dbus / systemd
niknah

@niknah Ôi thật tệ. Âm thanh như nó sẽ dễ dàng hơn để chỉ khởi động lại trong trường hợp của bạn. Cảm ơn đã cho mọi người biết rằng nó có thể khó khăn hơn.
Ludwig Schulze

@niknah Tôi gặp vấn đề giống như bạn hôm nay. Sau khi đăng xuất và chờ đợi, một số quy trình sẽ không thoát. Tôi tìm thấy một cách giải quyết và sẽ cập nhật câu trả lời này.
Ludwig Schulze

2

Một cách giải quyết trong trình bao hiện tại là chạy "su" để có nhóm mới mà không phải khởi động lại.

Như tôi đã nói, thủ thuật này phải được áp dụng cho mỗi vỏ. Đó không phải là toàn cầu.


Điều này có thể được sử dụng để sửa lỗi adb không nhận dạng thiết bị sau khi thêm người dùng vào adbusers aka sudo usermod -a -G adbusers $USER. Sau đó, bạn có thể làm su $USERsudo adb kill-server && adb start-serverkhắc phục sự cố
xdevs23
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.