Droits Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Bonjour à tous. Ceci est une traduction d'un article de RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 et EX300.

De moi-même: j'espère que l'article sera utile non seulement pour les débutants, mais aidera également les administrateurs plus expérimentés à organiser leurs connaissances.

Alors allons-y.

image

Pour accéder aux fichiers sous Linux, des autorisations sont utilisées. Ces autorisations sont attribuées à trois objets: un fichier, un groupe et un autre objet (c'est-à-dire tout le monde). Dans cet article, vous apprendrez à appliquer des autorisations.

L'article commence par un examen des concepts de base, après quoi les autorisations spéciales et les listes de contrôle d'accès (ACL) sont discutées. À la fin de cet article, vous apprendrez comment configurer les autorisations par défaut via umask, ainsi que la gestion des attributs utilisateur avancés.

Gestion de la propriété des fichiers


Avant de discuter des autorisations, vous devez connaître le rôle du propriétaire du fichier et du répertoire. Posséder des fichiers et des répertoires est essentiel pour travailler avec des autorisations. Dans cette section, vous apprendrez d'abord comment voir le propriétaire. Vous apprendrez ensuite comment changer le propriétaire et l'utilisateur du groupe pour les fichiers et les répertoires.

Afficher le propriétaire d'un fichier ou d'un répertoire


Sous Linux, chaque fichier et chaque répertoire ont deux propriétaires: un utilisateur et un groupe.

Ces propriétaires sont définis lors de la création du fichier ou du répertoire. L'utilisateur qui crée le fichier devient le propriétaire de ce fichier et le groupe principal, qui comprend le même utilisateur, devient également le propriétaire de ce fichier. Pour déterminer si vous, en tant qu'utilisateur, avez des droits d'accès à un fichier ou un répertoire, le shell vérifie sa propriété.

Cela se produit dans l'ordre suivant:

  1. Le shell vérifie si vous possédez le fichier auquel vous souhaitez accéder. Si vous êtes ce propriétaire, vous obtenez des autorisations et le shell cesse de vérifier.
  2. Si vous n'êtes pas propriétaire du fichier, le shell vérifiera si vous êtes membre d'un groupe disposant des autorisations sur ce fichier. Si vous êtes membre de ce groupe, vous accédez au fichier avec les autorisations définies pour le groupe et le shell cesse de vérifier.
  3. Si vous n'êtes ni l'utilisateur ni le propriétaire du groupe, vous bénéficiez des droits des autres utilisateurs (Autre).

Pour voir les affectations de propriétaire actuelles, vous pouvez utiliser la commande ls -l . Cette commande affiche le groupe d'utilisateurs et de propriétaires. Ci-dessous, vous pouvez voir les paramètres du propriétaire des répertoires dans le répertoire / home.

[root@server1 home]# ls -l total 8 drwx------. 3 bob bob 74 Feb 6 10:13 bob drwx------. 3 caroline caroline 74 Feb 6 10:13 caroline drwx------. 3 fozia fozia 74 Feb 6 10:13 fozia drwx------. 3 lara lara 74 Feb 6 10:13 lara drwx------. 5 lisa lisa 4096 Feb 6 10:12 lisa drwx------. 14 user user 4096 Feb 5 10:35 user 

À l'aide de la commande ls, vous pouvez afficher le propriétaire des fichiers dans ce répertoire. Parfois, il peut être utile d'obtenir une liste de tous les fichiers du système dans lesquels l'utilisateur ou le groupe est spécifié comme propriétaire. Vous pouvez utiliser find pour cela . L' argument find -user peut être utilisé à cet effet. Par exemple, la commande suivante affiche tous les fichiers dont l'utilisateur linda est spécifié comme propriétaire:

 find / -user linda 

Vous pouvez également utiliser find pour rechercher des fichiers dans lesquels un groupe particulier les possède.

Par exemple, la commande suivante recherche tous les fichiers appartenant au groupe d' utilisateurs :

 find / -group users 

Changement de propriétaire


Pour appliquer des autorisations, la première chose à considérer est la propriété. Il existe une commande chown pour cela. La syntaxe de cette commande est facile à comprendre:

 chown   

Par exemple, la commande suivante change le propriétaire du répertoire / home / account en utilisateur linda:

 chown linda /home/account 

La commande chown possède plusieurs options, dont l'une est particulièrement utile: -R . Vous pouvez deviner ce qu'il fait, car cette option est également disponible pour de nombreuses autres équipes. Cela vous permet de définir récursivement le propriétaire, ce qui vous permet de définir le propriétaire du répertoire actuel et de tout ce qui suit. La commande suivante change le propriétaire du répertoire / home et tout ce qui se trouve en dessous en lisa:

Maintenant, les propriétaires ressemblent à ceci:

 [root@localhost ~]# ls -l /home total 0 drwx------. 2 account account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Exécuter:

 [root@localhost ~]# chown -R lisa /home/account [root@localhost ~]# 

Maintenant, Lisa est devenue propriétaire du répertoire des comptes:

 [root@localhost ~]# ls -l /home total 0 drwx------. 2 lisa account 62 Sep 25 21:41 account drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa 

Changement de propriétaire de groupe


Il existe deux façons de modifier la propriété d'un groupe. Vous pouvez le faire en utilisant chown , mais il existe une commande spéciale appelée chgrp qui fait le travail. Si vous souhaitez utiliser la commande chown , utilisez . ou : avant le nom du groupe.

La commande suivante remplace tout propriétaire du groupe / home / account par le groupe de comptes:

 chown .account /home/account 

Vous pouvez utiliser chown pour changer le propriétaire d'un utilisateur et / ou d'un groupe de plusieurs manières. Voici quelques exemples:

  • chown lisa myfile1 définit lisa pour posséder myfile1.
  • chown lisa.sales myfile définit l'utilisateur lisa sur le propriétaire du fichier myfile et définit également le groupe de ventes sur le propriétaire du même fichier.
  • chown lisa: sales myfile est identique à la commande précédente.
  • chown .sales myfile définit le groupe de ventes comme le propriétaire du fichier myfile sans changer le propriétaire de l'utilisateur.
  • chown: sales myfile est le même que la commande précédente.

Vous pouvez utiliser la commande chgrp pour changer le propriétaire du groupe. Prenons l'exemple suivant, où vous pouvez utiliser chgrp pour définir le groupe de ventes en tant que propriétaire du répertoire de compte:

 chgrp .sales /home/account 

Comme avec chown , vous pouvez utiliser l'option -R avec chgrp et également changer le propriétaire du groupe de manière récursive.

Comprendre le propriétaire par défaut


Vous pouvez remarquer que lorsque l'utilisateur crée le fichier, la propriété par défaut est appliquée.
L'utilisateur qui crée le fichier devient automatiquement le propriétaire de ce fichier et le groupe principal de cet utilisateur devient automatiquement le propriétaire de ce fichier. Il s'agit généralement d'un groupe spécifié dans le fichier / etc / passwd comme groupe principal de l'utilisateur. Cependant, si l'utilisateur est membre de plusieurs groupes, il peut modifier le groupe central effectif.

Pour afficher le groupe principal effectif actuel, l'utilisateur peut utiliser la commande groups :

 [root@server1 ~]# groups lisa lisa : lisa account sales 

Si l'utilisateur actuel linda souhaite modifier le groupe principal effectif, il utilisera la commande newgrp , suivie du nom du groupe qu'il souhaite définir comme nouveau groupe principal effectif. Après avoir utilisé la commande newgrp , le groupe principal sera actif jusqu'à ce que l'utilisateur émette la commande exit ou se déconnecte.

Voici comment lisa utilise cette commande pour que le groupe de vente devienne le groupe principal:

 lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1 

Après avoir modifié le groupe principal actuel, tous les nouveaux fichiers créés par l'utilisateur recevront ce groupe en tant que groupe propriétaire. Pour revenir au paramètre initial du groupe principal, utilisez exit .

Pour pouvoir utiliser la commande newgrp , l'utilisateur doit être membre du groupe qu'il souhaite utiliser comme principal. De plus, le mot de passe du groupe peut être utilisé pour le groupe à l'aide de la commande gpasswd . Si l'utilisateur utilise la commande newgrp mais n'est pas membre du groupe cible, le shell demande le mot de passe du groupe. Après avoir entré le mot de passe de groupe correct, un nouveau groupe principal effectif sera défini.

Gestion des droits fondamentaux


Le système d'autorisation Linux a été inventé dans les années 1970. Étant donné que les besoins informatiques étaient limités au cours de ces années, le système d'autorisation de base était plutôt limité. Ce système d'autorisation utilise trois autorisations qui peuvent être appliquées aux fichiers et aux répertoires. Dans cette section, vous apprendrez à utiliser et à modifier ces autorisations.

Comprendre les droits de lecture, d'écriture et d'exécution


Trois autorisations de base vous permettent de lire, d'écrire et d'exécuter des fichiers. L'effet de ces autorisations diffère lorsqu'elles sont appliquées à des fichiers ou des répertoires. Pour un fichier, l'autorisation de lecture vous donne le droit d'ouvrir le fichier en lecture. Par conséquent, vous pouvez lire son contenu, mais cela signifie que votre ordinateur peut ouvrir le fichier pour en faire quelque chose.

Un fichier programme qui a besoin d'accéder à une bibliothèque doit, par exemple, avoir un accès en lecture à cette bibliothèque. Il s'ensuit que l'autorisation de lecture est l'autorisation la plus élémentaire dont vous avez besoin pour travailler avec des fichiers.

Pour un répertoire, la lecture vous permet d'afficher le contenu de ce répertoire. Vous devez savoir que cette autorisation ne vous permet pas de lire des fichiers dans un répertoire. Les autorisations Linux ne connaissent pas l'héritage et la seule façon de lire un fichier est d'utiliser les autorisations de lecture pour ce fichier.

Comme vous pouvez probablement le deviner, l'autorisation d'écriture, si elle est appliquée au fichier, vous permet d'écrire dans le fichier. En d'autres termes, il vous permet de modifier le contenu des fichiers existants. Cependant, il ne permet pas de créer ou de supprimer de nouveaux fichiers ni de modifier les autorisations de fichier. Pour ce faire, vous devez accorder une autorisation d'écriture au répertoire dans lequel vous souhaitez créer le fichier. Dans les répertoires, cette autorisation vous permet également de créer et de supprimer de nouveaux sous-répertoires.

L'autorisation d'exécution est ce dont vous avez besoin pour exécuter le fichier. Il ne sera jamais installé par défaut, ce qui rend Linux presque complètement immunisé contre les virus. Seule une personne disposant d'autorisations d'écriture dans le répertoire peut appliquer l'autorisation d'exécuter.

Ce qui suit résume l'utilisation des autorisations de base:



Utiliser chmod


Pour gérer les droits, utilisez la commande chmod . Lorsque vous utilisez chmod, vous pouvez définir des autorisations pour l'utilisateur (utilisateur), le groupe (groupe) et les autres (autres). Vous pouvez utiliser cette commande dans deux modes: le mode relatif et le mode absolu. En mode absolu, trois chiffres sont utilisés pour définir les autorisations de base.



Lors de la définition des autorisations, calculez la valeur dont vous avez besoin. Si vous souhaitez définir la lecture, l'écriture et l'exécution pour l'utilisateur, la lecture et l'exécution pour le groupe, et la lecture et l'exécution pour les autres dans le fichier / somefile, vous utilisez la commande chmod suivante:

 chmod 755 /somefile 

Lorsque vous utilisez chmod de cette manière, toutes les autorisations actuelles sont remplacées par les autorisations que vous définissez.

Si vous souhaitez modifier les autorisations par rapport aux autorisations actuelles, vous pouvez utiliser chmod en mode relatif. Lorsque vous utilisez chmod en mode relatif, vous travaillez avec trois indicateurs pour indiquer ce que vous voulez faire:

  1. D'abord, vous indiquez pour qui vous souhaitez modifier les autorisations. Pour ce faire, vous pouvez choisir entre l'utilisateur ( u ), le groupe ( g ) et les autres ( o ).
  2. Ensuite, vous utilisez l'opérateur pour ajouter ou supprimer des autorisations du mode actuel, ou les définir complètement.
  3. En fin de compte, vous utilisez r , w et x pour indiquer les autorisations que vous souhaitez définir.

Lorsque vous modifiez des autorisations en mode relatif, vous pouvez ignorer la partie «à» pour ajouter ou supprimer l'autorisation pour tous les objets. Par exemple, cette commande ajoute une autorisation d'exécution pour tous les utilisateurs:

 chmod +x somefile 

Lorsque vous travaillez en mode relatif, vous pouvez également utiliser des commandes plus complexes. Par exemple, cette commande ajoute une autorisation d'écriture à un groupe et supprime les lectures pour les autres:

 chmod g+w,or somefile 

Lorsque vous utilisez chmod -R o + rx / data, vous définissez l'autorisation d'exécution pour tous les répertoires, ainsi que pour les fichiers du répertoire / data. Pour définir l'autorisation d'exécuter uniquement pour les répertoires, pas pour les fichiers, utilisez chmod -R o + rX / data .

Les majuscules X garantissent que les fichiers ne sont pas autorisés à s'exécuter si le fichier n'a pas déjà défini l'autorisation d'exécution pour certains objets. Cela fait de X un moyen plus intelligent de travailler avec des autorisations d'exécution; cela évitera d'installer cette autorisation sur des fichiers où elle n'est pas requise.

Droits étendus


En plus des autorisations de base que vous venez de lire, Linux dispose également d'un ensemble d'autorisations avancées. Ce ne sont pas les autorisations par défaut que vous définissez, mais elles fournissent parfois un ajout utile. Dans cette section, vous apprendrez ce qu'ils sont et comment les configurer.

Comprendre les autorisations étendues SUID, GUID et Sticky Bit


Il existe trois autorisations avancées. Le premier d'entre eux est l'autorisation de définir un identifiant utilisateur (SUID). Dans certains cas particuliers, vous pouvez appliquer cette autorisation aux fichiers exécutables. Par défaut, l'utilisateur exécutant l'exécutable exécute le fichier avec ses propres autorisations.

Pour les utilisateurs ordinaires, cela signifie généralement que l'utilisation du programme est limitée. Cependant, dans certains cas, l'utilisateur n'a besoin d'autorisations spéciales que pour effectuer une tâche spécifique.

Considérez, par exemple, une situation où l'utilisateur doit changer le mot de passe. Pour ce faire, l'utilisateur doit écrire son nouveau mot de passe dans le fichier / etc / shadow. Cependant, ce fichier n'est pas accessible en écriture pour les utilisateurs non root:

 root@hnl ~]# ls -l /etc/shadow ----------. 1 root root 1184 Apr 30 16:54 /etc/shadow 

La résolution SUID offre une solution à ce problème. Dans l'utilitaire / usr / bin / passwd, cette autorisation est utilisée par défaut. Cela signifie que lorsque le mot de passe est modifié, l'utilisateur obtient temporairement les privilèges root, ce qui lui permet d'écrire dans le fichier / etc / shadow. Vous pouvez voir la résolution SUID avec ls -l en tant que s dans la position où vous vous attendez généralement à voir x pour les autorisations utilisateur:

 [root@hnl ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd 

Les autorisations SUID peuvent sembler utiles (et dans certains cas, elles le sont), mais en même temps, elles sont potentiellement dangereuses. En cas d'utilisation incorrecte, vous pouvez accidentellement accorder des autorisations d'accès root. Par conséquent, je recommande de l'utiliser uniquement avec une extrême prudence.

La plupart des administrateurs n'auront jamais à l'utiliser; vous ne le verrez que dans certains fichiers où le système d'exploitation devrait le définir par défaut.

La deuxième autorisation spéciale est l'identifiant de groupe (SGID). Cette résolution a deux effets. Lorsqu'il est appliqué à un fichier exécutable, il donne à l'utilisateur qui exécute le fichier les autorisations du propriétaire du groupe de ce fichier. Ainsi, le SGID peut faire plus ou moins la même chose que le SUID. Cependant, SGID n'est pratiquement pas utilisé à cette fin.

Comme avec l'autorisation SUID, SGID est appliqué à certains fichiers système comme paramètre par défaut.

Lorsqu'il est appliqué à un répertoire, SGID peut être utile car vous pouvez l'utiliser pour définir le propriétaire du groupe par défaut pour les fichiers et sous-répertoires créés dans ce répertoire. Par défaut, lorsqu'un utilisateur crée un fichier, son groupe principal effectif est défini comme propriétaire du groupe pour ce fichier.

Ce n'est pas toujours très utile, notamment parce que les utilisateurs de Red Hat / CentOS ont un groupe avec le même nom que l'utilisateur, et dont l'utilisateur est le seul membre. Ainsi, par défaut, les fichiers que l'utilisateur crée seront partagés.

Imaginez une situation où les utilisateurs de linda et lori travaillent en comptabilité et sont membres du groupe de comptes . Par défaut, ces utilisateurs sont membres du groupe privé dont ils sont le seul membre. Cependant, les deux utilisateurs sont membres du groupe de comptes, mais également en tant que paramètre du groupe secondaire.

La situation par défaut est que lorsque l'un de ces utilisateurs crée un fichier, le groupe principal devient le propriétaire. Par conséquent, par défaut, linda ne peut pas accéder aux fichiers créés par lori, et vice versa. Cependant, si vous créez un répertoire partagé d'un groupe (par exemple / groups / account) et assurez-vous que l'autorisation SGID est appliquée à ce répertoire et que la comptabilité de groupe est définie en tant que propriétaire du groupe pour ce répertoire, tous les fichiers créés dans ce répertoire et dans tous ses sous-répertoires , obtenez également des groupes de comptes en tant que propriétaire du groupe par défaut.

Pour cette raison, l'autorisation SGID est une autorisation très utile à installer sur les répertoires de groupes partagés.

L'autorisation SGID est indiquée dans la sortie ls -ld sous la forme s à l'emplacement où vous trouvez généralement l'autorisation d'exécuter le groupe:

 [root@hnl data]# ls -ld account drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account 

Le troisième des autorisations spéciales est un peu collant. Cette autorisation est utile pour protéger les fichiers d'une suppression accidentelle dans un environnement où plusieurs utilisateurs ont des autorisations d'écriture dans le même répertoire. Si un bit collant est utilisé, un utilisateur ne peut supprimer un fichier que s'il est le propriétaire du fichier ou du répertoire dans lequel le fichier se trouve. Pour cette raison, il est utilisé comme autorisation par défaut pour le répertoire / tmp et peut également être utile pour les répertoires de groupe partagés.

Sans bit collant, si un utilisateur peut créer des fichiers dans un répertoire, il peut également supprimer des fichiers de ce répertoire. Dans un environnement de groupe public, cela peut être gênant. Imaginez les utilisateurs linda et lori, qui ont tous deux des autorisations d'écriture dans le répertoire / data / account et reçoivent ces autorisations via l'appartenance au groupe de comptes. Par conséquent, linda peut supprimer des fichiers créés par lori et vice versa.

Lorsque vous utilisez le bit collant, l'utilisateur ne peut supprimer des fichiers que si l'une des conditions suivantes est remplie:

  • L'utilisateur est le propriétaire du fichier;
  • L'utilisateur est le propriétaire du répertoire dans lequel se trouve le fichier.

Lorsque vous utilisez ls -ld , vous pouvez voir le bit collant comme t dans la position où vous voyez généralement la permission d'exécution pour les autres:

 [root@hnl data]# ls -ld account/ drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/ 

Droits renforcés


Pour appliquer SUID, SGID et sticky bit, vous pouvez également utiliser chmod . SUID a une valeur numérique de 4, SGID a une valeur numérique de 2 et le bit collant a une valeur numérique de 1.

Si vous souhaitez appliquer ces autorisations, vous devez ajouter un argument à quatre chiffres à chmod , dont le premier chiffre fait référence à des autorisations spéciales. La ligne suivante, par exemple, ajoutera l'autorisation SGID au répertoire et définira rwx pour l'utilisateur et rx pour le groupe et les autres:

 chmod 2755 /somedir 

C'est assez peu pratique si vous devez regarder les autorisations actuelles qui sont définies avant de travailler avec chmod en mode absolu. (Vous risquez d'écraser les autorisations si vous ne le faites pas.) Par conséquent, je recommande de travailler en mode relatif si vous devez appliquer l'une des autorisations spéciales:

  1. Pour SUID, utilisez chmod u + s .
  2. Pour SGID, utilisez chmod g + s .
  3. Pour le bit collant, utilisez chmod + t puis le nom du fichier ou du répertoire pour lequel vous souhaitez définir des autorisations.

Le tableau résume tout ce qu'il est important de savoir sur la gestion des autorisations spéciales.



Exemple de travail avec des droits spéciaux


Dans cet exemple, vous utilisez des autorisations spéciales pour faciliter le partage de fichiers dans un répertoire de groupe partagé par les membres de l'équipe. Vous affectez le bit ID de l'identificateur de groupe défini, ainsi que le bit collant, et vous voyez qu'après leur installation, des fonctions sont ajoutées qui facilitent le travail conjoint des membres du groupe.

  1. Ouvrez le terminal où vous êtes un utilisateur de Linda. Vous pouvez créer un utilisateur en utilisant useradd linda , ajoutez le mot de passe passwd linda .
  2. Créez un répertoire / data et un sous-répertoire / data / sales à la racine avec la commande mkdir -p / data / sales . Exécutez cd / data / sales pour accéder au répertoire des ventes. Exécutez touch linda1 et touch linda2 pour créer deux fichiers vides appartenant à linda.
  3. Exécutez su-lisa pour faire basculer l'utilisateur actuel sur lisa, qui est également membre du groupe de vente.
  4. Exécutez cd / data / sales et à partir de ce répertoire, exécutez ls -l . Vous verrez deux fichiers créés par linda et appartenant au groupe linda. Exécutez rm -f linda * . Cela supprimera les deux fichiers.
  5. Exécutez touch lisa1 et touch lisa2 pour créer deux fichiers appartenant à l'utilisateur lisa.
  6. Exécutez su - pour élever vos privilèges au niveau racine.
  7. Exécutez chmod g + s, o + t / data / sales pour définir le bit d'identifiant de groupe (GUID) ainsi que le bit collant dans le répertoire de groupe partagé.
  8. Courez su - linda . Ensuite, touchez linda3 et touchez linda4 . Vous devez maintenant voir que les deux fichiers que vous avez créés appartiennent au groupe de ventes, qui est le propriétaire du groupe de répertoires / data / sales.
  9. Exécutez rm -rf lisa * . Sticky Bit empêche la suppression de ces fichiers au nom de Linda car vous ne possédez pas ces fichiers. Veuillez noter que si linda est le propriétaire du répertoire / data / sales, il peut quand même supprimer ces fichiers!

Gestion des ACL (setfacl, getfacl) sous Linux


Même si les droits étendus décrits ci-dessus ajoutent des fonctionnalités utiles à la façon dont Linux fonctionne avec les autorisations, cela ne vous permet pas d'accorder des autorisations à plusieurs utilisateurs ou groupes dans un seul fichier.

Les listes de contrôle d'accès offrent cette fonctionnalité. En outre, ils permettent aux administrateurs de définir des autorisations par défaut d'une manière complexe dans laquelle les autorisations définies peuvent varier dans différents répertoires.

Comprendre les ACL


ACL , : . , ACL , ACL.

tar ACL. , ACL , star tar. star , tar; ACL.

ACL getfacl , setfacl. , getfacl -R /directory > file.acls . , setfacl --restore=file.acl .

. ACL , .
, , . , ACL, , , .

ACL


ACL ACL. , ACL . ACL «operation not supported», , ACL.

, acl mount /etc/fstab, ACL .

ACL setfacl getfacl


ACL, setfacl . ACL, getfacl . ls -l ACL; + , , ACL .

ACL ACL getfacl . , ls -ld , getfacl . , , .

 [root@server1 /]# ls -ld /dir drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::rx other::rx 

getfacl , : , . ACL, sales. setfacl -mg:sales:rx /dir . -m , ACL . g:sales:rx ACL ( rx ) ( g ) sales. , , getfacl ACL.

 [root@server1 /]# setfacl -mg:sales:rx /dir [root@server1 /]# getfacl /dir getfacl: Removing leading '/' from absolute path names # file: dir # owner: root # group: root user::rwx group::rx group:sales:rx mask::rx other::rx 

, , ACL, ACL . , setfacl -mu:linda:rwx /data linda /data, .

setfacl . , -R . , ACL , , ACL. ACL .

ACL


ACL , . , , ACL .

ACL , , , . , ACL . , ACL!

. ACL , ACL . setfacl -R -m , ACL . setfacl -md: , , .

ACL , d -m ( !). setfacl -md:g:sales:rx /data , , sales , - /data.

ACL ACL . , , chmod . , chmod , , , - . , -, /data, , setfacl -md:o::- /data .

ACL . , ACL , , . , , ACL. , , ACL ( ).

ACL


/data/account /data/sales, . , sales /data/sales, account /data/account.

, account /data/sales, sales /data/account.

ACL , , .

  1. .
  2. setfacl -mg:account:rx /data/sales setfacl -mg:sales:rx /data/account .
  3. getfacl , , , .
  4. setfacl -md:g:account:rwx,g:sales:rx /data/sales , ACL sales.
  5. ACL /data/account, setfacl -md:g:sales:rwx,g:account:rx /data/account .
  6. , ACL , /data/sales. touch /data/sales/newfile getfacl /data/sales/newfile .

umask


, ACL . ACL, , , : umask ( ). , umask .

, , , . umask . . umask , , ; — 666, — 777.

. umask .

, umask , chmod , , , , . umask 022 644 755 , .

umask .



, umask, : , 666, umask, . 777.

umask: . umask , , umask , /etc/profile. — umask.sh /etc/profile.d umask, . umask, .

umask /etc/profile , , , umask .profile, .

, , ; , , . , umask root 027, umask 022.


Linux.

, . Linux — .
, .

ACL, mount .

user_xattr . «operation not supported» , mount /etc/fstab.

. , . ; .

, :

A , .
, , . ; , , A .

a , .

c , , , .

D , , . , , .

d , , .

I , . , Ext3, B-tree .

i . , , , .

j , ext3 , — .

s , , 0 . , , .

u . , .

, chattr . , chattr +s somefile , somefile. ? chattr -s somefile , . , , lsattr .

Résumé


, . , , ACL- . , umask . , .

, . .

. .

« - .» « - .», .

berez .

:
, , , .

:
, , , . , , , .

CryptoPirate

Source: https://habr.com/ru/post/fr469667/


All Articles