À propos des autorisations de fichiers et de répertoires Linux

Il est facile d'oublier le comportement de chaque fichier et autorisation de répertoire sous Linux, je vais donc le résumer pour des raisons d'explication. Celui à changer avec chmod

Comment lire l'autorité

$ ls -l

Vous pouvez voir les permissions des fichiers et répertoires dans le répertoire courant

drwxrwxrwx. 2 core core 4096 Mar 22 11:02 dir
-rwxrwxrwx. 1 core core    0 Mar 22 11:02 file

Indique si le d le plus caché est un répertoire, Le rwx après c'est un ensemble de 3 caractères. De gauche à droite, Privilèges des utilisateurs détenus, privilèges des groupes appartenant à des groupes détenus, privilèges des autres utilisateurs Représente.

r est lu w est écrit x s'exécute Avec l'autorité de

-rw-r--r--. 1 core core 0 Mar 22 11:05 foo

Si cela ressemble à ce qui précède Pour le fichier foo Un utilisateur nommé core a les privilèges rw (lecture / écriture), Indique que les autres utilisateurs n'ont que le droit de lecture «r». L'utilisateur root a tous les privilèges sans aucune question.

Fichier

Il est souvent utilisé lorsque vous souhaitez créer un fichier que vous ne souhaitez pas être lu par quelqu'un d'autre qu'un utilisateur spécifique (groupe) ou un fichier qui ne peut être mis à jour que par un utilisateur spécifique (groupe).

Autorisations par défaut

Créer un fichier dans le terminal vous donne les permissions 0644

core@dev ~/work $ touch file
core@dev ~/work $ ls -l
total 4
-rw-r--r--. 1 core core 0 Mar 22 11:08 file

Autorisation d'écriture

core@dev ~/work $ chmod 444 ./file
core@dev ~/work $ ls -l
total 4
-r--r--r--. 1 core core 0 Mar 22 11:08 file
core@dev ~/work $ echo "hogehoge" > file
-bash: file: Permission denied

Utilisé pour traiter des fichiers sur lesquels vous ne voulez pas que quelqu'un d'autre qu'un utilisateur spécifique écrive. Un fichier qui se brise si vous l'écrivez mal. Je reçois un avertissement lorsque j'essaye de supprimer un fichier pour lequel je n'ai pas l'autorisation d'écriture.

core@dev ~/work $ touch file
core@dev ~/work $ chmod 400 file
core@dev ~/work $ ls -l
total 4
-r--------. 1 core core 0 Mar 22 11:20 file
core@dev ~/work $ rm file
rm: remove write-protected regular empty file 'file'?

Lire l'autorisation

core@dev ~/work $ chmod 000 ./file
core@dev ~/work $ ls -l
total 4
----------. 1 core core 0 Mar 22 11:08 file
core@dev ~/work $ cat file
cat: file: Permission denied

Utilisé pour traiter des fichiers que vous ne voulez pas que quelqu'un d'autre que l'utilisateur lise. Lorsque vous traitez des informations, y compris des informations confidentielles.

Autorisation d'exécution

Autorisation d'exécuter le fichier Utilisé pour les scripts et les binaires

Cela n'a pas de sens de le donner à un simple fichier texte qui ne peut pas être exécuté

core@dev ~/work $ echo "hogehoge" > file
core@dev ~/work $ chmod 700 ./file
core@dev ~/work $ ls -l
total 8
-rwx------. 1 core core 9 Mar 22 11:22 file
core@dev ~/work $ ./file
./file: line 1: hogehoge: command not found

Lorsqu'il est exécuté avec bash

core@dev ~/work $ echo "echo hogehoge" > file
core@dev ~/work $ chmod 700 ./file
core@dev ~/work $ ls -l
total 8
-rwx------. 1 core core 14 Mar 22 11:22 file
core@dev ~/work $ ./file
hogehoge

Principalement accordé pour pouvoir être exécuté en tant que terminal ou processus

annuaire

Autorisations par défaut

core@dev ~/work $ mkdir foo
core@dev ~/work $ ls -l
total 8
drwxr-xr-x. 2 core core 4096 Mar 22 11:25 foo

La valeur par défaut est différente du fichier, sauf pour le début Ce sera rwxr-xr-x, donc dans le cas d'un répertoire Les utilisateurs propriétaires ont les privilèges rwx Les autres utilisateurs ont les privilèges r-x

Autorisation d'écriture

core@dev ~/work $ mkdir foo
core@dev ~/work $ ls -l
total 8
drwxr-xr-x. 2 core core 4096 Mar 22 11:38 foo
core@dev ~/work $ chmod 500 ./foo/
core@dev ~/work $ ls -l
total 8
dr-x------. 2 core core 4096 Mar 22 11:38 foo
core@dev ~/work $ touch foo/test
touch: cannot touch 'foo/test': Permission denied

Si vous ne disposez pas des autorisations d'écriture, vous ne pourrez pas placer de fichiers dans le répertoire À utiliser lorsque vous souhaitez protéger par répertoire plutôt que par fichier.

Lire l'autorisation

core@dev ~/work $ mkdir foo
core@dev ~/work $ chmod 000 ./foo/
core@dev ~/work $ ls -l foo/
ls: cannot open directory 'foo/': Permission denied

Comme le répertoire n'est pas accessible, il ne peut pas être référencé avec ls etc.

Autorisation d'exécution

core@dev ~/work $ mkdir foo
core@dev ~/work $ touch foo/bar
core@dev ~/work $ chmod 600 ./foo/
core@dev ~/work $ ls -l foo/
ls: cannot access 'foo/bar': Permission denied
total 0
-????????? ? ? ? ?            ? bar

Si vous ne disposez pas de l'autorisation d'exécution pour le répertoire, vous n'aurez pas accès aux fichiers situés sous celui-ci. Par conséquent, les informations elles-mêmes du fichier ne sont pas accessibles. Vous ne pouvez ni lire ni écrire car vous ne pouvez pas accéder aux informations du fichier et les autorisations sont inconnues. Puisque vous avez des autorisations de lecture et d'écriture sur le répertoire, vous pouvez réécrire les autorisations de répertoire avec chmod.

Recommended Posts

À propos des autorisations de fichiers et de répertoires Linux
[Linux] Commandes d'opération de fichier et de répertoire
Périphérique et système de fichiers Linux
Signification des autorisations de répertoire Linux
Autorisations Linux
Structure de répertoires Linux
Structure de répertoires Linux
[Linux] Recherche de fichiers
Hiérarchie des répertoires Linux
Découvrir les autorisations de fichiers et les super utilisateurs
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
[Linux] Commandes de compression et de décompression de fichiers zip [Vim]
[Samba] Partage de fichiers mutuel entre les machines Linux et Windows
Ajustez les autorisations des fichiers avec la commande Linux chmod
Distribution OS et Linux
Linux (à propos du chemin du répertoire)
[Python] Opération de fichier / répertoire
Autorisations Linux sur Java
Autorisations Linux [en cours d'investigation]
Signification des autorisations Linux
Pirater un descripteur de fichier Linux
Linux: fichiers et répertoires
Groupe d'étude Linux 1er: console virtuelle et manipulation de fichiers
Groupe d'étude Linux 5e: Manipulation de répertoires, liens et inodes
datetime et écriture et sauvegarde de fichiers
Étudier les commandes Linux et la frustration
Lire et écrire un fichier csv
Termes de base CLI et Linux
Linux (À propos des fichiers et des répertoires)
À propos des fichiers et des processus LINUX
Enregistrement et lecture sous Linux
Lire et écrire des fichiers
Accès aux fichiers sous le répertoire
Écrire et lire des fichiers
[Linux] Répertoire sous la racine
Recherchez le nom du fichier, y compris le mot et l'extension spécifiés dans le répertoire
Session d'étude Linux 3ème: Paramètre d'interdiction de suppression de fichier et fonction de recherche
Creusez le répertoire et créez une liste de chemins de répertoire + noms de fichiers
Commande "Chmod" pour définir les autorisations d'accès aux fichiers et aux dossiers et les autorisations d'accès (valeurs de réglage)
Différence entre les répertoires Windows et Linux
Connaissance de base de Linux et des commandes de base
Session d'étude Linux 2ème: Fonctionnement des fichiers
L'autorisation de fichier "T" est un peu collante
[linux] Swap CapsLock et Ctrl
Changer la spécification du fichier argparse et le pipeline
Commande de changement d'autorisation et de propriété [Linux]
Archivage et compression Linux (tar et gzip)
[Linux] Commandes Linux fréquemment utilisées (opération sur fichier)
Lecture et écriture de fichiers CSV Python
Mémo Python ① Opérations sur les dossiers et fichiers
[NFS] Partage de fichiers entre hôtes Linux
Remarque: concepts Linux et commandes minimales
Construction du serveur de fichiers Linux (Ubuntu et Samba)
Appareil, système de fichiers Linux, FHS ① Mémorandum Création de partition et système de fichiers / maintenance de l'intégrité du système de fichiers
Afficher le chemin complet (chemin absolu) d'un fichier dans un répertoire sous Linux Bash
Une commande pour spécifier un fichier avec un nom spécifique dans un répertoire avec find et mv, cp ou gzip (linux)