ファイルのアクセス許可と所有権
すべてがファイルであるLinuxシステムでは、ファイルの種類が異なるため、Linuxシステムでは異なる文字を使用して区別しています。一般的な文字は次のとおりです。
-:通常のファイル。
d:ディレクトリファイル。
l:リンクファイル。
b:デバイスファイルをブロックします。
c:キャラクターデバイスファイル。
p:パイプファイル。
ファイルの読み取り、書き込み、および実行のアクセス許可は、rwxと省略でき、それぞれ番号4、2、および1で表すこともできます。ファイルの所有者、ファイルが属するグループ、表5-5に示すように、他のユーザーの権限。
ファイルパーミッションの文字と数字の表現
数字と文字を使用して、ファイルのアクセス許可を前後に定義できます
ファイルの特別な権限
南
SUIDは、バイナリプログラムの特別な権限であり、バイナリプログラムの実行者が一時的に所有者の権限を持つことを許可します(実行権限を持つバイナリプログラムに対してのみ有効です)。一時的に有効な1回限り。
デフォルトのユーザーは/ etc / shadowファイルを表示しています。このファイルを注意深く見ると、デフォルトの権限が000であることがわかります。これは、ルート管理者を除くすべてのユーザーがファイルを表示または編集する権限を持っていないことを意味します。
SGID
SGIDは、主に次の2つの機能を実装します。
エグゼキュータに一時的にグループの権限を持たせます(実行権限でバイナリプログラムを設定します)。
ディレクトリに作成されたファイルは、ディレクトリのユーザーグループを自動的に継承します(ディレクトリのみを設定できます)
SGIDの最初の機能は、SUIDを参照して設計されています。違いは、プログラムを実行するユーザーがファイル所有者の一時的なアクセス許可ではなく、ファイルが属するグループのアクセス許可であるということです。たとえば、初期のLinuxシステムでは、/ dev / kmemは、カーネルプログラムがアクセスするデータを格納するために使用される文字デバイスファイルです。
[root@myserver tmp]# mkdir 2021_test
[root@myserver tmp]# ls -ald 2021_test/
drwxr-xr-x. 2 root root 6 Jan 16 22:22 2021_test/
[root@myserver tmp]# chmod -Rf 777 2021_test/
[root@myserver tmp]# ls -ald 2021_test/
drwxrwxrwx. 2 777 root 6 Jan 16 22:22 2021_test/
[root@myserver tmp]# chmod -Rf g+s 2021_test/
[root@myserver tmp]# ls -ald 2021_test/
drwxrwsrwx. 2 777 root 6 Jan 16 22:22 2021_test/
[root@myserver tmp]#
SBIT
ディレクトリにSBIT特殊許可ビットが設定されている場合、ファイルの他の人の許可部分のx実行許可はtまたはTに置き換えられ、元のx実行許可はtとして書き込まれ、元のx実行許可はTと表記されます。
もちろん、通常のユーザーは削除できません、rootユーザーは削除できます
ファイルの隠し属性
chattrコマンドは、ファイルの非表示のアクセス許可を設定するために使用されます。形式は「chattr [パラメーター]ファイル」です。非表示の関数をファイルに追加する場合は、コマンドの後に「+ parameter」を追加する必要があります。非表示の関数をファイルから削除する場合は、「-parameter」を追加する必要があります。
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
x 可以直接访问压缩文件中的内容
lsattrコマンド
lsattrコマンドは、ファイルの非表示のアクセス許可を表示するために使用され、形式は「lsattr [パラメーター]ファイル」です。Linuxシステムでは、ファイルの非表示のアクセス許可はlsattrコマンドを使用して表示する必要がありますが、通常のlsおよびその他のコマンドでは手がかりが表示されません。
[root@myserver tmp]# lsattr chattr_test2021
----ia-A---------- chattr_test2021
[root@myserver tmp]#
ファイルアクセス制御リスト
ファイルアクセス制御リスト(FACL)を使用する必要があります。素人の言葉で言えば、共通のファイルまたはディレクトリに基づいてACLを設定することは、実際には、指定されたユーザーまたはユーザーグループにファイルまたはディレクトリの操作権限を設定することです。さらに、ディレクトリにFACLが設定されている場合、ディレクトリ内のファイルはそのFACLを継承します。ファイルにFACLが設定されている場合、ファイルはそれが配置されているディレクトリのACLを継承しなくなります。
setfaclコマンド
setfaclコマンドは、ファイルのACLルールを管理するために使用され、形式は「setfacl [パラメータ]ファイル名」です。ファイルACLは、所有者、グループなどの読み取り/書き込み/実行権限に加えて、特別な権限制御を提供します。setfaclコマンドを使用して、単一のユーザーまたはユーザーグループ、単一のファイルまたはディレクトリに対して読み取り/書き込み/書き込みを行うことができます。実行権限の制御。その中で、ディレクトリファイルには-R再帰パラメータを使用する必要があります。通常のファイルには-mパラメータを使用します。ファイルのACLを削除する場合は、-bパラメータを使用できます。/ rootディレクトリにユーザーのアクセス許可を設定しましょう
getfaclコマンド
getfaclコマンドは、ファイルに設定されたACL情報を表示するために使用され、形式は「getfaclファイル名」です。Linuxシステムのコマンドはとてもかわいくて覚えやすいです。ACLを設定するには、setfaclコマンドを使用します。ACLを表示するには、getfaclコマンドを使用します。以下では、getfaclコマンドを使用して、ルート管理者のホームディレクトリに設定されているすべてのACL情報を表示します。
suコマンドとsudoサービス
suコマンドは、ユーザーIDを切り替える必要性を解決できるため、現在のユーザーは、root管理者から通常のユーザーへの切り替えなど、ログアウトせずに他のユーザーにスムーズに切り替えることができます。suコマンドと上記のユーザー名の間の削減があります。 。記号(-)は、新しいユーザーに完全に切り替えることを意味します。つまり、元の情報を保持するのではなく、環境変数情報を新しいユーザーの対応する情報に変更します。
sudoコマンドは、ルート管理者のみが実行できるタスクを完了するための追加のアクセス許可を通常のユーザーに提供するために使用されます。形式は「sudo [パラメーター]コマンド名」です。
-h | ヘルプ情報を一覧表示する |
-l | 現在のユーザーが実行可能なコマンドを一覧表示します |
-uユーザー名またはUID値 | 指定されたユーザーとしてコマンドを実行します |
-k | パスワードの有効時間をクリアします。次にsudoを実行するときに、パスワードを再度確認する必要があります。 |
-b | 指定されたコマンドをバックグラウンドで実行します |
-p | パスワードを要求するプロンプトを変更します |
sudo命令具有如下功能:
限制用户执行指定的命令:
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后5分钟内(默认值)无须再让用户再次验证密码。
visudo構成ファイルを編集する
ユーザーが指定されたコマンドをルート管理者としてのみ実行できるようにする必要がある場合は、コマンドの絶対パスを指定することを忘れないでください。そうしないと、システムはそれを認識しません。最初にwhereisコマンドを使用して、コマンドに対応する保存パスを見つけてから、構成ファイルの99行目のユーザー権限パラメーターを対応するパスに変更できます。