GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Facl Ignorieren der „x“-Berechtigung, aber nur für Dateien?

Wenn ich setfacl verwende, um zu verwalten, welche Berechtigungen die untergeordneten Dateien / Verzeichnisse haben sollen, haben die Dateien aus irgendeinem Grund alle Berechtigungen außer der Ausführungsberechtigung („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

Ich dachte, es hat etwas mit umask zu tun, aber das Ändern auf verschiedene Arten führt nie zum erwarteten Ergebnis, es sei denn, ich vermisse etwas.

Wie kann das behoben werden?

Akzeptierte Antwort:

Die Antwort von Hauke ​​Laging versucht zu sagen:

    Jedes Programm, das eine Datei oder ein Verzeichnis erstellt, gibt den Modus (Berechtigungen)
    an, den diese Datei haben soll.
    Dies ist fast immer im C-Programm
    (oder welcher Sprache auch immer verwendet wird) fest codiert
    und ist für den Benutzer kaum jemals direkt zugänglich.
    Dann die umask -Wert und die Standard-ACL können Berechtigungsbits deaktivieren,
    aber nicht hinzufügen.

    Ihr Problem ist, dass während mkdir spezifiziert einen Modus von 777 (rwxrwxrwx ),
    fast alle Programme, die Dateien erstellen, geben 666 (rw-rw-rw- ).
    Dazu gehört touch , die Shell
    (für E/A-Umleitung; z. B. program > file ),
    die Editoren (vi , vim , emacs , usw.), dd , split , und so weiter.
    Daher erhalten Sie keine Berechtigungen von rwxrwxrwx auf einer einfachen Datei
    unmittelbar nach der Erstellung (durch eines dieser Programme),
    egal, was Sie mit ACLs machen;
    Sie müssen die Datei erstellen und dann chmod es.

    Es gibt ein paar Ausnahmen von dieser Regel:

    • cp und verwandte Programme (z.B. cpio , tar , usw.)
      die eine Datei kopieren oder anderweitig neu erstellen,
      die die neue Datei auf den gleichen Modus
      wie die Originaldatei setzen (versucht).
    • Compiler, die ausführbare Binärdateien erstellen, geben einen Modus von 777
      an (zumindest, wenn die Kompilierung erfolgreich ist),
      damit der Benutzer das gerade kompilierte Programm tatsächlich ausführen kann.

Linux
  1. Linux – Dateiberechtigung nur ausführen?

  2. Alle Dateien außer den Dateien im Array abrufen – Bash?

  3. Die besten Dateiübertragungstools unter Linux

  4. Unerwartete Exec-Berechtigung von mmap, wenn Assembly-Dateien im Projekt enthalten sind

  5. Erteilen Sie Ausführungsberechtigungen für Verzeichnisse, aber nicht für Dateien

Kopieren Sie Dateien im Linux-Terminal

Verschieben Sie Dateien im Linux-Terminal

Die 6 besten Möglichkeiten zum Anzeigen von Dateien unter Linux

Dateien werden gelöscht, aber der Speicherplatz ist noch voll

Datei verschieben, aber nur wenn sie geschlossen ist

Allen Benutzern erlauben, Dateien in einem Verzeichnis zu erstellen, aber nur der Eigentümer kann Dateien löschen