記事ディレクトリ
皆さん、こんにちは。私の名前は Ji Ning です。
この記事では、Linux シェル プログラムと、Linux ユーザーが Linux 権限を切り替える内容を紹介します。
オペレーティング システムとシェル
厳密に言えば、Linux は「カーネル」と呼ばれるオペレーティング システムですが、私たち一般ユーザーはカーネルを直接使用することはできません。
ただし、カーネルの「シェル」プログラム、いわゆるシェルを介します。
Linuxのユーザー状態とカーネル状態の図
オペレーティング システムのカーネルとシェルは 2 つの異なるコンポーネントですが、密接に関連しています。
オペレーティング システム カーネルはオペレーティング システムの中核部分であり、コンピュータのハードウェアとソフトウェア リソースを管理し、プロセス管理、メモリ管理、I/O 管理、ファイル システムなどのコンピュータ システムの基本サービスを提供します。オペレーティング システム カーネルはオペレーティング システムの基礎であり、これがなければオペレーティング システムは適切に実行できません。
シェル シェルは、ユーザーがオペレーティング システム カーネルと対話するために使用されます主要接口
。シェルは、ユーザーが入力したコマンドを受け入れ、対応するカーネル サービスを呼び出して実行する 命令解释器
として理解できます。シェルは、ユーザーがオペレーティング システムのカーネル サービスに簡単にアクセスし、ファイル システムやその他のリソースを操作できるようにする一連のコマンドとスクリプト言語を提供します。
オペレーティング システムでは、シェルはシステム ユーザーとカーネルの間の対話型インターフェイスとして機能し、コマンド ラインまたはグラフィカル インターフェイスを通じてユーザーの要求と指示を渡します。指示を受け取った後、カーネルは対応する操作を実行し、結果をシェルに返します。シェルとカーネル間の対話は、システム コールを通じて実現できます。
シェルシェルの役割を要約すると、次のようになります。ユーザーのコマンドをカーネルに変換して処理させ、同時にカーネルの処理結果をユーザーに変換します。
shell外壳一定会对用户输入的指令做处理吗?
答えはノーです。オペレーティング システムのセキュリティと使いやすさを考慮するため、ユーザーはオペレーティング システムに直接アクセスするのではなく、シェル プログラムを通じて命令を入力する必要があります。ただし、シェル プログラムが命令を処理しているとき、危険な命令の場合、シェル プログラムは 子进程
を作成して、子プロセスに危険な命令 (通常は 用户自定义的指令
) を実行させます。
サブプロセスを作成することで、命令の実行処理を独立したプロセス空間に分離することができるため、実行中にエラーや事故が発生しても、シェル自体やその他の処理に影響を与えることはありません。プロセスの状態と子プロセスのリソース使用量を制御することで、命令の影響範囲が制限され、リスクが軽減され、システムのセキュリティと安定性が大幅に確保されます。
プロセスを強制終了する手順:
kill -9 进程编号
Linuxユーザー
Linux システム ユーザーは、root
ユーザーと 非root
ユーザーに分かれています。root ユーザーはスーパー管理者であり、システムの最高の権限を持ちます。一般ユーザーでもできる Windowsシステムでできることは、自社システムでできることのほとんどは基本的に一般ユーザーでもできますが、システムソフトウェアのインストールや削除などはrootユーザーのみが行うことができます。システム構成の変更など。
一般ユーザーの作成と削除
Linux システムでは、root ユーザーは 1 人しか存在できませんが、複数の一般ユーザーが存在することができ、一般ユーザー間のリソースは共有されません。
创建新用户
xxx は作成するユーザー名です
adduser xxx
为用户设置密码
xxxxx はパスワードです(入力したパスワードは端末に表示されませんが、2回確認されます)
passwd xxxxx
删除用户名和密码
userdel xxx
删除用户数据
userdel rm -r xxx
ユーザー切り替え
切换为root用户
su - #以root身份再登录一次
su #切换为root身份
上記のどちらの切り替え方法でも、root アカウントのパスワードを再度入力する必要があります。
logout # 退回到普通用户的账号
切换为普通用户
su xxx
rootアカウントの切り替えにはパスワードの入力は必要ありませんが、通常アカウントのアカウント切り替えにはパスワードの入力が必要です。
exit
切り替えた普通口座を退会する
rootアカウントに切り替えずにrootアカウントの権限でコマンドを実行する方法
sudo 指令
ただし、sudo コマンドを使用するには、sudo を使用する前に、一般ユーザーを root としてホワイトリストに追加する必要があります。
sudo指令白名单教程
まず、ユーザーを root アカウントに切り替え、root アカウントで次のコマンドを実行します。
vim /etc/sudoers
vim と入力し、%whell ALL=(ALL) ALL
このコマンドを見つけます
このコマンドをコピーし、wh をホワイトリストに追加するユーザー名に変更します。
最下行モードに入ったら、w!
を押して強制保存し、q!
を押して強制終了します。将来的には、Zyb アカウントで sudo コマンドを使用するときに、Zyb アカウントのパスワードを短時間に 1 回入力するだけで済みます。
Linuxの権限
Linux 権限の分類
文件的权限属性:r
(读)w
(写) x
(执行)
Linux文件权限角色群体:拥有者
、所属组
、other
文件所有者
: ファイルの所有者は、ファイルの作成時に指定されたユーザーであり、通常はファイルを作成したユーザーです。ファイル所有者は、ファイルに対する所有権と、読み取り、書き込み、削除操作を含む完全なアクセス権を持ちます。
文件所属组
: ファイルが属するグループは、ファイルが属するグループを指定します。ファイルを作成するとき、ファイルが属するグループは、通常、作成するユーザーが属するプライマリ グループに設定されます (「グループの作成」)。ファイルが属するグループ内のユーザーはファイルにアクセスできますが、所有権はありません。
文件的other
: 他のすべてのユーザーまたはグループ、つまりファイルの所有者またはグループではないユーザーまたはグループを表します。
権限を変更するにはどうすればよいですか?
ファイルの所有者とグループを変更するには、root 権限が必要です。そうでない場合は、現在のユーザーがファイルの元の所有者です。コマンド chown
を使用すると、newuser と newgroup がファイルの新しい所有者と新しいグループになります。
ファイルの所有者を変更する
chown newuser file.txt
ファイルが属するグループを変更する
chgrp newgroup file.txt
ファイルの所有者とグループを同時に変更する
chown newuser:newgroup file.txt
ファイルアクセス権限
ファイルの詳細を表示するには、コマンド ラインに「ll」と入力します。
赤いボックス内にあるのは、ファイル ロールの詳細な権限情報です。
ファイル権限を変更する
chomd ugoa +/- rwx 文件名
説明する:u はファイルの所有者であるユーザーを表し、g はファイルが属するグループを表し、o はファイルの他方を表し、a はファイルの所有者を表します。+ は特定の権限の追加を表し、- は特定の権限の削除を表します。 ; r w x はファイルのアクセス許可属性 (読み取り、書き込み、実行) を表します。、連続動作をサポートします。
例1:ファイルtest.txtの所有者の読み取り権限を削除したい場合
chomd u-r test.txt
例 2: ファイル test.c の所有者の読み取り権限を削除し、そのファイルが属するグループの書き込み権限を増やし、その他のグループの読み取り権限を増やしたい場合、手順は次のとおりです。
chomd u-r,g+w,o+r test.c
注: 変更権限を持つには、ファイルまたはディレクトリの所有者であるか、スーパー ユーザー (root) である必要があります。ファイル属性を変更するには、所有者は変更されたファイルへの書き込み権限も持っている必要があります。どのような権限であっても、root アカウントでは無効です。
許可マスク
ファイル マスクは、ファイル作成時のデフォルトのアクセス許可をカスタマイズできます。
ディレクトリ ファイルには理論上、作成時に読み取り、書き込み、および実行の権限が与えられます (ファイルに入るには x 個の権限が必要です) が、すべての権限が与えられるわけではない場合があります。ファイルの作成時には、少なくとも読み取りおよび書き込み権限が必要です。
権限がある場合は 1 としてカウントされ、権限がない場合は 0 としてカウントされます。
上の図のファイルの権限は次のとおりです。 a> 110110100 原理レベルでは、総パーミッションの 2 進数とパーミッション マスクを比較します。同じビットがある場合は削除され、存在しない場合は削除されません。処理される。次の式を使用して計算することもできます。 これはどのように計算されますか? のファイル マスクを変更します。このアカウントを 005 に変更し、ファイル test.cc、code.cc、およびディレクトリ efootball を作成すると、以前に作成したファイルと比較して権限が減少していることがわかります。 例: 現在のアカウントのファイル マスクを変更できます。 このコマンドは、現在のアカウントのファイル マスクと現在のファイル マスクをクエリできます。コードは 002 です。ディレクトリの開始権限は 777 である必要があります。通常のファイルの実際の権限は 777 です。しかし、なぜそうではないのでしょうか?これは許可マスクに関係しています。ファイルのデフォルトのアクセス許可がファイルの開始アクセス許可、つまり umask (8 進減算) に表示されるアクセス許可であることを指定します。 権限 左から右の順序は、読み取り、書き込み、実行です。ファイルの各役割の 3 つの権限を、次のように 8 進数として考えてください。 110110100 111111101 110110100
111111101
umask
umask 权限编号
umask 003
最终权限 = 起始权限&(~umask)
注: ファイルを削除できるかどうかは、ファイル自体には依存しません。また、ファイルが置かれているディレクトリに応じて、所有者が写
アクセス許可を持っているかどうかも異なります。もちろん、root アカウントはやりたいことを何でもできます。
粘着ビット
共有ファイル ディレクトリ内で、そのファイルが属するグループを設定せずに、このディレクトリ内の 1 つをもう 1 つ粘滞位t
追加して、他のファイルの最後の権限 x とピリオドを置き換えることができます。この意味は、このディレクトリのアクセス許可にさらに特別な制限を課します。ディレクトリにはその他の w 属性がありますが、ルートまたはファイルの所有者だけがこのディレクトリ内のファイルを削除する権限を持ち、削除することはできません。他の人は許可されます!
スティッキー ビットを使用して、ディレクトリに特別なアクセス許可を追加できます。