Izin Grup Linux tidak diberlakukan dengan benar.

18

Saya menjalankan server Ubuntu 10.04 dan saya mengalami beberapa pengalaman yang sangat kontra-intuitif dengan pengguna / grup. Sebagai contoh:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

Baris terakhir menghasilkan kesalahan izin.

Saya telah memastikan bahwa pengguna saya adalah bagian dari grup 'test' ( groups {my-user}mengkonfirmasi ini). Grup test_file juga pasti diatur ke 'test' dan izin grup ditetapkan.

Mengapa pengguna saya tidak dapat menulis ke file pengujian file?

Gordon
sumber

Jawaban:

29

Saat menambahkan pengguna ke grup baru, itu tidak akan diterapkan dalam proses yang sedang berjalan, hanya yang baru. Anda harus keluar lalu masuk kembali.

Daenyth
sumber
4
atau retas su - usernameke konsol Anda yang sedang berjalan. Anda tidak perlu keluar untuk masuk dengan cara ini :)
matthias krull
5

Baik logout maupun reboot metode server tidak berhasil untuk saya.

Namun metode ini bekerja untuk saya: (referensi ke jawaban ini )

chmod g+rwxs <parent folder>
checksum
sumber
1
Apa yang dilakukan +sbagian itu? Terima kasih.
tommy.carstensen
1
Ini mengatur bit setuid. Ini memungkinkan file dijalankan sebagai pemilik file. Misalkan Anda memiliki file yang ingin Anda jalankan sebagai root, tidak peduli siapa orang yang menjalankan file, Anda akan mengatur bit setuid untuk file itu.
Julius
Kuncinya adalah x: sepertinya hak eksekusi diperlukan untuk touchbekerja.
asac
0

Anda dapat menggunakan newgrpperintah untuk mengubah ID grup pengguna saat ini. Dari man newgrp:

Perintah newgrp digunakan untuk mengubah ID grup saat ini selama sesi login. Jika -flag opsional diberikan, lingkungan pengguna akan diinisialisasi ulang seolah-olah pengguna telah login, jika tidak lingkungan saat ini, termasuk direktori kerja saat ini, tetap tidak berubah.

Dijeda sampai pemberitahuan lebih lanjut.
sumber
1
Ini juga memiliki efek mengganti grup Anda saat ini. Itu tidak selalu merupakan ide yang baik.
Daenyth
Saya akan downvote ini jika saya bisa. Menimpa grup bisa sangat membuat frustrasi di masa depan ... esp. dengan -Ropsi!
Edward
0

Nyalakan kembali komputer untuk memastikan tidak ada proses macet yang mencegah pengguna dan grup Anda untuk ditegakkan dengan benar selama logout dan login.

Langkah-langkah ini harus memberi testizin menulis kepada pengguna grup Andatest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Nyalakan kembali komputer atau lakukan logout Sistem Operasi pengguna Anda. Restart terminal tidak cukup.

touch test_file

Pengguna dapat menulis ke file karena itu adalah bagian dari grup 'test' dan grup memiliki izin rwx.

Eric Leschinski
sumber
3
Tidak ada persyaratan bahwa Anda harus me-reboot komputer.
Kevin Panko