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
$ 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.
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).
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
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'?
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é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
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
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.
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.
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