web-dev-qa-db-fra.com

+ ou @ mark après avoir exécuté 'ls -al'

Dans Mac OS X, Run 'ls -al' me donne quelque chose comme ça.

[.____] DRWXRWXRWX + 4 Staff de SMCHO 136 mai 5 09:18 Public [.____ ____] DrWXR-XR-X @ 36 SMCHO Staff 1224 Sep 4 22:51 BIN [.____]
  • Qu'est-ce que le + ou @ à la fin de la première colonne signifie?
  • Est-ce unique à Mac, ou commun à UNIX?

AJOUTÉE

Après la réponse de Michael Mrozek, j'ai couru 'ls -ale' pour obtenir ce qui suit.

 DRWX ------ + 66 Staff SMCHO 2244 Août 30 13:40 Bibliothèque [.____] 0: groupe: com.apple.sharepoint.group.3 Autoriser la recherche [.____] 1: Groupe: Tout le monde refuser la suppression [.____] DRWXR-XR-X 3 SMCHO Staff 102 sept. 15:01 Mail [.____] DRWX ----- + 13 SMCHO Staff 442 Août 28 17:55 Films 
 0: groupe: tout le monde nie supprimer 
 DRWX ----- + 6 Staff SMCHO 204 JUL 9 09:37 Musique 
 0: groupe: tout le monde refuse de supprimer [.____] DRWX ------ + 11 SMCHO Staff 374 28 août 16:55 Photos [.____] 0: Groupe: Tout le monde refuser la suppression [.____] Staff de DrWXR-XR-X 3 SMCHO 102 5:43 Projets 
 drwxrwxrwx + 4 SMCHO Staff 136 mai 5 mai 5 09:18 Public [.____] 0: Groupe: Tout le monde refuser la suppression [.____] Personnel SMCHO 204 DRWXR-XR-X + 6 SITESSE 
 0: groupe: tout le monde refuse de supprimer [.____]

Que signifient ces messages annexés? Pourquoi dois-je les avoir pour certains des fichiers? Je ne me souviens pas de faire quelque chose de particulier pour eux.

30
prosseek

Les @ suffixe est unique à Mac OS et est couvert par cette question , alors j'ai copié cette partie de ma réponse à partir de là; Cela signifie que le fichier a attributs étendus . Vous pouvez utiliser l'utilitaire de ligne de commande xattr pour les afficher et les modifier:

xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename

Les + suffixe signifie que le fichier dispose d'une liste de contrôle d'accès et est commun dans n'importe quel * Nix qui prend en charge les ACLS. Donner ls le -e Le drapeau permettra d'afficher les ACL associées après le fichier et chmod peut être utilisé pour modifier alors. La plupart de cela se tient à partir de la page chmod manuel:

Vous ajoutez une ACL avec chmod +a "type:name flag permission,...", et retirez-le avec chmod -a. L'argument à chmod est assez compliqué:

  • Type est soit user _ OU group, pour clarifier si name fait référence à un nom d'utilisateur ou à un nom de groupe . Si name est sans ambiguïté, vous pouvez omettre le type
  • Nom est le nom d'utilisateur ou le groupe L'ACL s'applique à
  • Drapeau est allow Si cette entrée ACL accordait une autorisation, ou deny si elle nie une autorisation
  • autorisation La permission réelle étant modifiée; Vous pouvez énumérer autant que vous le souhaitez, séparé par des virgules
    • Supprimer - Laissez le fichier/répertoire d'être supprimé
    • ReadatTR - Lisez les attributs de base
    • writeattr - écrire des attributs de base
    • Readextattr - lire des attributs étendus (en utilisant xattr, d'en haut)
    • WriteExtattr - écrire des attributs étendus
    • Readsecurity - Lire l'info ACL
    • écritecurity - Écrivez une info ACL
    • CHEWN - Changer le propriétaire
    • Autorisations spécifiques à l'annuaire
      • Liste - Affiche les fichiers/dossiers du répertoire
      • Recherche - Recherchez un fichier/dossier dans le répertoire par nom
      • add_file - Créez un nouveau fichier dans le répertoire
      • add_subdirectory - Créez un nouveau répertoire dans le répertoire
      • delete_child - Supprimer un fichier/répertoire dans le répertoire
      • Contrôle de héritage
        • File_inherit - Les fichiers ACLS du répertoire sont hérités par des fichiers
        • Directory_inherit - Les ACLS du répertoire sont hérités par les sous-répertoires
        • limit_inherit - arrête les ACL héritées par ce répertoire d'être héritée par des sous-répertoires
        • seulement_inhérit - hérité par tous les articles nouvellement créés mais ignoré
    • Autorisations spécifiques au fichier
      • Lire - Ouvrez le fichier pour la lecture
      • Écrire - Ouvrez le fichier pour écrire
      • APPEND - Ouvrez le fichier pour l'annexe
      • Exécuter - Exécutez le fichier

Dans votre exemple particulier, la plupart des entrées ACL sont group:everyone deny delete. C'est-à-dire que tous les utilisateurs du groupe everyone (qui est naturellement tout le monde) se refuse la permission de supprimer le dossier. Je crois, bien que je ne trouve aucune documentation à ce sujet, que ce sont des ACL par défaut pour vous empêcher de supprimer des dossiers de racine essentiels - quelqu'un corrige cela si ce n'est pas le cas. La seule autre entrée est group:com.Apple.sharepoint.group.3 allow search, qui permet aux services d'annuaire de rechercher des fichiers par nom dans le /Library dossier

40
Michael Mrozek