Quelle est la différence entre "s" et "S" dans ls -la?

Quand je ls -la , il imprime de nombreux attributes. Quelque chose comme ça:

 -rwSrwSr-- 1 www-data www-data 45 2012-01-04 05:17 README 

Honteusement, je dois avouer que je ne connais pas la signification exacte de chaque atsortingbut. Par exemple, quelle est la signification de big S dans la string -rwSrwSr-- ? Quel est le suivant 1 ? Je connais les autres grossièrement.

La documentation de la command ls répond à ces questions. Sur la plupart des variantes unix, searchz la page man ls ( man ls ou online). Sous Linux, searchz la documentation Info ( info ls ) ou en ligne .

La lettre s indique que le bit setuid (ou setgid, selon la colonne) est défini. Quand un exécutable est setuid, il s'exécute en tant qu'user qui possède le file exécutable au lieu de l'user qui a appelé le programme. La lettre s remplace la lettre x . Il est possible qu'un file soit défini mais pas exécutable; cela est noté S , où la capitale S vous signale que ce paramètre est probablement erroné car le bit setuid est (presque toujours) inutile si le file n'est pas exécutable.

Le nombre après les permissions est le nombre de liens durs . Un lien physique est un path vers un file (un nom, en d'autres termes). La plupart des files ont un seul path, mais vous pouvez en faire plus avec la command ln . (Ceci est différent des liens symboliques: un lien symbolique dit "oh, en fait, ce file est ailleurs, allez à <location>"). Les directorys ont N + 2 liens durs où N est le nombre de sous-directorys, de leur parent, d'eux-mêmes (à travers l'input) et de chaque sous-directory (à travers l'input .. ).

Selon info coreutils ls (qui pourrait ne pas être exactement ce que vous avez):

`s '
Si le bit setuid ou setgid et le bit exécutable correspondant sont tous deux définis.

`S '
Si le bit setuid ou setgid est défini mais que le bit exécutable correspondant n'est pas défini.

Le nombre après la partie autorisation est le nombre de liens physiques.

En termes (espérons plus simples), cela signifie. Le directory est setgid. Tous les files créés dans ce dossier appartiennent à ce groupe du propriétaire de ce dossier.

Cependant, le dossier n'est pas exécutable par le groupe, il est donc affiché en majuscule S. C'est typiquement lorsqu'un directory est en cours de création et que le directory se terminera par setgid.

Hm .. Je ne sais pas si ça ressemblait à un anglais simple ci-dessus ..