Bagaimana cara mengatur folder sehingga apa pun yang dibuat di dalamnya mewarisi izin?

18

Saya memiliki folder / data (sebenarnya sebuah partisi) untuk semua data yang harus dapat diakses oleh semua pengguna (dalam hal ini anggota keluarga). Kita semua memiliki akun pengguna individu dan sering kali semuanya masuk kapan saja di PC yang satu ini.

Bagaimana saya bisa mengatur izin sehingga kita semua dapat mempertahankan akses ke file di sana, tidak peduli siapa yang membuatnya, termasuk folder baru? Jika saya membuat folder, ia mendapat pengguna dan grup saya, jadi tidak ada orang lain yang bisa menulis.

steevc
sumber
untuk para pengunjung. Jika Anda hanya ingin nama grup diwarisi chmod -R g+s /parentdir. Catatan: jalankan chmod -R sebelum ini jika diperlukan
Thamme Gowda
1
Catatan di atas: -Rtanda chmodsangat jarang berguna karena kita jarang menginginkan direktori (yang selalu memerlukan izin eksekusi) dan file reguler (yang jarang memerlukan izin eksekusi) memiliki izin yang sama
Zanna

Jawaban:

17

Pendekatan lain adalah dengan menggunakan Daftar Kontrol Akses, superset dari izin file.

Pertama-tama, kita harus menginstal paket acl Instal acl :

sudo apt-get install acl

Sebelum Ubuntu 14.04 , partisi harus dipasang dengan opsi aclagar yang berikut berfungsi. Itu bisa ditambahkan /etc/fstab, seperti pada

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

atau untuk sistem file yang sudah terpasang

sudo mount -o remount,acl /media/shared

Selanjutnya, Anda harus membuat grup baru, di mana semua pengguna diizinkan untuk mengakses share dalam mode baca / tulis akan ditambahkan. Saya menyebutnya usershare. Grup yang sudah ada dapat digunakan.

sudo addgroup usershare

Sekarang kami menambahkan pengguna enzotibdan steevcke grup itu:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(efektif pada login berikutnya).

Kemudian kami menambahkan ACL dengan rwxizin untuk grup usershareke semua file yang sudah ada/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Akhirnya kami menambahkan ACL default dengan rwxizin untuk grup usershareuntuk semua file yang dibuat dari sekarang di dalam/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Sekarang semua pengguna usersharegrup memiliki izin penuh pada semua file di bawah /media/shared. Izin setiap pengguna di direktori home miliknya dan yang lain tidak terpengaruh.

Saya menguji solusi ini dan tampaknya berhasil, tetapi saran dan koreksi dipersilahkan.

Catatan : file dan direktori baru yang dibuat di direktori yang dipertimbangkan akan memiliki izin menulis untuk usersharegrup, tetapi file yang disalin atau dipindahkan dalam folder akan mempertahankan izin aslinya. Jika pengguna, seperti yang saya mengerti, hanya memerlukan akses tulis ke direktori yang baru dibuat, ini bukan masalah. Kalau tidak, harus memodifikasi izin dengan tangan. Lihat jawaban ini tentang cara mengatasinya dengan mendefinisikan umask pengguna 002.

enzotib
sumber
Saya tidak terlalu mengenal acl, dapatkah Anda menguji dan menyalin file dengan izin seperti rw-r - r-- dari folder beranda ke folder bersama dan melihat apakah izinnya berubah ke rwx default untuk usersharegrup?
mengatur
@ atur: tidak, itu tidak berfungsi sebagaimana dimaksud. Akan menunjukkan jawabannya. Terima kasih
enzotib
Saya akan menambahkan bahwa /etc/fstab/ remountlangkah tidak diperlukan, karena ext4harus dipasang dengan aclopsi aktif secara default.
enzotib
8
  1. Buat folder.

    Sebagai contoh:

    mkdir /mnt/family
    

    Jika Anda perlu me-mount partisi ke mereka ... jika ext4 yang Anda butuhkan /etc/fstabadalah

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Buat grup myfam.

    addgroup myfam
    
  3. Tambahkan beberapa pengguna ke grup itu

    adduser papa myfam  
    adduser mom myfam
    
  4. Sekarang ambil dan beri izin.

    Saya pikir Anda harus mulai, dari berubah umask.

    Izin sistem file default dan hak akses dalam 12,04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Sekarang yang paling penting. Baris itu membuat setgidapa pun yang Anda buat di bawah folder itu memiliki pengguna Anda sebagai pemilik dan grup myfam. Itu membiarkan sistem menimpa grup utama pengguna.

    chmod -R g+s /mnt/family   
    
Pas_
sumber
3

Hal paling sederhana yang terlintas dalam pikiran adalah menambahkan setiap pengguna ke grup semua pengguna lain.

Kemudian ganti umask dari setiap pengguna dari 022 ke 002, ini bisa dilakukan di /etc/profile.

Edit

Langkah pertama bisa diganti dengan yang berikut: membuat semua pengguna menjadi anggota usersgrup sebagai grup utama.

Edi2

Seperti yang disarankan @James_Henstridge, akan lebih mudah untuk mengatur bit setgid pada direktori utama, sehingga file dan direktori baru yang dibuat akan memiliki grup yang sama, secara terpisah dari pengguna. Dengan cara ini Anda dapat menghindari set userssebagai grup utama untuk pengguna.

enzotib
sumber
Anda mungkin ingin mengedit jawaban Anda juga menyarankan pengaturan bit setgid pada semua direktori /datasehingga file baru mewarisi kepemilikan grup.
James Henstridge
sunting3 :) Jika Anda menyalin file ke /datafolder, izin tidak diwarisi, jadi file lama dengan izin gw tidak dapat dimodifikasi oleh orang lain. sunting4: menetapkan userssebagai grup utama Anda dan umask0002 jelas bukan ide yang baik karena siapa pun dari grup itu akan dapat memodifikasi file Anda yang baru dibuat.
mengatur
@ mengatur: tentang edit4 Anda, saya menyarankan untuk dimasukkan ke dalam usersgrup hanya pengguna yang diizinkan memiliki akses baru ke share. Itu masalah kenyamanan, bisa juga membuat grup lain untuk itu. Mengenai edit3 Anda, itu tidak benar, file yang disalin memperoleh grup folder.
enzotib
@enzotib: untuk menegaskan kembali poin saya dengan kata lain: edit4 - jika usersgrup utama saya dan ada lebih banyak pengguna dalam grup ini maka mereka dapat memodifikasi file saya bahkan di luar direktori bersama; edit3 - Saya menulis izin , BUKAN grup folder.
mengatur
@ mengatur: poin Anda benar, saya hanya menulis jawaban lain, bisa menarik untuk mendengar pendapat Anda.
enzotib
2

Ini terdengar seperti pekerjaan untuk ACL. Giles memiliki jawaban yang sangat menyeluruh pada situs SE Unix dan Linux yang membantu saya memecahkan masalah yang sama.

ephsmith
sumber
1
Itu berhasil! Saya telah melihat jawaban lain menggunakan ACL, tetapi ini adalah satu-satunya yang pernah saya lihat yang mengubah izin tidak hanya file dan direktori baru yang dibuat di direktori bersama, tetapi juga dari mereka yang disalin atau dipindahkan ke dalamnya.
ダ ン ボ ー
0

Saya tidak mengerti, apakah semua linux-linux, linux-windows, linux - ???, menggunakan Samba ?, SSH ?, Merpati ?; bagaimanapun Anda harus memasukkan yang lain ke dalam Grup dengan nama pengguna Anda (Grup Anda), dan mereka akan mendapatkan izin yang sama seperti Anda.

juancarlospaco
sumber
Ini adalah banyak pengguna pada satu PC. Saya yakin pasti ada cara untuk mendapatkan izin ke default untuk sesuatu yang bermanfaat.
steevc
0

Saya menemukan pertanyaan ini ketika mencari jawaban untuk masalah KELOMPOK saya. Saya sudah membaca pertanyaan dan sepertinya saya sudah menerapkan apa yang coba diselesaikan oleh pertanyaan itu.

Jadi saya repot-repot menjawabnya.

Saya sudah menyiapkan setup untuk semua pengguna di LAN saya dengan hanya membaca dan mengeksekusi, dan hanya akun saya yang memiliki izin untuk menulis di folder bersama.

Saya memiliki server serba guna di komputer saya yang menggunakan ubuntu 12.04 LTS Desktop Edition. Saya memiliki mesin klien campuran linux dan windows.

Inilah cara saya mengaturnya:

1.Pada server saya, saya memiliki akun pengguna bernama admindanclientone

The adminakun adalah akun dibuat ketika saya menginstal ubuntu dan clientoneakun adalah akun yang dibuat dengan menggunakan USER AKUN menu di ubuntu. Ini hanya memiliki izin standar, tidak ada hak admin dan ditambahkan ke usersgrup. Anda tentu saja dapat melakukan ini hanya dengan menggunakan terminal. Tambahkan lebih banyak akun pengguna tambahan untuk mesin klien Anda.

2. Partisi / folder yang dibagikan di-auto-kan di fstab hanya dengan menggunakan opsi default.

3. Jaringan saya berada dalam lingkungan workgroup, dan itu ada di mylanworkgroup.

Semua mesin di lan saya diatur untuk menggunakan mylanworkgroup.

4. Folder bersama saya bernama sharedsudah memiliki file di dalamnya. Jadi saya mengubah pemilik dan grup untuk itu secara rekursif menggunakan perintah di bawah ini.

 sudo chown -Rv admin:users /shared

5. Saya juga mengatur izin folder dan file ke /sharedfolder secara rekursif menggunakan perintah

 sudo chmod -Rv 750 /shared

mesin tamu di mylanworkgroup saya tidak memiliki akses ke share menggunakan chmod 750

Anda dapat menggunakan

 sudo chmod -Rv 755 /shared

Semua akun pengguna di masa depan dalam usersgrup hanya memiliki izin baca baca.

6.Dalam mesin klien saya satu (windows xp) saya mengatur akun pengguna bernama clientone. Nama pengguna dan kata sandi yang sama dengan yang dibuat di server ubuntu saya. Akun kedua bernama clienttwojuga dibuat di server ubuntu dan itu adalah akun pengguna yang sama yang digunakan di mesin kedua saya (linuxmint 15).

7. Di mesin klien saya satu setelah masuk menggunakan clientoneakun, saya pergi untuk menjalankan perintah kemudian masukkan

 //192.168.10.254/shared

192.168.10.254adalah alamat ip dari server ubuntu saya, /sharedadalah folder yang dibagikan di server ubuntu saya Di mesin klien saya dua (linuxmint 15), saya pergi ke Menu> Network dan di Location: bar dialog yang saya ketik:

 smb://192.168.10.254/shared

Jika Anda diminta kata sandi, masukkan kata sandi akun pengguna Anda. Dan juga kata sandi keyring Anda jika KEYRING diaktifkan di mesin linux Anda.

Yang ini berfungsi untuk saya dalam pengaturan jaringan saya sendiri. Server saya adalah server serba guna yang berfungsi sebagai server squid, xbmc dan server mediatomb dan server amahi.

Saya masih mencari cara tentang cara meningkatkan bagian berbagi file dari pengaturan saya. Instruksi di atas bukanlah solusi anti peluru, beli Anda dapat mencobanya. Saya menguji dan mencoba ACL ”bersama dengan pemasangan bersama folder secara otomatis. Karena kebutuhan berbagi folder Anda menjadi rumit, instruksi di atas tidak akan menjamin Anda berhasil.

Info Tambahan:

Saya telah menginstal Amahi Server di server saya, saya juga menggunakannya untuk membuat akun pengguna yang saya ingin memiliki akses ke folder bersama. Saya juga menggunakannya untuk membuat folder share baru.

Ketika Anda menginginkan izin pengguna yang lebih kompleks untuk pengguna yang berbeda, ACL adalah yang akan pergi.

GaryP
sumber
0

Saya memiliki file video pada nama saya, tetapi ketika saya masuk dengan nama anak perempuan saya akunnya tidak dapat melihat file video. Jadi, apa yang saya lakukan adalah pergi ke akun pengguna, tidak terkunci (kanan atas), kemudian mengubah jenis akunnya dari "standar" menjadi "administrator (yang merupakan akun saya), dan sekarang semua file video, benar-benar semuanya, muncul ketika login di bawah akunnya.

joe
sumber