Linux Attributs de base des fichiers

Le système Linux est un système multi-utilisateur typique ; différents utilisateurs ont des statuts différents et des permissions différentes.

Pour protéger la sécurité du système, le système Linux applique des règles différentes sur les permissions d'accès des différents utilisateurs à un même fichier (y compris les fichiers de répertoire).

Sous Linux, nous utilisons généralement les deux commandes suivantes pour modifier l'utilisateur propriétaire et les permissions d'un fichier ou d'un répertoire :

  • chown (change owner) : modifier l'utilisateur propriétaire et le groupe.
  • chmod (change mode) : modifier les permissions utilisateur.

Dans la figure ci-dessous, chown est utilisé pour autoriser l'utilisateur, et chmod est utilisé pour définir la permission de l'utilisateur d'ouvrir la porte.

Sous Linux, nous pouvons utiliser la commandellouls –lpour afficher les attributs d'un fichier ainsi que l'utilisateur et le groupe auxquels le fichier appartient, par exemple :

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

Dans l'exemple,binle premier attribut du fichier est représenté pard, ce qui indique.dSous Linux, cela indique que le fichier est un fichier répertoire.

Sous Linux, le premier caractère indique si le fichier est un répertoire, un fichier ou un fichier de lien, etc.

  • Lorsqu'il estdalors c'est un répertoire
  • Lorsqu'il est-alors il s'agit d'un fichier ;
  • S'il estlalors il représente un fichier de lien ;
  • S'il estbalors il représente un périphérique d'interface de stockage (périphérique à accès aléatoire) parmi les fichiers de périphériques ;
  • S'il estcalors il représente un périphérique de port série parmi les fichiers de périphériques, comme un clavier ou une souris (périphérique à lecture unique).

Dans les caractères suivants, des groupes de trois sont utilisés, et tous sontrwxcombinaisons des trois paramètres. Parmi eux,rreprésente lisible (read),wreprésente inscriptible (write),xreprésente exécutable (execute). Notez que les positions de ces trois permissions ne changeront pas. S'il n'y a pas de permission, un signe moins-seulement.

Les attributs de chaque fichier sont déterminés par les 10 premiers caractères de la partie gauche (comme indiqué ci-dessous).

363003_1227493859FdXT

De gauche à droite, utilisez0-9ces nombres pour représenter.

N°.0Le chiffre détermine le type de fichier, et les1-3chiffres déterminent les permissions que le propriétaire (le propriétaire du fichier) possède sur le fichier.

Les bits 4-6 déterminent les permissions que le groupe (les utilisateurs du même groupe que le propriétaire) possède sur le fichier, et les bits 7-9 déterminent les permissions que les autres utilisateurs possèdent sur le fichier.

Parmi eux, le1、4、7chiffre indique la permission de lecture. Si l'utilisation durcaractère indique, alors il y a une permission de lecture ; si l'utilisation du-caractère indique, alors il n'y a pas de permission de lecture ;

N°2、5、8chiffre indique la permission d'écriture. Si l'utilisation duwcaractère indique, alors il y a une permission d'écriture ; si l'utilisation du-caractère indique, alors il n'y a pas de permission d'écriture ; le3、6、9chiffre indique la permission d'exécution. Si l'utilisation duxcaractère indique, alors il y a une permission d'exécution ; si l'utilisation du-caractère indique, alors il n'y a pas de permission d'exécution.


Propriétaire et groupe de fichiers Linux

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

Pour un fichier, il a toujours un propriétaire spécifique, c'est-à-dire l'utilisateur qui détient la propriété du fichier.

En même temps, dans le système Linux, les utilisateurs sont classés par groupes, et un utilisateur appartient à un ou plusieurs groupes.

Les utilisateurs autres que le propriétaire du fichier peuvent en outre être divisés en utilisateurs appartenant au même groupe que le groupe du fichier et en autres utilisateurs.

Par conséquent, le système Linux spécifie différentes permissions d'accès aux fichiers en fonction du propriétaire du fichier, des utilisateurs du même groupe que le propriétaire du fichier et des autres utilisateurs.

Dans l'exemple ci-dessus, le fichier mysql est un fichier répertoire, le propriétaire et le groupe sont tous deux mysql. Le propriétaire dispose des permissions de lecture, d'écriture et d'exécution ; les autres utilisateurs du même groupe que le propriétaire disposent des permissions de lecture et d'exécution ; les autres utilisateurs disposent également des permissions de lecture et d'exécution.

Pour l'utilisateur root, en général, les permissions de fichier ne s'appliquent pas à lui.


Modifier les attributs de fichier

1. chgrp : modifier le groupe d'un fichier

Syntaxe :

chgrp [-R] 属组名 文件名

Options de paramètre

  • -R : modifier récursivement le groupe d'un fichier. Autrement dit, lors de la modification du groupe d'un fichier de répertoire, si le-Rparamètre est ajouté, le groupe de tous les fichiers sous ce répertoire sera également modifié.

2. chown : modifier le propriétaire du fichier (owner), et peut également modifier le groupe du fichier en même temps.

Syntaxe :

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名

Entrez dans le répertoire /root (~) et changez le propriétaire de install.log vers le compte bin :

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

Rétablissez le propriétaire et le groupe de install.log à root :

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3. chmod : modifier les 9 attributs du fichier

Il existe deux façons de définir les attributs de fichier Linux : l'une est numérique, l'autre est symbolique.

Les permissions de base d'un fichier Linux sont au nombre de neuf, à savoirpropriétaire/groupe/autresChacune des trois identités possède ses propres permissionslecture/écriture/exécution.

Tout d'abord, revoyons les données mentionnées ci-dessus : les caractères de permission du fichier sont :-rwxrwxrwxCes neuf permissions sont regroupées par trois ! Parmi elles, nous pouvons utiliser des nombres pour représenter chaque permission. Le tableau comparatif des scores pour chaque permission est le suivant :

  • r:4
  • w:2
  • x:1

Les scores des trois permissions (r/w/x) pour chaque identité (propriétaire/groupe/autres) doivent être additionnés ensemble. Par exemple, lorsque la permission est :-rwxrwx---Le score est :

  • propriétaire = rwx = 4+2+1 = 7
  • groupe = rwx = 4+2+1 = 7
  • autres = --- = 0+0+0 = 0

Ainsi, lorsque nous définirons les modifications de permissions plus tard, le numéro de permission du fichier est770. La syntaxe de la commande chmod pour modifier les permissions est la suivante :

 chmod [-R] xyz 文件或目录

Options et paramètres :

  • xyz: Il s'agit de l'attribut de permission numérique juste mentionné, qui est larwxsomme des valeurs d'attribut.
  • -R: Effectuer une modification récursive continue, et tous les fichiers des sous-répertoires seront également modifiés.

Par exemple, si vous voulez.bashrcdéfinir toutes les permissions de ce fichier comme activées, la commande est la suivante :

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

Et si vous voulez changer les permissions en-rwxr-xr--? Alors le score de permission devient [4+2+1][4+0+1][4+0+0]=754.

Modification symbolique des permissions de fichier

Il existe une autre façon de modifier les permissions. D'après l'introduction précédente, nous pouvons constater qu'il existe essentiellement neuf permissions, à savoir :

  • utilisateur : utilisateur
  • groupe : groupe
  • autres : autres

Ensuite, nous pouvons utiliseru, g, opour représenter les permissions des trois identités.

De plus,areprésentetoutes, c'est-à-dire toutes les identités. Les permissions de lecture et d'écriture peuvent être écrites commer, w, x, que l'on peut consulter à l'aide du tableau ci-dessous :

chmodu
g
o
a
+ (ajouter)
- (retirer)
= (définir)
r
w
x
Fichier ou répertoire

Si nous devons définir les permissions du fichier sur-rwxr-xr--, nous pouvons utiliserchmod u=rwx,g=rx,o=r filenamepour définir :

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

Que faire si vous voulez retirer des permissions sans modifier les autres permissions existantes ? Par exemple, pour retirer la permission d'exécution pour tout le monde, alors :

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

Plus de contenu de référence

Autres extensions