GNU/Linux >> Belajar Linux >  >> Linux

Facl Mengabaikan Izin "x" Tapi Hanya Pada File?

Ketika saya menggunakan setfacl untuk mengelola izin apa yang harus dimiliki file / direktori anak, untuk beberapa alasan file tersebut memiliki semua izin kecuali yang mengeksekusi (“x”).

[email protected]:/opt/lampp/htdocs/project$ getfacl .
# file: .
# owner: someuser
# group: webs
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

[email protected]:/opt/lampp/htdocs/project$ touch file
[email protected]:/opt/lampp/htdocs/project$ mkdir dir
[email protected]:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 paź 31 13:35 dir
-rw-rw-rw-  1 someuser webs    0 paź 31 13:35 file

Saya pikir ini ada hubungannya dengan umask tetapi mengubahnya dengan berbagai cara tidak pernah memberikan hasil yang diharapkan kecuali saya melewatkan sesuatu.

Bagaimana ini bisa diperbaiki?

Jawaban yang Diterima:

Jawaban Hauke ​​Laging mencoba mengatakan:

    Program apa pun yang membuat file atau direktori menentukan mode (izin)
    yang diinginkannya untuk dimiliki file tersebut.
    Ini hampir selalu dikodekan dalam program C
    (atau bahasa apa pun yang digunakan)
    dan hampir tidak pernah dapat diakses langsung oleh pengguna.
    Kemudian umask nilai dan ACL default dapat mematikan bit izin,
    tetapi tidak menambahkannya.

    Masalah Anda adalah, sementara mkdir menentukan mode 777 (rwxrwxrwx ),
    hampir semua program yang membuat file menentukan 666 (rw-rw-rw- ).
    Ini termasuk touch , shell
    (untuk pengalihan I/O; mis., program > file ),
    editor (vi , vim , emacs , dll…), dd , split , dan seterusnya.
    Oleh karena itu, Anda tidak akan mendapatkan izin rwxrwxrwx pada file biasa
    segera setelah dibuat (oleh salah satu program ini),
    apa pun yang Anda lakukan dengan ACL;
    Anda harus membuat file dan kemudian chmod itu.

    Ada beberapa pengecualian untuk aturan ini:

    • cp dan program terkait (mis., cpio , tar , dll.)
      yang menyalin atau membuat ulang file,
      yang akan (mencoba) mengatur file baru ke mode yang sama
      seperti file asli.
    • Compiler, yang membuat file biner yang dapat dieksekusi, menentukan mode 777
      (setidaknya, jika kompilasi berhasil),
      sehingga pengguna benar-benar dapat menjalankan program yang baru saja mereka kompilasi.

Linux
  1. Linux – Izin File Hanya Jalankan?

  2. Alat Transfer File Terbaik di Linux

  3. Inti dibuang, tetapi file inti tidak ada di direktori saat ini?

  1. Cara hanya mendapatkan jumlah baris file

  2. menghapus file tetapi ruang disk masih penuh

  3. Tidak ada ruang tersisa di perangkat, tetapi partisi hanya setengah penuh dan inode tersedia

  1. Salin file di terminal Linux

  2. Pindahkan file di terminal Linux

  3. Izinkan semua pengguna membuat file dalam direktori, tetapi hanya pemiliknya yang dapat menghapus