GNU/Linux >> Belajar Linux >  >> Linux

Berikan izin menulis ke banyak pengguna pada folder di Ubuntu

Ada dua cara untuk melakukannya:atur direktori agar "dunia" dapat ditulisi atau buat grup baru untuk dua pengguna dan buat direktori dapat ditulisi ke grup itu.

Jelas membuatnya dapat ditulisi dunia adalah Hal Buruk, jadi opsi kedua lebih disukai.

Pengguna di Linux dapat menjadi anggota lebih dari satu grup. Dalam hal ini Anda ingin membuat grup baru, sebut saja tomandruser :

sudo groupadd tomandruser

Sekarang grup sudah ada, tambahkan dua pengguna ke dalamnya:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Sekarang yang tersisa hanyalah menyetel izin pada direktori:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Sekarang hanya anggota grup tomandruser yang dapat membaca, menulis, atau mengeksekusi apa pun di dalam direktori. Catat argumen -R pada perintah chmod dan chgrp:ini memberitahu mereka untuk kembali ke setiap sub direktori dari direktori target dan memodifikasi setiap file dan direktori yang ditemukannya.

Anda mungkin juga ingin mengubah 770 menjadi sesuatu seperti 774 jika Anda ingin orang lain dapat membaca file, 775 jika Anda ingin orang lain membaca dan menjalankan file, dll. Perubahan penetapan grup tidak akan berlaku hingga pengguna keluar dan masuk kembali.

Jika Anda juga ingin (Anda mungkin ingin) agar file baru yang dibuat di dalam direktori oleh salah satu pengguna dapat ditulis secara otomatis oleh orang lain dalam grup, lihat di sini.


Skrip berikut menunjukkan contoh untuk memberikan r (read) / w (write) / x (execute) izin ke jalur folder yang diberikan /path/to/the/directory untuk USER1 dan USER2 . Jika Anda hanya ingin memberikan akses tulis, harap ganti rwx dengan w .

#!/bin/bash

# Block others and people in the same group to do `r/w/x` on the give folder:    
sudo chmod 700 /path/to/the/directory 

# Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

# Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory

Jawaban opini:

  • Saya suka meletakkan folder bersama saya di tempat sentral. Bukan di homefolder orang lain, melainkan /srv/common atau bahkan (untuk jalur pendek tanpa ampun...) /repo atau serupa.
  • tentukan grup baru (biasanya untuk semua pengguna lokal, yang ingin Anda ikuti. Namun, bukan beberapa pengguna teknis seperti wwwuser , kecuali ada alasan yang sah)
  • root bagus untuk dimiliki sebagai anggota, juga memiliki pemilik netral dari folder bersama itu
  • setGid sangat penting, sehingga file baru menjadi keanggotaan grup umum, jadi frank:common , bukan frank:frank
    sudo groupadd -f common
    usermod -aG common root
    usermod -aG common frank
    usermod -aG common mike

    # sort of hack for instant group refresh w/o logout
    # superuser.com/a/345051
    su - frank

    # sanity test1:
    cat etc/group | grep common
        common:x:1008:root,frank,mike
    # sanity test2:
    groups
        frank adm cdrom ... common
    sudo chown root:common /repo

    # (if you have shareable stuff setting somewhere else,
    #  copy it to here now)

    # no right to the world, the right rights to user and group
    chmod -R ug+rwXs,o-rwx $dest
    # why uppercase X ? → unix.stackexchange.com/a/416885

    # why s ? → superuser.com/a/277785
    # as there is no such thing as an uppercase S (directories only)
    # settings the s attribute on preexisting content would have to happen
    # like so:
    # find /repo -type d -exec chmod g+s {} \\\;

Linux
  1. Benar-benar Bagikan Folder Dengan Banyak Pengguna Di Komputer?

  2. Server Ubuntu, Banyak Pengguna Jarak Jauh Secara Bersamaan?

  3. Bagaimana cara mendaftar semua pengguna dalam grup Linux?

  1. Tulis ke folder tmp

  2. Bagaimana saya bisa memberikan akses tulis folder ke semua pengguna di linux?

  3. Mengapa 'Lainnya' dapat membaca file secara default di Ubuntu?

  1. Linux – Ubah Izin Folder?

  2. Izin Untuk Folder Webroot Apache Di Server Dev?

  3. Bagaimana cara mengatur izin linux untuk folder WWW?