web-dev-qa-db-fra.com

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

Quand je ls -la, il imprime de nombreux attributs. 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 attribut. Par exemple, quelle est la signification de big S dans la chaîne -rwSrwSr--? Quelle est la suite 1? J'en connais à peu près d'autres.

70
Eonil

La documentation de la commande ls répond à ces questions. Sur la plupart des variantes Unix, recherchez la page de manuel ls (man ls ou en ligne). Sous Linux, recherchez la documentation Info (info ls) ou en ligne .

La lettre s indique que le bit setuid (ou setgid, selon la colonne) est défini. Lorsqu'un exécutable est setuid, il s'exécute en tant qu'utilisateur propriétaire du fichier exécutable au lieu de l'utilisateur qui a appelé le programme. La lettre s remplace la lettre x. Il est possible qu'un fichier soit défini mais non exécutable; ceci est indiqué par S, où la majuscule S vous avertit que ce paramètre est probablement incorrect car le bit setuid est (presque toujours) inutile si le fichier n'est pas exécutable.

Lorsqu'un répertoire dispose d'autorisations setuid (ou setgid), tous les fichiers créés dans ce répertoire appartiendront à l'utilisateur (ou au groupe) correspondant au propriétaire (ou groupe) du répertoire.

Le nombre après les autorisations est le compte lien dur . Un lien dur est un chemin d'accès à un fichier (un nom, en d'autres termes). La plupart des fichiers ont un seul chemin, mais vous pouvez en faire plus avec la commande ln. (Ceci est différent des liens symboliques: un lien symbolique dit "oh, en fait, ce fichier est ailleurs, allez à <emplacement>".) Les répertoires ont N + 2 liens durs où N est le nombre de sous-répertoires, car ils sont accessibles de leurs parents, d'eux-mêmes (via le .) et à partir de chaque sous-répertoire (via le .. entrée).

Selon info coreutils ls (ce qui n'est peut-être pas 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 durs.

16
Mat

En termes (espérons-le plus simples), cela signifie. Le répertoire est setgid. Tous les fichiers qui y sont créés appartiendront à 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 généralement lorsqu'un répertoire est en cours de création et le répertoire se terminera par setgid.

Hm .. Je ne sais pas si cela ressemblait vraiment à un anglais simple ci-dessus ..

6
Jag

C'est à cause de l'exécutable qui manque

s -> 'x' est activé S -> 'x' est désactivé.

voir l'exemple ci-dessous

$ ls -l

total 0

-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$ chmod u-x ca

$ ls -l

total 0

-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$
0
praveen kumar