หลังจากเพิ่มกลุ่มแล้วการออกจากระบบ + การเข้าสู่ระบบไม่เพียงพอใน 18.04 ใช่หรือไม่


18

ใน Ubuntu 18.04 ที่มีเดสก์ท็อปเริ่มต้นลักษณะการทำงานของล็อกเอาต์ / ล็อกอินเปลี่ยนไป:

ก่อนหน้านี้ในระบบ Ubuntu เมื่อฉันพบว่าฉันต้องเพิ่มรหัสผู้ใช้ของฉันในบางกลุ่มก็เพียงพอแล้ว

sudo adduser ludwig docker # adds me to group docker

จากนั้นฉันต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงกลุ่มมีประสิทธิภาพ

ฉันสังเกตว่าด้วย Ubuntu 18.04 หลังจากเพิ่มกลุ่มและออกจากระบบแล้วกลับเข้ามาในรายการกลุ่มที่มีประสิทธิภาพยังคงไม่เปลี่ยนแปลง

ในฐานะที่เป็นวิธีแก้ปัญหาฉันรีบูตระบบซึ่งไม่สะดวก (ต้องทำการเลือกที่ถูกต้องในด้วงและป้อนรหัสผ่านการเข้ารหัสดิสก์อีกครั้ง)

  1. ทำไมตอนนี้พฤติกรรมเช่นนี้
  2. ฉันจะทำอย่างอื่นไม่ให้ทำการรีบูตได้หรือไม่?

(ฉันรู้ว่าฉันสามารถ ssh ลงใน localhost และรับกลุ่มที่ถูกต้องในเซสชัน ssh เท่านั้นซึ่งไม่สะดวกเช่นกัน)


ฉันทดสอบsudo usermod -a -G group userใน 18.04 และออกจากระบบและกลับมาทำงานได้
Terrance

ยังมีเดสก์ทอปเริ่มต้นหรือไม่
ลุดวิกชูลซ์

คุณหมายถึงชอบความแตกต่างระหว่าง GNOME, Xubuntu, Kubuntu ฯลฯ หรือไม่? ถ้าคุณหมายความว่า GNOME เป็นค่าเริ่มต้นก็ไม่ใช่ฉันจะไม่เรียกใช้ GNOME แต่คำสั่งควรเหมือนกันโดยไม่คำนึงถึงสภาพแวดล้อมเดสก์ท็อปเพราะนี่คือรหัสผ่านหลัก / สิ่งต่างๆในกลุ่มที่ควรเหมือนกันในทุก DE
Terrance

ตกลงฉันเพิ่งติดตั้ง GNOME เพื่อทำการทดสอบและsudo usermod -a -G groupname usernameทำงานได้ดีเช่นกัน ออกจากระบบและกลับมาอีกครั้งและการเปลี่ยนแปลงของฉันอยู่ที่นั่น
Terrance

ฉันเห็น. @Terrance คุณไม่ได้ใช้เดสก์ท็อปเริ่มต้น เดสก์ท็อปเริ่มต้นชื่อ "ubuntu" ฉันรู้ว่ามันใช้ gnome แต่ฉันเข้าใจว่า "gnome" เป็นเดสก์ท็อปเครื่องอื่น "อูบุนตู" ได้รับการเปลี่ยนแปลงเพื่อให้มีลักษณะคล้ายคลึงกัน
Ludwig Schulze

คำตอบ:


8

คำสั่งloginctl terminate-user <user>ทำงานให้ฉัน (แทนที่<user>ด้วยชื่อผู้ใช้ของคุณ) คุณอาจไม่ควรเรียกใช้สิ่งนี้เมื่อลงชื่อเข้าใช้แม้ว่าจะเป็นการฆ่ากระบวนการทั้งหมดของคุณ


ยืนยันว่าทำงานกับ Ubuntu 18.04 ง่ายกว่า ps & grep!
AqD

ตกลงนี้พิมพ์สั้นกว่าโซลูชันของฉันเอง นอกจากนี้ยังช่วยใน Ubuntu 19.04 โหวตและยอมรับแทนโซลูชันของฉันเอง
ลุดวิกชูลซ์

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 screws up dbus จำเป็นต้องรีสตาร์ทตัวจัดการเครือข่ายด้วย "systemctl restart network-manager" อาจรีสตาร์ททุกสิ่งที่ขึ้นอยู่กับ dbus / systemd
niknah

@niknah โอ้แย่จัง ดูเหมือนจะเป็นการง่ายกว่าที่จะรีบูตในกรณีของคุณ ขอขอบคุณที่แจ้งให้ทุกคนทราบว่าอาจเป็นเรื่องยากขึ้น
Ludwig Schulze

@niknah ฉันพบปัญหาเดียวกับคุณในวันนี้ หลังจากออกจากระบบและรอกระบวนการบางอย่างก็จะไม่ออก ฉันพบวิธีแก้ปัญหาและจะอัปเดตคำตอบนี้
Ludwig Schulze

2

วิธีแก้ปัญหาในเชลล์ปัจจุบันคือการเรียกใช้ "su" เพื่อให้มีกลุ่มใหม่โดยไม่ต้องรีบูต

ดังที่ฉันได้กล่าวไปแล้วว่ากลวิธีนี้จะต้องใช้กับแต่ละเชลล์ นั่นไม่ใช่ทั่วโลก


นี้สามารถนำมาใช้เพื่อแก้ไข adb ไม่ได้ตระหนักถึงอุปกรณ์หลังจากเพิ่มผู้ใช้ในการ adbusers sudo usermod -a -G adbusers $USERaka จากนั้นคุณสามารถทำsu $USERและsudo adb kill-server && adb start-serverแก้ไขปัญหาได้
xdevs23
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.