it-swarm-id.com

Bagaimana cara menerapkan perubahan pada grup pengguna yang baru ditambahkan tanpa perlu reboot?

Anggap saya login dengan pengguna takpar:

[email protected]:/$

Sebagai root, saya telah menambahkan takpar sebagai anggota grup webdev menggunakan:

# usermod -a -G webdev takpar

Tapi sepertinya itu belum diterapkan, karena misalnya saya tidak bisa masuk ke direktori webdev yang telah membaca izin untuk grup:

400169 drwxr-x--- 3 webdev webdev 4.0K 2011-08-15 22:34 public_html

[email protected]:/home/webdev/$ cd public_html/
bash: cd: public_html/: Permission denied

Tetapi setelah reboot saya memiliki akses seperti yang saya harapkan. Karena perubahan kelompok semacam ini ada dalam rutinitas saya, apakah ada cara untuk menerapkan perubahan tanpa perlu reboot?

Jawab Sepertinya tidak ada cara untuk membuat sesi saat ini mengetahui grup baru, misalnya manajer file tidak akan bekerja dengan perubahan baru. Tetapi login ulang akan berhasil. Perintah su juga sesuai untuk perintah temp di sesi saat ini.

41
Alexar

Solusi lokal: gunakan su yourself untuk masuk kembali. Di sesi baru Anda akan dianggap sebagai anggota grup.


Halaman manual untuk newgrp dan sg mungkin juga menarik untuk mengubah id grup Anda saat ini (dan masuk ke grup baru):

  • Untuk menggunakan webdev id grup (dan hak istimewa) di Shell Anda saat ini gunakan:

     newgrp webdev
    
  • Untuk memulai perintah dengan id grup (dan menyimpan hak istimewa saat ini di Shell Anda) gunakan:

     sg webdev -c "command"
    

    (sg seperti su tetapi untuk grup, dan itu akan berfungsi tanpa kata sandi grup jika Anda terdaftar sebagai anggota grup dalam data sistem)

59

Sistem boot ulang adalah berlebihan, bahkan logout & login tidak diperlukan jika Anda menggunakan gpasswd.

Anda dapat menambahkan takpar ke webdev grup menggunakan:

$ gpasswd -a takpar webdev

Anda dapat memeriksa keanggotaan grup menggunakan getent group {name} perintah:

$ getent group webdev
webdev:x:1008:webdev,takpar

yang harus sama dengan cat /etc/group | grep webdev. Untuk kelengkapan, inilah id keluaran dari dari takpar Sesi shell:

$ id takpar
uid=1007(takpar) gid=1007(takpar) groups=1007(takpar),1008(webdev)
3
Tombart
id webdev

tampaknya salah di sini - Anda ingin tahu tentang id Anda sendiri, takpar, bukan webdev.

Jika Anda membandingkan keluaran id dan id takpar, Anda akan melihat bahwa yang pertama belum menunjukkan perubahan, sedangkan yang terakhir menunjukkan itu. Mengapa? Ini karena id menunjukkan grup dari proses saat ini. Jika Anda logout dan kembali, atau bahkan hanya membuka jendela terminal baru, Anda seharusnya sudah melihat perubahan tanpa reboot.

1
glglgl