Linuxノート4-ユーザーIDとファイル権限

ユーザーIDと機能

rootユーザーは非常に高い権限を持っており、ユーザーの追加/削除、プロセスの開始/終了など、さまざまな機能を管理できます。
実際、rootは単なる名前であり、彼をスーパーユーザーにしているのはUID値です。
UID(ユーザーID):各ユーザーには、ID番号と同様に、対応するDUI値があります。
スーパーユーザーUID0のユーザー。デフォルトはrootユーザーです。
システムユーザーUID1-999:システム内のシステムサービスは異なるユーザーによって実行されるため、より安全です。デフォルトでは、Xirongへのログインに制限されています。
通常のユーザーUID1000〜:管理者が日常業務用に作成し、できません管理システムの通常ユーザーの
アカウント名とUID/ etc / passwdファイルに保存され、アカウントパスワードは/ etc / shadowファイルに保存されます

GID(GROUP ID):複数のユーザーを1つのグループにグループ化できます。これは、好意や仕事を割り当てるのに便利です。ユーザーグループ名とGIDは/ etc / groupに保存されます

ファイルのアクセス許可と所有権

一部のLinuxはファイルです。ファイルとディレクトリの所有権とアクセス許可は、それぞれ、ファイルの所有者、所有者、およびその他の読み取り、書き込み、および実行のアクセス許可を規定します。
ここに画像の説明を挿入
次の例は、index.htmlがファイル所有者権限であることを示しています。所属グループ権限の読み取りと書き込み:読み取り専用その他のユーザー権限:読み取り専用
最初の意味:-:通常のファイルd:ディレクトリファイルl:リンクファイルb:ブロックデバイスファイルc:文字デバイスファイルp:パイプファイル
通常ファイルの実行許可はファイルを実行できることを意味し、ディレクトリファイルの実行許可はユーザーがディレクトリに入ることができることを意味します

-rw-r--r--  1 root root 2381 Oct 19 10:29 index.html

特別な権限をファイルする

SUID実行可能ファイルに所有者の権限を一時的に付与する(実行権限を持つバイナリプログラムにのみ有効)
SGID:1)実行可能ファイルにグループの権限を一時的に付与する(実行可能ファイルにのみ有効)
2)これで作成するディレクトリファイルは、このディレクトリのユーザーグループに自動的に統合されます(ディレクトリファイルに対してのみ有効)

chmodコマンドは、ファイルまたはディレクトリのアクセス許可形式を変更するために使用されます。chmod[parameter]アクセス許可ファイルまたはディレクトリの名前
。chownコマンドは、ファイルまたはディレクトリのユーザーおよびグループ形式を変更するために使用されます。形式:chown [パラメータ]グループファイルまたはディレクトリ名の
に属するユーザー
rootユーザーを使用してディレクトリttdirを作成し、実行権限を増やし(実行権限を持つファイルまたはディレクトリのみがssuiおよびsgid権限を追加できます)
、sgid権限を追加してhadoopユーザーに切り替えますディレクトリに通常どおりアクセスして編集します。つまり、ユーザーhadoopは、それが属するグループのアクセス許可を一時的に持っています。

[root@bogon tmpdir]# mkdir ttdir
[root@bogon tmpdir]# ls -ald ttdir
drwxr-xr-x 2 root root 6 Oct 27 04:40 ttdir
[root@bogon tmpdir]# ls -ald ttdir
drwxrwxrwx 2 root root 6 Oct 27 04:40 ttdir
[root@bogon tmpdir]# chmod -rf g+s ttdir
chmod: invalid mode: ‘-rf’
Try 'chmod --help' for more information.
[root@bogon tmpdir]# chmod -R g+s ttdir
[root@bogon tmpdir]# ls -ald ttdir
drwxrwsrwx 2 root root 6 Oct 27 04:40 ttdir
[root@bogon tmpdir]# su hadoop
[hadoop@bogon tmpdir]$ cd ttdir
[hadoop@bogon ttdir]$ ll
total 0
[hadoop@bogon ttdir]$ echo “hello ” > test
[hadoop@bogon ttdir]$ ll
total 4
-rw-r--r-- 1 hadoop root 13 Oct 27 04:54 test

SBIT(スティッキービット):自分のデータのみを管理でき、他の人のファイルを削除することはできません(ディレクトリに対してのみ有効)。たとえば
、rootユーザーが/ tmpディレクトリに入り、権限の最後のビットtは、ディレクトリにSBITアクセス許可(スティッキービット)。ファイルtest.txtを作成し、すべてのユーザーの読み取りおよび書き込みアクセス許可を作成してから、通常のユーザーhadoopに切り替えてファイルを削除し、削除が失敗したことを確認します。(他の人のファイルを削除することを許可しない許可リストがありますが)

[root@bogon tmp]# ls -adl /tmp
drwxrwxrwt. 12 root root 4096 Oct 27 03:41 /tmp
[root@bogon tmp]# echo 123>test.txt
[root@bogon tmp]# ll
-rw-r--r-- 1 root root  0 Oct 27 05:06 test.txt
[root@bogon tmp]# chmod 777 test.txt
[root@bogon tmp]# su hadoop
[hadoop@bogon tmp]$ ll
-rwxrwxrwx 1 root root  0 Oct 27 05:06 test.txt
[hadoop@bogon tmp]$ rm test.txt
rm: cannot remove ‘test.txt’: Operation not permitted

ファイルの隠し属性

ファイルのアクセス許可には、読み取り/書き込みの実行とSUID、SGID、およびSBITに加えて、非表示のアクセス許可があります。たとえば、ファイルにコンテンツを追加することはできますが、コンテンツを減らすことはできません。
chattrコマンドは
、ファイルの非表示のアクセス許可を設定するために使用されます。形式:chattr [パラメーター]ファイル
パラメーター:

i    无法对文件进行修改,若对目录设置后则只能修改子文件不能新建或删除文件
a    仅允许补充内容,无法删除 覆盖
...

lsattrコマンドは
、ファイルの非表示のアクセス許可を表示するために使用されます。形式は次のとおりです。lsattr[parameter]ファイル
パラメーター:

a     显示所有文件和目录
l       显示隐藏属性的全称
R     递归处理
d     如果目标文件为目录 则需要加此参数


ファイル555.txtは、特別なアクセス許可を追加しなくても正常に削除できます。
特別な権限を追加した後、ファイル555.txtを再作成します。ファイルの内容のみを追加できますが、ファイルを上書きまたは削除することはできません。

[root@bogon ~]# echo '555'>555.txt
[root@bogon ~]# rm 555.txt
rm: remove regular file ‘555.txt’? y
[root@bogon ~]# echo '555' >555.txt
[root@bogon ~]# chattr +a 555.txt
[root@bogon ~]# echo '5555'>>555.txt
[root@bogon ~]# echo '5555'>555.txt
-bash: 555.txt: Operation not permitted
[root@bogon ~]# rm 555.txt
rm: remove regular file ‘555.txt’? y
rm: cannot remove ‘555.txt’: Operation not permitted

suコマンドとsudoサービス

su命令

ユーザーのIDを変更するために使用されます(ログインユーザーの切り替え)形式:su [-]ユーザー名とパラメーター-環境変数は同時に切り替えることができ、ユーザーは切り替えられません。切り替え時に
rootユーザーのみがパスワードを入力する必要ありません。他のユーザーに。
追加された場合、パラメーター-その後、ユーザーのルートディレクトリに自動的に切り替わり、環境変数が同時に切り替えられます。それ以外の場合、ディレクトリと環境変数は切り替えられません。 。同時に、exitを実行するパラメータを追加し、終了時にログアウトを促します。そうしないと、exitのみがプロンプトされます。

[root@bogon ~]# su hadoop
[hadoop@bogon root]$ su root
Password: 
[root@bogon ~]# su - hadoop
Last login: Tue Oct 27 07:51:53 EDT 2020 on pts/1
[hadoop@bogon ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/apps/jdk/bin:/home/hadoop/.local/bin:/home/hadoop/bin
[hadoop@bogon ~]$ su root
Password: 
[root@bogon hadoop]# su hadoop
[hadoop@bogon ~]$ su -  root
Password: 
Last login: Tue Oct 27 07:53:30 EDT 2020 on pts/1
[root@bogon ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/apps/jdk/bin:/root/bin
[root@bogon ~]# su hadoop
[hadoop@bogon root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/apps/jdk/bin:/root/bin
[hadoop@bogon root]$ 
[root@bogon ~]# su hadoop
[hadoop@bogon root]$ exit
exit
[root@bogon ~]# su - hadoop
Last login: Tue Oct 27 07:59:17 EDT 2020 on pts/1
[hadoop@bogon ~]$ exit
logout

sudo命令

これは、元々スーパーユーザーであったタスクを完了するための追加のアクセス許可を通常のユーザーに提供するために使用されます。形式は次のとおりです。sudo[parameter]コマンド名
suコマンドはログインユーザーをrootに切り替えることができ、隠れた危険性を高めます。sudoを使用すると、セキュリティを強化するために、通常のユーザーにのみファイル実行権限を付与できます。通常のユーザーが作業を完了できるようにすることを前提として、権限を可能な限り減らします。
sudoの特定の機能:
1。ユーザーによる指定されたコマンドの実行の制限
2.ユーザーが実行したすべてのコマンドの記録
3.ユーザー、アクセス許可、ホスト、およびその他のパラメーターの集中管理を構成ファイル(/ etc / sudoers)に提供します
4.確認後パスワード、5分(デフォルト)パスワードを再度確認する必要はありません。これは、パラメーターにとってより便利です。

-h  列出帮助信息
-l  列出前用户可执行命令
-u  用户性或uid      以指定的用户身份执行命令
-k   清空安全时间,下次执行sudo时 必须要再次验证密码
-b   在后台执行指定的命令
-p   更改询问密码提示语

visudoコマンド
visudoコマンドを使用して/ etc / sudoersファイルを編集できるのは、スーパーユーザーのみです。このコマンドを使用すると、複数のユーザーが同時にファイルを変更するのを防ぐことができます。同時に、ファイルの内容が文法的にチェックされます。チェックが失敗した場合、保存できません。

hadoopユーザーがsudoを介してすべてのコマンドを実行できるようにします。visudoコマンドを
使用してファイルを編集します。99行後にhadoop権限を追加し、次のように構成します。

ルートALL =(ALL)ALL
hadoop ALL =(ALL)ALL

hadoopユーザーに切り替えて、sudoを介して実行できるコマンドを表示します。/ rootディレクトリへの直接アクセスにはアクセスできませんが、sudoを介して通常はアクセスできます。

[root@bogon ~]# su - hadoop
Last login: Tue Oct 27 08:20:08 EDT 2020 on pts/1
[hadoop@bogon ~]$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for hadoop: 
Sorry, try again.
[sudo] password for hadoop: 
Matching Defaults entries for hadoop on bogon:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS
    DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS
    LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
    XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User hadoop may run the following commands on bogon:
    (ALL) ALL
[hadoop@bogon ~]$ ls /root
ls: cannot open directory /root: Permission denied
[hadoop@bogon ~]$ sudo ls /root
555.txt          date.txt    res.txt      test       testdd.txt  tmpdir         tmpfile  ttt.txt
anaconda-ks.cfg  index.html  root.tar.gz  test2.txt  test.txt    tmpdir.tar.gz  tstd

同様に、
hadoop ALL =(ALL)ALLを構成できます//これは、hadoopユーザーがすべてのユーザーとしてすべてのコマンドを実行できることを意味します
hadoop ALL =(root)/ bin / cat // hadoopユーザーがrootとして実行できることを意味しますuser / bin / catコマンド
hadoopALL = NOPASSWD:ALL // hadoopユーザーが任意のIDでコマンドを実行でき、パスワードの確認を必要としないことを示します

ファイルアクセス制御リスト

上記のrwxアクセス制御は、特定のタイプのユーザーに対するすべてのアクセス制御です。指定されたユーザーのアクセスを制御する必要がある場合は、ファイルアクセス制御リストを使用して実行する必要があります。
ACLは、ファイルまたはディレクトリに基づいて設定できます(ユーザーまたはユーザーグループのアクセス権を指定します)。ディレクトリに制御ポリシーが設定されている場合、そのサブファイルはデフォルトでアクセスポリシーを継承します(特別な設定が行われていない場合)。

setfaclコマンドは
、aclルールを追加または変更するために使用されます。形式:setfacl [parameter] file

-r       递归(对目录使用)
-m     设置文件的acl规则
-b      删除acl规则

getfaclコマンドは
、ファイルのACLルールを表示するために使用されます。形式は次のとおりです。getfaclfile

この例の
ルートディレクトリ正常であり、hadoopユーザーはアクセスできません。ここで、hadoopのルートディレクトリアクセス許可を追加してから、hadoopユーザーに切り替えてディレクトリにアクセスします。

[root@bogon ~]# setfacl -rm u:hadoop:rwx /root
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.
[root@bogon ~]# setfacl -Rm u:hadoop:rwx /root
setfacl: /root/ttt.txt: Operation not permitted
setfacl: /root/555.txt: Operation not permitted
[root@bogon ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:hadoop:rwx
group::r-x
mask::rwx
other::---
[root@bogon ~]# su - hadoop
Last login: Tue Oct 27 08:23:45 EDT 2020 on pts/1
[hadoop@bogon ~]$ cd /root
[hadoop@bogon root]$ ll
total 52
-rw-r--r--  1 root root    9 Oct 27 07:43 555.txt
-rw-rwx---+ 1 root root 1260 Jun 10 05:26 anaconda-ks.cfg
-rw-rwxr--+ 1 root root 1595 Oct 26 04:59 date.txt
-rw-rwxr--+ 1 root root 2381 Oct 19 10:29 index.html
-rw-rwxr--+ 1 root root  767 Oct 19 09:51 res.txt

おすすめ

転載: blog.csdn.net/zhangxm_qz/article/details/109312113