รีเฟรชสมาชิกกลุ่มเสริมโดยไม่ต้องเข้าสู่ระบบอีกครั้ง?


12

จากความเข้าใจของฉันเซสชัน Linux เก็บสมาชิกกลุ่มไว้ที่การเข้าสู่ระบบ จากนั้นหากมีการเพิ่มสมาชิกกลุ่มใหม่ (เช่นด้วยadduser someuser somegroup) ผู้ใช้จะต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้สามารถใช้ประโยชน์จากการเป็นสมาชิกใหม่ได้

คำถามของฉันคือ: มีวิธีใดที่จะรีเฟรชความเป็นสมาชิกกลุ่มในกระบวนการโดยไม่ต้องลงชื่อเข้าใช้อีกครั้งออกจากกระบวนการปัจจุบันหรือเริ่มกระบวนการใหม่หรือไม่

คำตอบ:


9

คุณสามารถเริ่มเข้าสู่ระบบใหม่จากเซสชั่นของคุณ

$ su - your_login

ไม่ส่งผลกระทบต่อกระบวนการทำงานของคุณ หากคุณใช้ Xserver คุณสามารถเริ่ม xterm และพิมพ์คำสั่งนี้ (ส่งผลเฉพาะเซสชันเทอร์มินัลนี้) วิธีเดียวที่จะทำให้มันคงอยู่คือการจบเซสชันของคุณและเริ่มต้นอีกครั้ง


ในกรณีที่คุณอนุญาตให้ใช้การรับรองความถูกต้องของรหัสสาธารณะไปยังเซิร์ฟเวอร์ของคุณคุณจะต้องนำเข้ารหัสลับหรือไม่
Cyril Duchon-Doris

5

ฉันไม่คิดอย่างนั้น แต่คุณสามารถใช้newgrpคำสั่งเพื่อวางไข่เชลล์ใหม่ด้วยกลุ่มใหม่ สิ่งนี้ไม่ถาวร

newgrp superawesomegroupname

คุณจะต้องเข้าสู่ระบบผู้ใช้ของคุณออกไปแล้วอีกครั้ง


1
+1 ทำงานโดยไม่ต้องใช้รหัสผ่าน / การรับรองความถูกต้องซึ่งแตกต่างจากsu
Cyril Duchon-Doris


2

คุณทำได้:

exec su -l $USER

การรีเฟรชรายการกลุ่มโดยปริยายโดยไม่ต้องออกจากเทอร์มินัล


1

คุณสามารถใช้gpasswdสำหรับการเปลี่ยนแปลงทันที:

gpasswd -a someuser somegroup

ไม่จำเป็นต้องสร้างเชลล์หรือ relogin ใหม่ หลังจากนั้นตรวจสอบความเป็นสมาชิกกลุ่มโดยใช้getent:

getent group somegroup

คุณกำลังสร้างกลุ่มจากนั้นคุณจะค้นหากลุ่มนั้น สิ่งนี้ไม่เกี่ยวข้องกับคำถามที่กล่าวถึง - การเปลี่ยนแปลงไม่มีผลในเซสชันปัจจุบันของคุณ
Str.

0

เกี่ยวกับสิ่งนี้ (แม้ว่าจะเป็นไปตามข้อกำหนดเท่านั้นที่คุณไม่จำเป็นต้อง relogin)

exec /bin/bash -l

แฟล็ก -l จะถือว่าเชลล์ล็อกอินใหม่และ exec จะแทนที่เชลล์ปัจจุบันด้วยเชลล์ใหม่นั้น BTW อย่าพิมพ์ชื่อของเชลล์ :-)

ปัญหาหนึ่งของการใช้ newgrp และ su ตามที่แนะนำไว้ก่อนหน้านี้คือจะสร้างเชลล์ย่อยใหม่ ใช่คุณสามารถนำหน้าพวกเขาด้วยคำสั่ง exec เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.