มีวิธีใน Linux เพื่ออัปเดตคุณสมบัติผู้ใช้ / กลุ่มโดยไม่ต้องเข้าสู่ระบบอีกครั้งหรือไม่?


24

หลังจากที่ฉันแก้ไข / etc / group และฉันเพิ่มผู้ใช้ในกลุ่มที่ไม่ได้เป็นสมาชิกผู้ใช้จะไม่สามารถใช้สิทธิ์พิเศษที่ได้มาใหม่เว้นแต่จะเริ่มเซสชันใหม่

มีคำสั่งให้รีเฟรชคุณสมบัติผู้ใช้ / กลุ่มในเซสชันต่อเนื่องหรือไม่?


1
มีเหตุผลที่คุณแก้ไขไฟล์ด้วยมือแทนที่จะใช้useradd -G groupname usernameใช่ไหม
Bobby

4
@ บ๊อบบี้: นี่จะไม่สร้างความแตกต่าง
niXar

คุณอาจมองคำตอบนี้
Pablo

คำตอบ:


16

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

ผู้ใช้ไม่มีอยู่เป็นวัตถุในระดับเคอร์เนล กระบวนการเท่านั้น (และไฟล์) ทำ กระบวนการมี uid (มีผลบังคับใช้และ whatnot) และรายการรหัสกลุ่ม

เมื่อคุณเพิ่มผู้ใช้ในกลุ่มเคอร์เนลไม่ทราบว่ามันหมายถึงอะไร มันรู้เพียงทางอ้อมว่าครั้งถัดไป / bin / เข้าสู่ระบบหรือ / usr / bin / newgrp จะเรียกใช้กระบวนการที่มี ID ผู้ใช้นั้นจะมีรหัสกลุ่มใหม่ในรายการ

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


5

ฉันอ่านมาก่อนแล้วว่าคำสั่งnewgrpทำสิ่งนี้ แต่เฉพาะกับเชลล์ปัจจุบัน ดูเหมือนจะไม่มีทางเลือกอื่นที่ดีไปกว่าการออกจากระบบและกลับเข้ามาอีกครั้ง


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