Linux は、厳密に言えば、オペレーティング システムの中核です。つまり、一般ユーザーはコアを直接呼び出すことができません。コアと通信するには、シェルとも呼ばれるコアの「シェル」プログラムを経由する必要があります。シェルは、ユーザーが入力したコマンドを受け取り、システムが実行するオペレーション コードに変換するコマンド ライン インタプリタです。シェルは、コマンドの種類に応じてさまざまなシステム関数を呼び出して、さまざまな操作を実行できます。したがって、シェルを使用してさまざまなコマンドや操作を実行し、システムを制御および管理できます。つまり、シェルはユーザーと基礎となるカーネルの間のブリッジとして機能します。
どうやって理解すればいいでしょうか?カーネルを直接使用できないのはなぜですか?
#「」
技術的な観点から見ると、シェルの最も単純な定義: コマンド インタープリター (コマンド インタープリター) には主に次のものが含まれます。
」#
リーリー
#「
」
注: シェルはすべてのシェル プログラムの総称であり、bash は特定のシェルです。例: Centos 7 シェル: bash
」
#
Windows GUI と比較すると、Windows を操作するときは、Windows カーネルを直接操作するのではなく、グラフィカル インターフェイスをクリックして操作を完了します (たとえば、D ドライブに入るには、通常、D ドライブ文字をダブルクリックします)。またはアプリケーションを実行します)。
シェルには Linux でも同じ機能があり、主に命令を解析し、Linux カーネルへの命令を解析します。フィードバック結果はカーネルを通じて実行され、シェルを通じてユーザーに解析されます。 -
シェルの動作原理-
rree
-
理解を助ける:
あなたが退屈で内気なプログラマーにとって、シェルは仲人のようなものです。-
オペレーティング システムのカーネルは、あなたの村にある、心をときめかせる美しい花です。 -
あなたはシャオファに恋をしましたが、直接告白するのは恥ずかしいので、家族に結婚の申し込みを手伝ってくれる仲人を探してもらいましょう-
あなたはすべてを仲人に直接伝え、仲人はあなたの考えをXiaohua- に伝えます。
そして、仲人の姓が王であることがわかったので、私たちがよく使うバッシュに相当する、彼女を王坡と呼びました。 -
-
Linux 権限
- 2.1 権限の概念
Linux では、スーパー ユーザー (root) と一般ユーザーの 2 種類のユーザーが存在します。
スーパーユーザー: Linux システム上で制限なく何でもできる-
一般ユーザー: Linux では限られた作業を実行します。 -
スーパーユーザーのコマンドプロンプトは「#」、一般ユーザーのコマンドプロンプトは「$」です。 -
-
ユーザー切り替えコマンド
- コマンド: su [ユーザー名]
機能: ユーザーを切り替えます。
#「」
たとえば、root ユーザーから一般ユーザーに切り替えるには、su ユーザーを使用します。一般ユーザーからrootユーザーに切り替える場合は、suroot(rootは省略可)を使用しますが、このときrootユーザーのパスワードの入力を求められます。
」
#
root に切り替える: su - を使用すると、root ユーザーに切り替えることができます (この時点で root アカウントのパスワードを入力します。パスワードは画面にエコー表示されません)
-
通常のユーザーに切り替える: su – ユーザー名を使用して通常のユーザーに戻ります (現時点ではパスワードは必要ありませんが、su – コマンドを使用すると、より多くの bash プロセスが実行されるため、このように切り替えることはお勧めしません)作成した) ##### #
通常のユーザーに切り替えることをお勧めします。exit を入力するか、Ctrl d を押して通常のユーザーに戻ります。-
- 2.2 権限管理
権限とは何ですか
」
権限は基本的に、誰かが何かを実行できるかどうかを決定します。
」
#
人向け: たとえば、私はこの家の所有者なので、自由に家に出入りできます
目標とするもの: コンピューターを食べたい、パンでリーグ・オブ・レジェンドをプレイしたい、映画を見たい。パンは食べられるが、コンピュータは食べられない、パンは食べられるが、コンピュータは食べられない、これには 2 つの属性が含まれます。
- #「
- 」
ファイルは人によって影響され、ファイルはそれ自体の特性 (物の属性) によって影響を受けるため、ファイルのアクセス許可 = 人および物の属性
」
#ファイル権限属性: r (読み取り)、w (書き込み)、x (実行権限)
人物 (特定の人ではなく役割): オーナー、グループ、その他 (その他)
ファイル訪問者の分類 (人)
ファイルとファイル ディレクトリの所有者: u—ユーザー (中国の民事法問題)
ファイルおよびファイル ディレクトリの所有者が属するグループのユーザー: g - グループ (あまり多くはありません)
-
他のユーザー: o—その他 (外国人)
-
ファイルの種類とアクセス許可 (Thing のプロパティ)
-
- #「
- 」
コマンド ls -l (ll) によって表示される複数列属性の最初の列に対応する文字を使用して、ファイル タイプを区別します。
」
##「」
所有者または所属グループではない人がotherであるため、otherを記載する必要はありません
」
#理解を助ける - 所有者とグループ
#「
」
簡単な例を考えてみましょう。会社内で、2 つのプロジェクト チームが同じコード タスクを完了する必要があります。彼らは互いに競合しますが、会社は 1 台のサーバーしか提供しません。彼らは、コードを提出する必要があるというタスクを完了します。これはあなたが書いたコードです。これはあなたとあなたのチーム リーダーだけが見ることができ、競合他社のグループは見ることができません。これにより、所属グループの概念が生まれます。
」#
#########ファイルの種類######
d: フォルダー
-: 通常のファイル
l: ソフトリンク (Windows ショートカットに似ています)
b: デバイス ファイル (ハードディスク、光学ドライブなど) をブロックします -
p: パイプファイル-
c: キャラクタ デバイス ファイル (画面やその他のシリアル デバイスなど) -
s: ソケットファイル-
-
基本的な権限
-
- i. 読み取り (r/4): ファイルの場合、読み取りにはファイルの内容を読み取る権限があり、ディレクトリの場合、ディレクトリ情報を参照する権限があります
ii. 書き込み (w/2): ファイルの場合、書き込みにはファイルの内容を変更する権限があり、ディレクトリの場合は、移動されたディレクトリ内のファイルを削除する権限があります。
iii. 実行 (x/1): 実行 ファイルの場合はファイルを実行する権限を持ち、ディレクトリの場合はディレクトリに入る権限を持ちます。
iv.「—」は権限がないことを意味します 文字表現方法
Linux とは |
イラスト |
Linux |
イラスト |
r – – |
読み取り専用 |
– w – |
書き込みのみ可能 |
#########- - バツ###
実行可能ファイルのみ
r w – |
読み取り可能および書き込み可能 |
|
– w x |
書き込み可能および実行可能
###処方箋###
読み取り可能および実行可能 |
|
r w x |
読み取り可能、書き込み可能、および実行可能 |
– – –
###全く許可しません###
|
8 進数値を表す方法
権限シンボル (読み取り、書き込み、実行) |
8進数 |
###バイナリ###
|
#r
4 |
1 0 0 |
|
w
2 |
0 1 0 |
#########バツ###
1 |
0 0 1
|
rw |
6 |
1 1 0
#########処方箋###
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
-
功能:设置文件的访问权限
-
格式:chmod [参数] 权限 文件名
-
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和 root 才可以改变文件的权限
① 用户表示符 +/-= 权限字符
-
+: 向权限范围增加权限代号所表示的权限
-
-: 向权限范围取消权限代号所表示的权限
-
=: 向权限范围赋予权限代号所表示的权限
用户符号:
-
u:拥有者
-
g:拥有者同组用
-
o:其它用户
-
a:所有用户
示例:
“
注意:chmod 可以给拥有者,所属组,其他用户同时修改权限,中间用逗号隔开
”
“
如果要修改不是自己的文件的时候需要 sudo 临时权限提升或者直接切成 root 身份
”
-
sudo chmod 用户表示符 +/-= 权限字符 文件名
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
”
-
我们也可以通过修改文件的 umask 码值来修改文件的权限:
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022,普通用户默认为 0002。
2.5 file 指令
file
功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。
-
目录权限
面试题:进入一个目录要什么权限?
-
可读权限: 如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容.
-
可写权限: 如果目录没有可写权限,则无法在目录中创建文件, 也无法在目录中删除文件.
-
可执行权限:如果没有目录可执行权限,则无法 cd 到目录中
-
粘滞位
新发现:
“
就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.我创建的一个文件, 凭什么被你一个外人可以删掉
”
结论
如果目录本身对 other 具有 w 权限,other 可以删掉任何目录下的东西
如果目录本身对 other 没有 w 权限,other 则不可以删除
“
我们的需求:other 可以在特定的目录下创建文件并写入,但是不想让任何人删除掉自己的文件
”
这里为了解决这个不科学的问题,Linux 引入了粘滞位的概念
粘滞位
语法:chmod +t 目录名
功能:给目录加上粘滞位
注意
#「」
ディレクトリにのみ設定でき、通常は他の権限が制限されます。スティッキー ビットが設定されたディレクトリの場合、ファイルの所有者と root ユーザーのみが削除でき、他のユーザーは削除できません
」#
###例:###
#「
」
複数の人またはシステムが存在する場合、大量の一時データが存在し、すべての一時ファイルはシステムの /tmp ディレクトリに配置されます。すべての権限を解放する必要がありますが、ファイルの所有者だけが自分のファイルを削除できるようにする必要があります。これには、スティッキー ビット を設定する必要があります。
」
#
要約
ディレクトリの実行権限は、ディレクトリ内でコマンドを実行できるかどうかを示します。 -
ディレクトリに – )
がない場合
-
また、ディレクトリに -x 権限はあるが、-r 権限がない場合、ユーザーはコマンドを実行でき、ディレクトリに cd でアクセスできます。ただし、ディレクトリへの読み取り権限がないため、
-
したがって、ディレクトリ内で ls コマンドを実行できたとしても、ディレクトリ内のドキュメントを読み取る権限はありません。
-
|
|
以上がシェルの動作原理と Linux 権限の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。