Heim >System-Tutorial >LINUX >Detaillierte Erläuterung des Shell-Funktionsprinzips und der Linux-Berechtigungen
Linux ist streng genommen der Kern eines Betriebssystems. Mit anderen Worten: Normale Benutzer können den Kern nicht direkt aufrufen. Um mit dem Kern zu kommunizieren, müssen wir das „Shell“-Programm des Kerns, auch Shell genannt, durchlaufen. Shell ist ein Befehlszeileninterpreter, der vom Benutzer eingegebene Befehle empfängt und sie in vom System ausgeführte Operationscodes umwandelt. Shell kann je nach Befehlstyp unterschiedliche Systemfunktionen aufrufen, um unterschiedliche Vorgänge auszuführen. Daher können wir Shell verwenden, um eine Vielzahl von Befehlen und Vorgängen auszuführen, um das System zu steuern und zu verwalten. Kurz gesagt fungiert die Shell als Brücke zwischen dem Benutzer und dem zugrunde liegenden Kernel.
Wie ist das zu verstehen? Warum können wir den Kernel nicht direkt verwenden?
“
Aus technischer Sicht umfasst die einfachste Definition von Shell: Befehlsinterpreter (Befehlsinterpreter) hauptsächlich:
“
将使用者的命令翻译给核心(kernel)处理。 同时,将核心的处理结果翻译给使用者。
“
Hinweis: Shell ist der Sammelname für alle Shell-Programme und Bash ist eine bestimmte Shell. Zum Beispiel: Centos 7-Shell: bash
“
shell是做命令行解释的 对系统有危害性的命令会被阻止从而保护操作系统 其好处为子进程出现任何问题都不会影响父进程shell
2.1 Das Konzept der Berechtigungen
Befehl: su [Benutzername]
Funktion: Benutzer wechseln.
“
Um beispielsweise vom Root-Benutzer zum normalen Benutzer zu wechseln, verwenden Sie su user. Um vom normalen Benutzer zum Root-Benutzer zu wechseln, verwenden Sie suroot (root kann weggelassen werden). Zu diesem Zeitpunkt werden Sie vom System aufgefordert, das Kennwort des Root-Benutzers einzugeben.
“
2.2 Berechtigungsverwaltung
“
Berechtigungen bestimmen im Wesentlichen, ob jemand etwas tun kann.
“
“
Dateien werden von Personen beeinflusst und Dateien werden von ihren eigenen Merkmalen (Eigenschaften von Dingen) beeinflusst, also Dateiberechtigungen = Personen + Attribute von Dingen
“
Dateiberechtigungsattribute: r (Lesen), w (Schreiben), x (Ausführungsberechtigung)
Person (keine bestimmte Person, sondern eine Rolle): Eigentümer, Gruppe, Andere (Andere)
"
Verwenden Sie den Befehl ls -l (ll), um den Dateityp anhand des Zeichens zu unterscheiden, das der ersten Spalte des angezeigten mehrspaltigen Attributs entspricht.
“
“
Es besteht keine Notwendigkeit, „Andere“ aufzulisten, da es sich um „Andere“ handelt, wenn es sich nicht um den Eigentümer oder die Gruppe handelt, zu der es gehört
“
Helfen Sie zu verstehen – Eigentümer und Gruppe
“
Nehmen wir ein einfaches Beispiel: Zwei Projektteams müssen die gleiche Codeaufgabe erledigen. Sie konkurrieren miteinander, aber das Unternehmen stellt ihnen nur einen Server zur Verfügung Sie haben es geschrieben. Es darf nur für Sie und Ihren Teamleiter sichtbar sein, nicht für Ihre Konkurrenzgruppe. Dadurch entsteht das Konzept der Zugehörigkeitsgruppe.
“
Dateityp
i. Lesen (r/4): Für Dateien hat „Lesen“ die Berechtigung, den Dateiinhalt zu lesen; für Verzeichnisse hat es die Berechtigung, die Verzeichnisinformationen zu durchsuchen
ii. Schreiben (w/2): Für Dateien hat Write die Berechtigung, den Dateiinhalt zu ändern; für Verzeichnisse hat es die Berechtigung, Dateien im verschobenen Verzeichnis zu löschen
iii. Ausführen (x/1): Für Dateien hat „Ausführen“ die Berechtigung, die Datei auszuführen; für Verzeichnisse hat es die Berechtigung, das Verzeichnis zu betreten
iv. „-“ bedeutet, dass Sie nicht über die Berechtigung verfügen
2.3 Darstellungsmethode des Dateiberechtigungswerts
Charakterdarstellung
Linux bedeutet | Anleitung | Linux | Anleitung |
---|---|---|---|
r – – | Nur lesen | – w – | Nur schreiben |
– – x | Nur ausführbare Datei | r w – | Lesbar und beschreibbar |
– w x | Schreibbar und ausführbar | r – x | Lesbar und ausführbar |
r w x | Lesbar, beschreibbar und ausführbar | ––– | Keine Erlaubnis |
Wie man Oktalwerte darstellt
Berechtigungssymbol (Lesen, Schreiben, Ausführen) | Oktal | binär |
---|---|---|
r | 4 | 1 0 0 |
w | 2 | 0 1 0 |
x | 1 | 0 0 1 |
r w | 6 | 1 1 0 |
r x | 5 | 1 0 1 |
w x | 3 | 0 1 1 |
r w x | 7 | 1 1 1 |
– – – | 0 | 0 0 0 |
权限更改
$ chmod 777 text.c $ chmod 000 text.c $ chmod 640 text.c
2.4 文件访问权限的相关设置方法
chmod
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和 root 才可以改变文件的权限
① 用户表示符 +/-= 权限字符
示例:
“
注意:chmod 可以给拥有者,所属组,其他用户同时修改权限,中间用逗号隔开
”
“
如果要修改不是自己的文件的时候需要 sudo 临时权限提升或者直接切成 root 身份
”
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例:
$ sudo chown root test.c// 修改拥有者 $ sudo chown lighthouse test.c// 修改拥有者 $ sudo chown :lighthouse test.c// 修改所属组 $ sudo chown lighthouse:lighthouse test.c// 可以将拥有者、所属组同时修改 $ sudo chown root:root test.c// 可以将拥有者、所属组同时修改
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例:
$ sudo chgrp root text.c $ sudo chgrp lighthouse text.c
2.4 修改文件的掩码
umask
功能:查看或修改文件掩码
语法:umask 权限值
新建文件夹默认权限 = 0666
新建目录默认权限 = 0777
“
但是我们观察到,新建的文件和目录并不是默认的起始权限,这里是什么原因呢?
”
“
原因就是创建文件或目录的时候还要受到 umask 的影响。假设默认权限是 mask,则实际创建的出来的文件权限是:umask & ~umask
”
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022,普通用户默认为 0002。
2.5 file 指令
file
功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。
面试题:进入一个目录要什么权限?
x r w
新发现:
“
就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.我创建的一个文件, 凭什么被你一个外人可以删掉
”
结论
如果目录本身对 other 具有 w 权限,other 可以删掉任何目录下的东西
如果目录本身对 other 没有 w 权限,other 则不可以删除
“
我们的需求:other 可以在特定的目录下创建文件并写入,但是不想让任何人删除掉自己的文件
”
这里为了解决这个不科学的问题,Linux 引入了粘滞位的概念
粘滞位
语法:chmod +t 目录名
功能:给目录加上粘滞位
注意
“
Es kann nur für Verzeichnisse festgelegt werden und schränkt im Allgemeinen andere Berechtigungen ein. Bei Verzeichnissen mit gesetztem Sticky-Bit können nur der Besitzer der Datei und der Root-Benutzer sie in diesem Verzeichnis löschen, andere können sie nicht löschen
“
Beispiel:
“
Wenn mehrere Personen anwesend sind oder das System über viele temporäre Daten verfügt, werden alle temporären Dateien im
/tmp
-Verzeichnis des Systems abgelegt. Alle Berechtigungen müssen freigegeben werden, aber wenn Sie möchten, dass der Dateieigentümer nur seine eigenen Dateien löscht, müssen Sie das Sticky-Bit setzen“
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Shell-Funktionsprinzips und der Linux-Berechtigungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!