GNU/Linux >> Tutoriels Linux >  >> Linux

Facl Ignorant La Permission "x" Mais Uniquement Sur Les Fichiers ?

Lorsque j'utilise setfacl pour gérer les autorisations que doivent avoir les fichiers/répertoires enfants, pour une raison quelconque, les fichiers ont toutes les autorisations sauf celle d'exécution ("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

Je pensais que cela avait quelque chose à voir avec umask mais le changer de différentes manières ne donne jamais le résultat attendu à moins que quelque chose ne me manque.

Comment résoudre ce problème ?

Réponse acceptée :

La réponse de Hauke ​​Laging essaie de dire :

    Tout programme qui crée un fichier ou un répertoire spécifie le mode (autorisations)
    qu'il veut que ce fichier ait.
    Ceci est presque toujours codé en dur dans le programme C
    (ou quel que soit le langage utilisé)
    et n'est presque jamais directement accessible à l'utilisateur.
    Puis le umask et l'ACL par défaut peuvent désactiver les bits d'autorisation,
    mais pas les ajouter.

    Votre problème est que, alors que mkdir spécifie un mode de 777 (rwxrwxrwx ),
    presque tous les programmes qui créent des fichiers spécifient 666 (rw-rw-rw- ).
    Cela inclut le touch , le shell
    (pour la redirection d'E/S ; par exemple, program > file ),
    les éditeurs (vi , vim , emacs , etc…), dd , split , etc.
    Par conséquent, vous n'obtiendrez pas les autorisations de rwxrwxrwx sur un fichier ordinaire
    immédiatement après sa création (par l'un de ces programmes),
    quoi que vous fassiez avec les ACL ;
    vous devez créer le fichier puis chmod il.

    Il existe quelques exceptions à cette règle :

    • cp et les programmes associés (par exemple, cpio , tar , etc.)
      qui copient ou recréent un fichier,
      qui (tentera de) définir le nouveau fichier sur le même mode
      que le fichier d'origine.
    • Les compilateurs, qui créent des fichiers exécutables binaires, spécifient un mode de 777
      (au moins, si la compilation réussit),
      afin que l'utilisateur puisse réellement exécuter le programme qu'il vient de compiler.

Linux
  1. Core dumpé, mais le fichier core n'est pas dans le répertoire courant ?

  2. diff pour afficher uniquement les noms de fichiers

  3. Autorisation exec inattendue de mmap lorsque les fichiers d'assemblage sont inclus dans le projet

  4. Donner l'autorisation d'exécution aux répertoires mais pas aux fichiers

  5. Il ne reste plus d'espace sur l'appareil, mais la partition n'est qu'à moitié pleine et les inodes sont disponibles

Copier des fichiers dans le terminal Linux

Déplacer des fichiers dans le terminal Linux

Les 6 meilleures façons d'afficher des fichiers sous Linux

suppression de fichiers mais l'espace disque est toujours plein

Déplacer le fichier mais seulement s'il est fermé

Grep dans un énorme fichier journal (> 14 Go) uniquement les derniers x Go ?