English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Attributs de base des fichiers Linux

Le système Linux est un système multi-utilisateur typique, où les utilisateurs sont à différents niveaux et ont des permissions différentes.

Pour protéger la sécurité du système, le système Linux a fait des spécifications différentes des permissions d'accès des utilisateurs au même fichier (y compris les fichiers de répertoire).

Dans Linux, nous utilisons généralement les deux commandes suivantes pour modifier les utilisateurs et les permissions des fichiers ou des répertoires :

  • chown (change ownerp) : modifier l'utilisateur et le groupe propriétaires.

  • chmod (change mode) : modifier les permissions de l'utilisateur.

Dans l'image suivante, l'utilisateur est autorisé par chown, et les permissions d'ouverture de la porte sont définies par chmod.

Dans Linux, nous pouvons utiliser les commandes ll ou ls -l pour afficher les propriétés d'un fichier ainsi que l'utilisateur et le groupe propriétaires, par exemple :

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

Dans l'exemple suivant,bin La première propriété du fichier est représentée par d. d représente un fichier de répertoire dans Linux.

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录

  • 当为 - 则是文件;

  • 若是 l 则表示为链接文档(link file);

  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号  - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

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
……

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来指定了不同的文件访问权限。

在以上示例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

更改文件属性

1、chgrp:更改文件属组

Syntaxe :

chgrp [-R] 属组名 文件名

options

  • -R : Modification récursive du groupe de fichier, c'est-à-dire que si vous ajoutez-Le paramètre R, tous les fichiers dans le répertoire seront modifiés de groupe.

2、chown:modifier le propriétaire du fichier, et peut également modifier le groupe du fichier

Syntaxe :

chown [–R] nom du propriétaire nom de fichier
chown [-R] nom du propriétaire : nom du groupe nom de fichier

Entrer /Le répertoire root (~) change le propriétaire de install.log en bin ce compte :

[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

Pour revenir à l'original, le propriétaire et le groupe de install.log sont modifiés en 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 le fichier9attributs

Les attributs des fichiers Linux peuvent être configurés de deux manières, soit numériquement, soit symboliquement.

Les permissions de base des fichiers Linux sont neuf, à savoir owner/group/others(possesseur/group/others) Les trois identités ont leurs propres read/write/execute Permissions.

Revenons à l'information mentionnée précédemment : Les caractères de permission du fichier sont : -rwxrwxrwx , Ces neuf permissions sont groupées par trois ! Nous pouvons utiliser des nombres pour représenter chaque permission, et le tableau de correspondance des scores des permissions est le suivant :

  • r:4

  • w:2

  • x:1

Chaque identité (owner/group/others)Les trois permissions individuelles (r/w/x)Le score doit être cumulé, par exemple, lorsque les permissions sont : -rwxrwx--- Le score est :

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= --- = 0+0+0 = 0

Ainsi, lors de la définition de la modification des permissions, le numéro de permission du fichier en question est 770La syntaxe de la commande de modification des permissions chmod est la suivante :

 chmod [-R] xyz fichier ou répertoire

Options et paramètres :

  • xyz : Cela correspond aux attributs de permission numériques mentionnés précédemment, qui sont la somme des valeurs numériques des attributs rwx.

  • -R : Cela signifie une modification continue (recursive) pour tous les fichiers dans le sous-répertoire, c'est-à-dire que tous les fichiers dans le sous-répertoire seront également modifiés

Pour illustrer, si vous souhaitez attribuer tous les droits d'accès au fichier .bashrc, la commande suivante s'applique :

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

Si vous souhaitez changer les permissions en -rwxr-xr-- Alors, les points de permission deviennent [4+2+1][4+0+1][4+0+0]=754。

Modification des permissions de fichier par type de symbole

Il existe encore une autre méthode pour modifier les permissions, comme nous l'avons vu précédemment, il y a généralement neuf permissions, à savoir :

  • user:utilisateur

  • group:groupe

  • others:autres

Alors nous pouvons utiliser u, g, o représente les permissions des trois rôles.

De plus, a représente allC'est-à-dire tous les rôles. Les permissions de lecture/écriture peuvent être écrites sous forme de r, w, x, c'est-à-dire que vous pouvez consulter le tableau suivant :

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

Si nous devons définir les permissions de fichier comme -rwxr-xr-- Vous pouvez utiliser chmod u=rwx,g=rx,o=r pour définir le nom de fichier :

# touch test1    // Créer test1 Fichier
# ls -al test1    // Voir test1 Permissions par défaut
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1    // Modification test1 Permissions
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

Si vous souhaitez supprimer les permissions sans changer les autres permissions existantes, par exemple, supprimer les permissions d'exécution pour tous les utilisateurs, alors :

# chmod 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