全部产品
Search
文档中心

File Storage NAS:Gunakan ACL POSIX untuk mengontrol akses

更新时间:Dec 30, 2025

Topik ini menjelaskan cara mengonfigurasi Daftar Kontrol Akses (ACL) Antarmuka Sistem Operasi Portabel (POSIX) untuk mengontrol akses ke file dan direktori dalam sistem file NFSv3.

Prasyarat

Sistem file NFSv3 telah dipasang. Untuk informasi lebih lanjut, lihat Pasang sistem file NFS pada Instance ECS Linux.

Deskripsi Perintah

Sebelum mengonfigurasi ACL POSIX, Anda harus memahami perintah tertentu terlebih dahulu. Tabel berikut menjelaskan perintah tersebut.

Perintah

Deskripsi

getfacl <filename>

Mengambil ACL yang berlaku untuk file yang ditentukan.

setfacl -m g::w <filename>

Anda dapat memberikan izin write kepada GROUP.

setfacl -m u:player:w <filename>

Memberikan izin tulis kepada pengguna player.

setfacl -m g:players:rwx <filename>

Memberikan izin baca, tulis, dan eksekusi kepada grup players.

setfacl -x g:players <filename>

Mencabut izin dari grup players.

getfacl file1 | setfacl --set-file=- file2

Menyalin ACL untuk file file1 ke file file2.

setfacl -b file1

Menghapus semua ACE non-mode untuk file file1.

setfacl -k file1

Menghapus semua ACE default dari file file1.

setfacl -R -m g:players:rw dir

Memberikan izin baca dan tulis pada file dan subdirektori di direktori dir kepada grup players.

setfacl -d -m g:players:rw dir1

Memberikan izin baca dan tulis pada file dan subdirektori baru di direktori dir1 kepada grup players.

Prosedur

Untuk mengontrol akses ke file dan direktori dengan mengonfigurasi NFS ACL, ikuti langkah-langkah berikut:

  1. Buat pengguna dan grup.

    Dalam contoh ini, pengguna berikut dibuat: player, admini, dan anonym. Grup berikut juga dibuat: players dan adminis. Pengguna player ditambahkan ke grup players, dan pengguna admini ditambahkan ke grup adminis.

    sudo useradd player
    sudo groupadd players
    sudo usermod -g players player
    sudo useradd admini
    sudo groupadd adminis
    sudo usermod -g adminis admini
    sudo useradd anonym
  2. Konfigurasikan ACL POSIX untuk mengontrol akses ke file dan direktori.

    Jalankan perintah berikut untuk menyelesaikan operasi: Buat direktori bernama dir0. Berikan izin hanya-baca kepada grup players, izin baca, tulis, dan eksekusi kepada grup adminis, serta tidak ada izin sama sekali untuk kelas others pada semua file di direktori dir0.

    sudo umask 777
    sudo mkdir dir0
    sudo setfacl -m g:players:r-x dir0
    sudo setfacl -m g:adminis:rwx dir0
    sudo setfacl -m u::--- dir0
    sudo setfacl -m g::--x dir0
    sudo setfacl -m o::--- dir0
    sudo setfacl -d -m g:players:r-x dir0
    sudo setfacl -d -m g:adminis:rwx dir0
    sudo setfacl -d -m u::--- dir0
    sudo setfacl -d -m g::--x dir0
    sudo setfacl -d -m o::--- dir0

    Setelah konfigurasi selesai, jalankan sudo getfacl dir0 untuk melihat hasilnya.

    # file: dir0
    # owner: root
    # group: root
    user::---
    group::--x
    group:players:r-x
    group:adminis:rwx
    mask::rwx
    other::---
    default:user::---
    default:group::--x
    default:group:players:r-x
    default:group:adminis:rwx
    default:mask::rwx
    default:other::---
  3. Verifikasi konfigurasi ACL.

    1. Verifikasi bahwa pengguna admini memiliki izin baca dan tulis.

      sudo su admini -c 'touch dir0/file'
      sudo su admini -c 'echo 123 > dir0/file'
    2. Verifikasi bahwa pengguna player memiliki izin hanya-baca.

      1. Verifikasi bahwa Anda tidak memiliki izin untuk membuat file.

        Misalnya, di dalam direktori dir0, coba buat file bernama file.

        • Jalankan perintah berikut:

          sudo su player -c 'touch dir0/file'
        • Jika keluaran serupa dengan informasi berikut, pengguna player tidak memiliki izin untuk membuat file file:

          touch: cannot touch ‘dir0/file’: Permission denied
      2. Verifikasi isi file dir0/file.

        • Jalankan perintah berikut:

          sudo su player -c 'cat dir0/file'
        • Jika keluaran serupa dengan informasi berikut, pengguna player memiliki izin untuk melihat isi file dir0/file:

          123
      3. Verifikasi izin tulis.

        • Jalankan perintah berikut:

          sudo su player -c 'echo 456 >> dir0/file'
        • Jika keluaran serupa dengan informasi berikut, pengguna player tidak memiliki izin tulis:

          bash: dir0/file: Permission denied

        Anda juga dapat menjalankan perintah sudo su player -c 'getfacl dir0/file' untuk melihat izin pengguna player terhadap file dir0/file.

        # file: dir0/file
        # owner: admini
        # group: adminis
        user::---
        group::---
        group:players:r-x
        group:adminis:rwx
        mask::rwx
        other::---
    3. Verifikasi bahwa pengguna anonim tidak memiliki izin apa pun.

      1. Verifikasi bahwa Anda tidak memiliki izin untuk melihat file di dalam direktori dir0.

        • Jalankan perintah berikut:

          sudo su anonym -c 'ls dir0'
        • Jika pesan berikut dikembalikan, pengguna anonym tidak memiliki izin akses yang diperlukan.

          ls: cannot open directory dir0: Permission denied
      2. Verifikasi bahwa Anda tidak memiliki izin untuk membaca file.

        • Jalankan perintah berikut:

          sudo su anonym -c 'cat dir0/file'
        • Jika keluaran serupa dengan informasi berikut, pengguna anonym tidak memiliki izin untuk melihat isi file:

          cat: dir0/file: Permission denied
      3. Verifikasi bahwa Anda tidak memiliki izin untuk mengakses file.

        • Jalankan perintah berikut:

          sudo su anonym -c 'getfacl dir0/file'
        • Jika keluaran serupa dengan informasi berikut, pengguna anonym tidak memiliki izin untuk mengakses file:

          getfacl: dir0/file: Permission denied

Operasi Terkait

Anda dapat menggunakan metode berikut untuk mencabut izin dari pengguna.

Jika Anda ingin menggunakan NFSv4 ACLs, disarankan agar setiap pengguna ditambahkan ke kelompok. Dengan demikian, Anda dapat mengonfigurasi izin untuk kelompok, bukan untuk pengguna secara individual. Untuk mencabut izin pada suatu objek dari pengguna, cukup hapus pengguna tersebut dari kelompok yang diberi izin pada objek tersebut. Misalnya, perintah berikut menghapus pengguna admini dari kelompok adminis dan menambahkannya ke kelompok adminis2.

  1. Buat kelompok adminis2.

    sudo groupadd adminis2
  2. Jalankan perintah berikut untuk menghapus pengguna admini dari grup adminis dan menambahkan pengguna tersebut ke grup adminis2:

    sudo usermod -g adminis2 admini
  3. Periksa izin berdasarkan ID pengguna.

    • Jalankan perintah berikut:

      id admini
    • Informasi berikut dikembalikan:

      uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
  4. Verifikasi izin pengguna admini.

    1. Verifikasi bahwa Anda tidak memiliki izin untuk mengakses direktori dir0.

      • Jalankan perintah berikut:

        sudo su admini -c 'ls dir0'
      • Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses direktori dir0:

        ls: cannot open directory dir0: Permission denied
    2. Verifikasi bahwa pengguna admini tidak memiliki izin untuk melihat isi file dir0/file.

      • Jalankan perintah berikut:

        sudo su admini -c 'cat dir0/file'
      • Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk melihat isi file dir0/file:

        cat: dir0/file: Permission denied
    3. Verifikasi bahwa pengguna admini tidak memiliki izin untuk mengakses file dir0/file.

      • Jalankan perintah berikut:

        sudo su admini -c 'getfacl dir0/file'
      • Jika keluaran serupa dengan informasi berikut, pengguna admini tidak memiliki izin untuk mengakses file dir0/file:

        getfacl: dir0/file: Permission denied