Autorisations Linux que vous devez comprendre (partage récapitulatif)

WBOY
Libérer: 2022-01-06 18:15:48
avant
2333 Les gens l'ont consulté

Cet article vous apporte des connaissances sur les autorisations Linux, y compris sur la manière de modifier les propriétés des autorisations. J'espère qu'il sera utile à tout le monde.

Autorisations Linux que vous devez comprendre (partage récapitulatif)

Dans le processus d'utilisation de Linux, nous rencontrerons plus ou moins des problèmes concernant les utilisateurs et les groupes. Par exemple, le problème le plus courant est que si vous souhaitez exécuter une certaine commande dans un certain chemin, cela se fera souvent. apparaître. Ce message d'erreur.

permission denied
Copier après la connexion

Quoi qu'il en soit, je vois très probablement cette erreur lorsque j'utilise FTP pour transférer des fichiers. Après une longue attente, le pourcentage de transfert est toujours nul. Le réseau est-il si lent ? Pourquoi n'est-il pas transmis ? En fait, je ne sais pas, cela est dû à un problème d'autorisations.

Ma façon habituelle de résoudre ce problème est d'accorder directement les autorisations 777 ou d'utiliser directement su administrateur pour vous connecter. . . . . .

Vous ne savez peut-être pas de quoi je parle, et certains grands peuvent penser que mon approche est trop basse. Quoi qu'il en soit, si vous rencontrez ce genre de problème, cela signifie que vous n'avez pas suffisamment d'autorisations. Pourquoi ? Ensuite, nous devons apprendre à connaître les utilisateurs et les groupes sous Linux.

Utilisateurs et groupes

Sous Linux, les propriétaires de fichiers sont divisés en trois catégories, à savoir les propriétaires de fichiers, les groupes et les autres personnes. Voici les trois concepts suivants expliqués respectivement

  • Propriétaire de fichiers

.

Linux est un système multi-utilisateurs multitâche. Multi-utilisateur signifie que les fichiers créés par certains utilisateurs sont visibles par d'autres utilisateurs. Il s'agit d'un problème de visibilité et également d'un problème de confidentialité. Pour prendre en compte la confidentialité de chacun, Linux a conçu ce rôle. du propriétaire du fichier. Si vous disposez d'informations et de fichiers hautement privés, vous pouvez définir le fichier comme étant « visible uniquement par moi ». C'est le rôle du propriétaire du fichier.

  • Groupe

Le concept de groupe est utilisé dans le développement d'équipe. La chose la plus utile est de définir des autorisations pour les projets. Par exemple, si vous travaillez dans le service d'externalisation d'une banque, vous et d'autres sous-traitants. les départements travaillent ensemble pour Pour un certain service bancaire, tous les groupes d'externalisation utilisent un seul serveur, ce qui impliquera la question des autorisations de groupe. Si vous ne souhaitez pas que d'autres départements d'externalisation voient les projets développés par votre service d'externalisation, vous définirez le projet. dans un groupe visible. Cependant, la banque est la personne responsable de l'ensemble et toutes les banques ont l'autorisation de consulter tous les projets de votre service d'externalisation. Par conséquent, vous devez également définir les autorisations bancaires.

  • Les autres appartiennent à

Les autres et le groupe sont relatifs. Les autres sont en dehors du groupe et n'ont pas l'autorisation de visualiser les fichiers du groupe.

En plus des trois concepts ci-dessus, il existe également un patron avec le niveau d'autorité le plus élevé, qui est racine. Cette racine a l'autorité la plus élevée.

Autorisations de fichiers Linux

Après avoir parlé des concepts d'utilisateurs et de groupes ci-dessus, parlons de la façon de définir les autorisations de fichiers. Ce contenu est très important car cette partie Le contenu est la clé pour résoudre le problème d'autorisation refusée.

Attributs d'autorisation

Connectez-vous d'abord au système Linux, utilisez su - pour passer à l'identité root, puis exécutez ls -al et vous verrez ce qui suit

Autorisations Linux que vous devez comprendre (partage récapitulatif)

Il y a sept colonnes au total . Le contenu de ces sept colonnes est le suivant Comme le montre la figure.

Autorisations Linux que vous devez comprendre (partage récapitulatif)

Vous pouvez utiliser root directement lors de l'apprentissage, car les instructions suivantes chgrp, chown et autres nécessitent root pour être traitées, mais il est fortement recommandé de ne pas utiliser les autorisations root au travail.

Utilisez exit pour quitter en tant que root.

Dans la commande ci-dessus, ls signifie liste, ce qui signifie liste, et l'option -al signifie autorisations et attributs de fichiers détaillés.

Autorisations, la première colonne représente les autorisations. Les autorisations sont représentées par 10 caractères au total. Prenons les autorisations comme exemple pour lister la signification de chaque caractère

Autorisations Linux que vous devez comprendre (partage récapitulatif)

Le premier caractère représente le type de fichier. de fichiers. Généralement, [d] représente un répertoire et vous pouvez utiliser la commande cd pour accéder à ce répertoire. Vous pouvez voir que presque tout dans l’image est un répertoire.

Autorisations Linux que vous devez comprendre (partage récapitulatif)

Si c'est [-], cela signifie un fichier, si c'est [l], cela signifie un fichier lien, si c'est [b], cela signifie un périphérique à accès aléatoire dans le fichier du périphérique, s'il est [c], cela signifie un périphérique périphérique de lecture unique (clavier, souris) dans le fichier.

接下来的九个字符分为三组,三个一组,分别表示所属人、所属群组、其他所有者权限,每组内的权限都是三个 rwx 的组合,[r] 表示可读,[w]表示可写,[x] 表示可执行,这里需要注意的是,如果没有权限,就会变为 -号。

链接,这一列表示有多少文件名链接到这个节点(i-node)上,每个文件都会将它的权限和属性记录到文件系统的 i-node 上,不过,我们使用的目录树却是使用文件名来记录的,因此每个文件名都会关联到一个 i-node ,所以这个属性就是记录有多少文件链接到了同一个 i-node 上。

什么是 i-node ?

i-node 的描述方式很像是我们之前聊过的 Socket,Socket 就是一个四元组,有时会加上协议类型变为五元组,如果你不太清楚我说的是什么,可以看下我的这篇文章 原来这才是 Socket!

我们知道,磁盘的最小存储单位是扇区,操作系统在读取扇区时,不会一个扇区接着一个扇区这样读取,因为效率太低,而是以块为单位进行读取,块是由多个扇区组成的。

文件中的数据都存储在扇区中,但是我们并不知道哪一块数据是我们需要的,为了存储一些文件的元信息,比如文件的创建者,创建日期,文件的大小,开发人员提出了 i-node ,也就是索引节点。一般来说,i-node 具有如下内容

Autorisations Linux que vous devez comprendre (partage récapitulatif)

具体关于 i-node 的内容,我们后面还会再说。

然后第三列表示这个文件的所属人,由图可见,大部分文件的所属人都是 root 用户。

第四列表示这个文件的所属群组,在 Linux 系统下,你登录的账号会添加到一个或者多个所有人群组中,这一栏就表示对应的群组权限。

第五列表示文件大小,默认单位为字节(Bytes)。

第六列为创建这个文件的日期和最近修改日期,从图中可以看到,这个日期格式有可能不是我们想要的,如果要显示完整的日期格式,可以使用 ls -l --full-time,包括年、月、日、时间。

如果想要让系统默认的语系变为英文的话,那么你可以修改系统配置文件 /etc/locale.conf,首先我们可以查看一下系统都支持哪些语言。

Autorisations Linux que vous devez comprendre (partage récapitulatif)

修改默认语言,输入

vi /etc/profile
Copier après la connexion

在文档的最后输入

export LANG="en_US.UTF-8"
Copier après la connexion

就可以切换成为英文,如果想使用中文,可以输入

export LANG="zh_CN.GB18030"
Copier après la connexion

然后使用 esc + :wq 保存,保存之后使用

source /etc/profile
Copier après la connexion

即可完成设置。

第七列为文件名,有一类特殊的文件名,它表示着隐藏文件,如果文件名之前多一个 . ,那就表示隐藏文件。

权限的重要性

提供系统保护:非权限用户不能操作具有某些权限的功能和数据。

适合团队开发和数据共享:团队所有组成员和个人所属能够共享项目。

如果没有恰当的设置系统权限,可能会造成某些泄密事件或者其他不可忽视的后果,所以权限问题大家要引起重视,下面我们就来聊一聊如何设置系统权限。

改变系统权限和属性

我们现在知道文件权限对于一个系统安全的重要性了,现在就要聊一聊如何修改文件权限了。常用的修改文件权限的指令有

  • chgrp :改变文件所属群组

  • chown:改变文件所有者

  • chmod:改变文件权限

chgrp

chgrp 就是 change group 的缩写,我觉得李纳斯把缩写用到了极致,这也许是我们现在对于缩写这么流行的原因。chgrp 能够改变文件群组,不过,要改变群组的话,要被改变的群组名称要在 /etc/group 文件内存在才行,否则就会显示错误。

chown

既然 chgrp 能够改变文件群组,那么 chown 能够改变文件所有者,同样也需要注意的是,文件所有者必须是系统中存在的账号,也就是在 /etc/passwd 这个文件中有记录的使用者名称才可改变。除此之外,chown 还可以直接修改群组名称。

chmod

变更文件权限使用的是 chmod 这个指令,但是,权限的设置有两种方式,可以分别使用数字或者符号进行权限变更。

使用数字改变文件权限

Linux 文件基本权限有 9 种,分别是 owner/group/others 三种身份加自己的 read/write/execute 权限,这九个权限三个为一组,我们可以使用数字表示各个权限。

一般 r 表示 4;w 表示 2;x 表示 1,每种身份各自的权限是需要累加的,比如 rwx 就表示 4 + 2 + 1 = 7。比如我们最常见的 chmod 777 它就表示赋予所有的权限,也就是说谁都能看/写/执行,所以这种文件也存在极大的安全问题。使用数字改变文件权限是我们最常用的一种方式。

使用符号改变文件权限

九种文件权限分别对应着:(1) user (2) group (3) others,所以我们可以借由 u,g,o 来代表三种身份的权限。除此之外,a 代表 all 即全部的身份。

比如我们想要给 -rwxr-xr-x 设置权限,那么我们所使用的命令应该是

chmod u=rwx,go=rx .filename
Copier après la connexion

如果我们想要给所有人增加写入权限,就可以这么操作

chmod a+w .filename
Copier après la connexion

如果我们想给所有人去掉写入权限,就可以这么写入指令

chmod a-w .filename
Copier après la connexion

我们上面列出了三种指令,分别是 =、+、- 号,= 号表示赋值指定权限,+ 号表示增加权限,- 号表示去掉某些权限,在 + 和 - 的状态下,只要没找到指令的项目,那么该权限不会发生变动。

Linux 目录和文件权限

我们上面聊的都是文件权限,文件是容纳数据的地方,这些文件包括一般文本文件、数据库文件、二进制文件等,权限对于文件的意义在于

  • r(read):可以读取文件的实际内容,比如读取文本文件的文字内容

  • w(write):可以新增、编辑或者修改文件中的内容(不包括删除文件)

  • x(execute):使文件具有被文件系统执行的权限。

Windows 下面判断文件是否能够执行的因素是看文件扩展名, 比如 .exe, .bat, .com 等等,但是在 Linux 中,判断文件是否具有可执行权限是直接判断文件有没有 x 这个权限,和文件名无关。

但是在 Linux 中,不只有文件具有权限,目录也有权限,文件是存放实际数据的地方,而目录是记录文件所在位置的清单,我们只有通过目录才能找到文件放在哪里!权限对于不同的目录,也代表着不同的概念。

r (read contents in directory):表示具有读取目录结构清单的权限,所以如果你具有读取一个目录的权限时,就代表你可以查询目录下的文件,所以你就可以使用 ls 将目录的内容显示出来。

w(modify contents of directory):写入权限表示你具有对文件目录和目录中的文件进行修改的操作,主要包括

  • 删除已经存在的文件和目录。

  • 创建新的文件和目录。

  • 将已存在的文件或目录进行改名。

  • 移动目录内文件、目录位置。

x(access directory):这执行权限有啥用?总不能目录也能够被执行把?其实并不是这样,执行权限表示着你有没有权限进入到指定目录下,也就是 cd(change directory) 。

Linux 文件种类和扩展名

想必大家都听说过这样一句话:任何设备在 Linux 下都是文件,但是文件也分为多种,除了上面介绍过的一般文件(-) 和目录文件(d) 之外,还包括下面这些文件类型

常规文件(regular file):常规文件就是我们使用 ls -al 所显示出来的属性,也就是上面我们列出的第一个字符,

Autorisations Linux que vous devez comprendre (partage récapitulatif)

文件类型又可以分为

纯文本文件(ASCII),这是 Linux 系统中最多的一种文件类型,纯文本文件是我们能够直接看到的数据,你可以使用 cat 来直接看到这部分内容。比如我们最常用的设置 Linux 静态 ip 的文件 ens33 ,就可以使用 cat 命令来输出

cat ifcfg-ens33
Copier après la connexion

Autorisations Linux que vous devez comprendre (partage récapitulatif)

二进制文件,在 Linux 中,查看二进制文件可以使用 xxd 或者 od 进行格式化输出

数据格式文件,数据文件直接使用 cat 读取会显示乱码,但是它能够通过 last 指令进行输出

  • 目录,目录没什么好说的,就是表示一个文件清单,目录的表示就是 [d],也就是 directory。

  • 链接文件(link),链接文件就是某些程序执行时需要和这些链接文件进行链接才能执行的一种文件类型。

  • Périphériques et fichiers de périphérique (device), les périphériques sous Linux sont divisés en deux types, les périphériques de bloc et les périphériques de caractères :

Un périphérique de bloc est un périphérique qui peut stocker des informations de bloc de taille fixe et il prend en charge les fichiers de bloc de taille fixe. dimensionnez des blocs, des secteurs ou des clusters pour lire et (éventuellement) écrire des données. Chaque bloc a sa propre adresse physique. Généralement, la taille du bloc est comprise entre 512 et 65 536. Toutes les informations transférées seront en blocs consécutifs. La caractéristique fondamentale d’un périphérique bloc est que chaque bloc est relativement indépendant et peut être lu et écrit indépendamment. Les périphériques de bloc courants incluent les disques durs, les disques Blu-ray et les clés USB.

Les périphériques bloc sont généralement situés sous /dev/sda, et son premier attribut est [b].

Un autre type de périphérique d'E/S est le périphérique de caractères. Les périphériques de caractères envoient ou reçoivent un flux de caractères en unités de caractères, quelle que soit la structure de bloc. Les périphériques de caractères ne sont pas adressables et n'effectuent aucune opération de recherche. Les périphériques à caractères courants incluent les imprimantes, les périphériques réseau, les souris et la plupart des autres périphériques différents des disques.

La plus grande caractéristique du périphérique de caractères est qu'il peut être lu une fois et que la sortie ne peut pas être tronquée. Par exemple, vous ne pouvez pas déplacer la souris vers un autre endroit à la fois, mais utilisez un mouvement fluide. Le premier périphérique de caractères L'attribut est [. c].

  • Fichiers d'interface de données (sockets) : Comme leur nom l'indique, les fichiers d'interface de données utilisent des sockets pour recevoir des données réseau. Ses attributs sont [s] et sont généralement visibles dans des répertoires tels que /run ou /tmp.

  • Fichier de transfert de données (FIFO, pipe) : FIFO est également un type de fichier spécial. Son objectif principal est de résoudre le problème d'erreur causé par plusieurs programmes accédant à un fichier en même temps. .

Extension Linux

Parler de cette extension est en fait un casse-tête. Il n'y a pas de concept d'extension sous Linux, mais il existe des méthodes de dénomination pour les extensions, c'est très embarrassant, donc pour l'instant, devenez une extension. taper. Généralement, il existe les types suivants

  • *.sh, qui est un script d'exécution ou un script batch, généralement également appelé script shell, qui contient des instructions écrites dans la syntaxe shell.

  • .tar, .tar.gz, .zip, *.tgz, ce type d'extension est un fichier compressé packagé, il existe différents types d'extension selon différentes méthodes de packaging

  • .html, .php : page web Les fichiers associés représentent respectivement les fichiers de pages Web dans la syntaxe HTML et PHP.

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.im
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!