Apakah ada cara di Linux untuk memperbarui properti pengguna / grup tanpa harus login lagi?


24

Setelah saya mengedit / etc / group dan saya menambahkan pengguna ke grup yang bukan miliknya, pengguna tidak akan dapat menggunakan hak yang baru diperoleh kecuali memulai sesi baru.

Apakah ada perintah untuk menyegarkan properti pengguna / grup dalam sesi yang sedang berlangsung?


1
Apakah ada alasan Anda mengedit file dengan tangan daripada menggunakan useradd -G groupname username?
Bobby

4
@ Bobby: ini tidak ada bedanya.
niXar

Anda mungkin melihat jawaban ini .
Pablo A

Jawaban:


16

Pada tingkat kernel, keanggotaan grup adalah properti dari setiap proses. Kecuali jika ia memiliki kemampuan yang sesuai (CAP_SETGID jika saya tidak salah), yaitu root privilege untuk semua maksud dan tujuan, suatu proses tidak dapat menjadi bagian dari grup baru.

Seorang pengguna tidak ada sebagai objek di tingkat kernel; hanya proses (dan file) yang dilakukan. Suatu proses memiliki uid (efektif dan yang lainnya) dan daftar id grup.

Ketika Anda menambahkan pengguna ke grup, kernel tidak tahu apa artinya. Hanya tahu, secara tidak langsung, bahwa waktu berikutnya / bin / login atau / usr / bin / newgrp menjalankan proses dengan id pengguna yang akan memiliki id grup baru dalam daftar.

Jadi, untuk menjawab pertanyaan Anda, jika Anda berbicara tentang sesi Gnome atau KDE, Anda harus memulai kembali memang. Atau jika Anda hanya peduli tentang hasil dari satu perintah sejauh yang berkaitan dengan grup baru, Anda dapat menggunakan newgrp yang baru saja saya sebutkan. Ini akan memulai shell baru dengan grup yang baru ditambahkan.


5

Saya telah membaca sebelumnya bahwa perintah newgrp melakukan ini, tetapi hanya untuk shell saat ini. Tampaknya tidak ada alternatif yang lebih baik daripada logout dan kembali lagi.


3
Apa yang dilakukan newgrp sebenarnya adalah memulai sebuah shell baru. Jadi jika Anda melakukannya, Anda kembali ke cangkang lama Anda. Saya biasanya cukup melakukan 'exec newgrp'
niXar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.