Izin ditolak untuk mengubah gid (grup) dari file yang saya miliki


17

Tampaknya saya masih melewatkan beberapa hal tentang cara izin bekerja. Saya menggunakan sistem debian 7 btw. baru saja saya memiliki file yang saya unduh dan ini miliknya myuser:myuser, yaitu pengguna dan grup ditetapkan untuk saya. Itu juga berada di $HOMEdirektori saya karena di situlah saya mengunduhnya.

Sejauh ini baik. Sekarang saya ingin membagikan file ini dengan beberapa pengguna pc lainnya dan untuk itu saya ingin mengalihkan kepemilikan grup file tersebut ke grup "pengguna". namun itu gagal:

nass@quarx:~/xmas_carol$ chgrp -R users * 
chgrp: changing group of movie.mov': Operation not permitted

Dan isi folder tersebut adalah:

-rwxr-xr-x 1 nass nass 2482411461 Feb  6 03:57 movie.mov

Saya tidak jelas tentang apa yang terjadi dengan izin. Bisakah seseorang menjelaskan


Apakah /xmas_carolsamba / nfs mount?
Rahul Patil

Solusinya adalah setfacl(jika filesystem memiliki ACL). lihat unix.stackexchange.com/questions/101263/…
ctrl-alt-delor

Saya memiliki kesalahan yang sama sampai saya menyadari bahwa saya baru saja menambahkan diri saya ke grup itu. Dengan kata lain, saya harus keluar, masuk kembali, agar perubahan diterapkan.
Jonathan

Jawaban:


22

Pengguna Anda mungkin bukan anggota usersgrup, jadi Anda tidak punya hak untuk memberikan file ke grup itu. Menggambarkan:

$ groups
terdon sudo netdev fuse vboxsf vboxusers

$ ls -l file
-rw-r--r-- 1 terdon terdon 604 Feb  6 03:04 file
$ chgrp users file
chgrp: changing group of ‘file’: Operation not permitted
$ chgrp vboxusers file
$ ls -l file
-rw-r--r-- 1 terdon vboxusers 604 Feb  6 03:04 file

Perilaku ini disebutkan dalam spesifikasi POSIX :

Hanya pemilik file atau pengguna dengan hak istimewa yang sesuai yang dapat mengubah pemilik atau grup file tersebut.

Beberapa implementasi membatasi penggunaan chgrp untuk pengguna dengan hak istimewa yang sesuai ketika grup yang ditentukan bukan ID grup yang efektif atau salah satu ID grup tambahan dari proses panggilan.

Alasan utama untuk ini adalah bahwa jika Anda bukan anggota grup, Anda seharusnya tidak dapat mengubah akses grup itu. Jawaban tentang chownizin ini juga relevan.

Secara tradisional, pada sistem bersama, Anda memiliki usersgrup tempat semua pengguna biasa berada dan itu adalah grup utama dari setiap pengguna. Dengan begitu, file dibuat dimiliki oleh usersgrup dan semua pengguna dapat membacanya.

Lagi pula, karena itu bukan cara distro berbasis Debian diatur hari ini, cara untuk memberikan akses pengguna tertentu ke file Anda adalah dengan

  1. Ubah kepemilikan grup dari file / direktori ke grup yang Anda dan pengguna lain adalah anggotanya;

  2. Cukup ubah izin file / direktori sesuai:

    $ chmod 755 /home/terdon
    $ ls -ld /home/terdon
    drwxr-xr-x 170 terdon terdon 491520 Apr 20 13:43 /home/terdon/
    

    Itu akan membuat direktori dapat diakses oleh semua orang.


4

Pada UNIC baru-baru ini (dan "baru-baru ini" memiliki arti yang agak luas di sini), Anda tidak dapat mengubah kepemilikan grup file ke grup yang bukan anggota Anda. Versi lama dari rasa UNIX yang berbeda mendukung ini, untuk kasus penggunaan seperti milik Anda, tetapi terbukti menjadi masalah keamanan.

Masalah untuk dapat mengubah kepemilikan grup menjadi grup asing adalah masalah yang sangat sepele: Jika sistem file tempat file tersebut diaktifkan kuota grup diaktifkan, pengguna dengan niat jahat dapat dengan mudah mengisi kuota grup asing, sehingga tidak memungkinkan bagi pengguna dengan grup ini sebagai ID grup utama untuk membuat file lebih lanjut. Ini dapat dengan mudah mempengaruhi bahkan proses yang sudah berjalan dan menyebabkan mereka mati karena "disk penuh".

Untuk menghindari masalah Anda, ada (setidaknya) dua kemungkinan: Pertama, Anda bisa meminta pengguna super sistem Anda untuk menambahkan grup target yang dimaksud ke daftar grup tambahan akun Anda. Tentu saja ini hanya masuk akal jika Anda tidak memiliki hubungan dengan grup ini.

Cara lain untuk tidak perlu membuat file yang dapat ditulis dunia, yang tentunya tidak diinginkan, adalah menggunakan ACL untuk memberikan izin baca dan tulis kelompok yang dimaksud:

$ setfacl -m group:thegroupsname:rwx the_file(s)

Anda tidak harus memberikan eksekusi (pada file biasa), dan mungkin tidak ingin memberikan izin menulis.
ctrl-alt-delor

2

Mungkin karena bit yang tidak dapat diubah diatur. Dapatkan daftar atribut file yang sedang berjalan

lsattr /path/to/your/file

jika saya muncul, maka atribut yang tidak dapat diubah ditetapkan dan tidak ada yang dapat memodifikasi file (bahkan root).

Untuk menghapus atribut Anda harus menjalankannya sebagai root

chattr -i /path/to/your/file

Untuk melihat lebih banyak atribut sistem file, baca halaman manual

man chattr
man lsattr

Poin yang bagus, tetapi dari pertanyaan saya kira si penanya tidak memiliki hak pengguna super, yang Anda perlu menghapus flag yang tidak dapat diubah (setidaknya pada semua filesystem yang saya ikuti sejak lama). Juga, karena dia baru saja mengekstrak arsip, kemungkinan besar itu bukan masalah karena pengarsipan yang digunakan perlu mengaturnya (masalah yang sama).
Andreas Wiese

0

Jika Anda baru saja menambahkan diri Anda ke grup, pastikan untuk keluar, masuk kembali untuk memastikan perubahannya berlaku.

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.