![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| Conseils et Didacticiels Des articles de nos utilisateurs. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Pour donner le "décompresser" permissions et "créer" les permissions de fichiers | Mike1234 | HP-UX | 3 | 03-02-2008 05:34 PM |
| Permissions Unix | mobershaw | SUN Solaris | 0 | 01-24-2006 06:06 PM |
| Permissions de fichiers UNIX | jerardfjay | UNIX for Advanced & Expert Users | 3 | 03-15-2005 12:25 PM |
| Permissions Unix | Moukoko | UNIX pour les nuls Questions et réponses | 2 | 03-11-2004 08:12 AM |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread |
Rating:
|
Modes d'affichage |
|
|||||
|
Permissions de fichiers Unix
Introduction
J'ai vu certains de désinformation concernant les permissions de fichiers Unix. Je vais essayer de mettre les choses au clair. Jetez un oeil à cet exemple de sortie de ls: Code:
$ ls -ld /usr/bin /usr/bin/cat drwxrwxr-x 3 root bin 8704 Sep 23 2004 /usr/bin -r-xr-xr-x 1 bin bin 9388 Jul 16 1997 /usr/bin/cat $ Comment le "File Mode" est conservé. Sur disque, des informations sur un fichier est stocké dans une structure appelée "inode». Chaque fichier aura son propre inode. Un élément de données dans un inode est appelée la "mode", et il ressemble à ceci: Code:
|------file mode------|
| |
|
| |----full-----|
|
|-type| | |--basic--|
| | | | |
oo0 000 000 000 000 000
... ... ... ... ... ...
| | | | |
| | | | |---- rwx for other
| | | |
| | | |-------- rwx for group
| | |
| | |------------ rwx for user
| |
| |---------------- set uid, set gid, sticky bit
|
|---------------------- file type: regular (-)
directory (d)
character special (c)
block special (b)
fifo (p)
symbolic link (l)
socket (s)
Représenter les permissions en octal Le ls programme peut afficher, par exemple, "rwxrwxrwx" pour les permissions sur un fichier. Il est aussi très courant d'utiliser un nombre octal à exprimer les permissions sur un fichier. Et comme vous voyez ci-dessus, c'est la façon dont ils sont stockés. Vous mai entendre quelqu'un dire que certains ont des permissions 777. C'est la même chose que "rwxrwxrwx" et beaucoup plus facile à prononcer. Vous avez donc besoin de savoir comment les convertir. Trois chiffres binaires ou bits correspond à un chiffre octal: Code:
421 rwx Code:
--- = 0 --x = 1 -w- = 2 -wx = 3 r-- = 4 r-x = 5 rw- = 6 rwx = 7 Les bits d'autorisation de base Nous avons 3 triples: un triple pour l'utilisateur, un triple pour le groupe, et un triple pour les autres. Parfois, «l'utilisateur» est le propriétaire. Et, parfois, «l'autre» est appelé le "monde". Je vais profiter de "l'utilisateur" et "autres" parce que la commande chmod ug utilise les lettres o et de se référer à ces triples. Set de Bits qui s'applique à vous? Quand Unix décide ce que vous pouvez faire, il n'utilise pas tous les 9 bits. Unix reprend le premier triple qui s'applique à vous. Considérez ceci: Code:
----rwxrwx 1 joe users 29 Mar 22 19:39 somefile Que dois-rw et x signifie vraiment pour un fichier? Pour un fichier, "lire" et "écrire" est assez intuitive. Le x pour "exécuter" signifie que le noyau mai tentative d'exécuter le fichier. Pour que cela fonctionne, le fichier doit être un exécutable (sortie d'un compilateur) ou un script shell avec un "#!" première ligne. Pour un répertoire, les choses sont un peu plus complexe. Avec un répertoire, "écrire" permission signifie que vous pouvez créer de nouveaux fichiers dans le répertoire ou de supprimer les anciens fichiers. On a parfois des surprises aux gens que vous pouvez supprimer un fichier dont vous ne pouvez pas lire. La commande unix rm pour ce test et à la délivrance d'un avertissement, mais vous pouvez supprimer cet avertissement avec-f. Et aucun avertissement ou, si vous souhaitez supprimer un fichier illisible écriture à partir d'un répertoire, vous avez mai. Rmdir et ne sera pas la peine de vérifier à tous. Que dois-rw et x signifie vraiment pour un répertoire? Un répertoire est un fichier de trop, et à «lire» la permission, vous pouvez lire. Mais vous ne pouvez vraiment pas faire grand-chose sans la permission x aussi. Avec les répertoires, vous avez habituellement la fois lire et d'exécuter l'autorisation ou pas. Sur un répertoire, que x est officiellement appelé "l'autorisation de recherche». Vous avez besoin de x pour utiliser un répertoire dans un chemin d'accès. Donc, si vous essayez de "cat / etc / passwd", vous aurez besoin sur x / et / etc Vous avez aussi besoin de x cd dans un répertoire. Supposons que vous avez lu, mais pas de recherche (x) la permission d'un répertoire. Que pouvez-vous faire? Pas grand-chose. Vous pouvez utiliser "ls" pour afficher les noms de fichier. Même "ls-l" ne fonctionnera pas. Lire l'accès sans autorisation de recherche n'est pas très utile. Qui est encore mieux que d'avoir seulement la permission d'écriture sur un répertoire ... qui est complètement inutile. Je n'ai pas vu de toute autre documentation qui indique clairement, alors permettez-moi de répéter: écrire, mais pas la permission d'exécution sur un répertoire de subventions rien all.Suppose vous avez la recherche (x) mais pas de l'autorisation de lecture sur un répertoire. Maintenant vous pouvez ouvrir les fichiers dans le répertoire si vous connaissez le nom du fichier. Vous pouvez cd dans le répertoire. Et c'est elle. Vous ne pouvez même pas créer un nouveau fichier. Ajout d'écriture vous permettront de créer des fichiers. Et vous pouvez ensuite supprimer les fichiers si vous connaissez leur nom. Les liens symboliques sont des Les paramètres d'autorisation sur un lien symbolique est un peu particulier aussi. Ils sont complètement ignorés. De nombreuses versions d'Unix n'ont aucun moyen de les changer. Le setuid et setgid l'Bits Jetez un oeil à ceci: Code:
$ ls -l /etc/passwd /etc/shadow /usr/bin/passwd -r--r--r-- 1 root sys 14006 Jan 14 11:17 /etc/passwd -r-------- 1 root sys 8281 Jan 14 11:18 /etc/shadow -r-sr-sr-x 3 root sys 96244 Sep 5 2001 /usr/bin/passwd Pour étendre sur les choses un peu, alors que Joe est en cours d'exécution à la suid-root passwd program, "Joe" est le réel et l'uid "root" est le bon uid. Le programme passwd peut obtenir de ces deux identifiants si elle veut. C'est ainsi que le programme passwd joe sait pour permettre de changer seulement le mot de passe de joe. Le Sticky Bit Le Posix la norme dit que si le sticky bit est placé sur un répertoire, une simple écriture sur le répertoire n'est plus suffisant pour permettre à des fichiers à supprimer. Vous devez également posséder le fichier ou le répertoire propre. racine continue à être en mesure de supprimer à partir de n'importe quel répertoire, peu de droits. Autrefois ce peu servi un autre but. Sur certains OS, il ne reste. Je développerai dans une annexe ci-dessous. Le sticky bit sur "l'autre" exécuter dans le bit ls afficher. Sauf que, et il utilise t T plutôt que de s et S. Par exemple: Code:
drwxrwxrwt 5 root root 1024 Feb 11 20:43 /tmp Permissions de fichiers avec limitation de umask Lorsque les fichiers sont créés le programme qui crée pouvez spécifier le paramètre d'autorisation initiale. Vous pouvez remplacer avec umask. Le umask est un ensemble d'interdire bits. Il ya un umask commande qui vous permet de visualiser et de modifier l'umask. Par exemple, "umask 022" interdit d'écrire groupe et d'autres d'écrire sur les nouveaux fichiers créés. Or "umask 027" interdit d'écrire et de groupe, il interdit d'autres de lire, d'écrire, ou exécuter. Vous pouvez faire un "umask 0" pour laisser le programme faire ce qu'il veut car il crée des programmes. Mais vous ne pouvez pas aller plus loin. Vous ne pouvez pas forcer le programme à tourner un peu. Le umask paramètre affecte les fichiers, répertoires, les pipes nommés (ou FIFO), et des fichiers spéciaux. Elle mai ou mai de ne pas affecter les liens symboliques. Il affecte également Certaines formes d'Inter Process Communication mais qui est au-delà du champ d'application du présent article. Et, croyez-le ou non, nommé sockets sont exonérés de l'umask. Cette exemption est nécessaire par Posix. Changer de dossier avec les autorisations chmod Seul le propriétaire d'un fichier ou root peut changer les permissions sur un fichier. Cette opération est pas affecté à tous par la mise en umask. Si vous modifiez les autorisations sur un lien symbolique, le lien sera suivie et vous changerez le fichier cible. Il est possible que seul root aura le pouvoir d'établir un fichier de sticky bit. À titre d'exemple, "chmod 700 somefile" va permettre au propriétaire de lire, d'écrire et d'exécuter le fichier, tout en refusant tout accès à d'autres utilisateurs. Utilisation du mode symbolique avec chmod et umask Posix introduit une nouvelle syntaxe pour la commande chmod. L'idée était que la nouvelle syntaxe va remplacer l'utilisation d'un octal constant avec la commande chmod. L'octal constant est encore autorisée et je crois qu'il est ici pour rester. Mais la nouvelle symbolique de syntaxe vous permet de modifier quelques bits, sans savoir ce que les autres. Par exemple, disons que je veux faire un fichier inaccessible à d'autres mais je ne suis pas ce que pour changer l'accès de l'utilisateur ou le groupe. J'aurais besoin de faire: ls-l fichier Rechercher dans les fichiers et comprendre les paramètres en cours. chmod 750 fichier J'ai eu à déterminer que les deux premiers chiffres sont courants 7 et 5, avant que je puisse faire ma commande chmod. Avec la nouvelle syntaxe, je peux simplement faire: chmod o \u003d file pour désactiver la final 3 bits. Comme autre exemple, "chmod u + x fichier" permettra à l'utilisateur d'exécuter le fichier. D'autre part, ces deux commandes sont équivalentes: chmod 750 fichier chmod u \u003d rwx, g \u003d rx, o \u003d fichier et je préfère la première syntaxe. Le mode symbolique, peut être une virgule sépare la liste de spécifications. Chaque cahier des charges comporte trois volets: <who> <operation> <bitlist> Code:
The who part can be: u (user) g (group) o (other) a (all) (whatever is allowed by umask (subset of all)) The operator can be = or - or + = (set bits to bitlist) - (subtract bitlist from current bit + (add bitllist to current bits) The bitlist can be one of the following letters: r (read permission) w (write permission) x (execute permision) X (conditional execute permision) u (current permissions for user) g (current permissions for group) o (current permissions for others) s (set uid or set gid) t (sticky bit) chmod 6555 / usr / bin / passwd chmod u \u003d RXS, g \u003d RXS, o \u003d rx / usr / bin / passwd chmod ug \u003d RXS, o \u003d rx / usr / bin / passwd chmod a \u003d rx, ug + s / usr / bin / passwd Et il ya beaucoup d'autres façons de le faire. Pour la plupart chmod est à l'abri de umask en bits que, quel que soit il veut mettre ne sont pas modifiées par le umask. Toutefois, dans un état, la commande chmod examinera le réglage actuel de umask pour déterminer quels bits il voudrait fixer. Cela se produit lorsque vous quittez le "qui" champ vide. Comme ceci: chmod somefile \u003d w La différence entre un "\u003d w" et "\u003d w" est subtile. Voici un exemple qui aide mai. De nombreux programmes tentent de créer des fichiers avec 666 (-rw-rw-rw-) permissions. Mais cela est modifiée par le umask. Supposons que vous souhaitez définir un fichier à 666, mais modifié par le umask. Nous pourrions éteindre tous les bits, puis tourner à lire et à écrire les bits qui sont autorisés par le umask courant: chmod a \u003d, \u003d rw somefile Et en parlant de umask, vous pouvez utiliser avec la symbolique des arguments de commande umask ainsi. Cependant, Posix, Dans leur grande sagesse, a décidé que dans ce cas, la logique serait inversée. Donc, si l'utilisation de umask avec un argument octal-vous préciser les bits doivent être interdites. Mais si vous utilisez umask symbolique avec un argument, vous spécifiez les bits à autoriser. Ce sont donc équivalentes: umask 022 umask u \u003d rwx, go \u003d rx Sommaire À ce stade, vous avez suffisamment d'informations pour comprendre la plupart de ces 12 bits d'autorisation. Il existe plusieurs cas très particuliers que j'ai ignoré ou occulté. Dans des postes ci-dessous je vais y remédier. Les informations contenues dans ce premier message est très universel. Un Posix OS compatible doit prendre en charge ce genre de choses. Cela couvre presque toutes les versions d'Unix libérés au cours des 10 dernières années. Les articles suivants de discuter des caractéristiques qui mai ne pas être universelle. |
| Bookmarks |
| Tags |
| chmod, les permissions de fichiers, linux commandes, sticky bit, suid, umask |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|