mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

17_Linux基礎-ユーザー権限2

一。練習:バッチで n 個のユーザーを作成#

バッチで n 個のユーザーを作成

ユーザー名は sanchuang で始まり、sanchuang

ホームディレクトリを /lianxi/user に指定


---------------------------------------------------------------------------------------------------------------------------------
[root@localhost ~]# seq -w 10			# 注:-w 同じ長さで出力
01
02
……………… 
09
10
[root@sanchuang-linux ~]# vim create_user2.sh
#!/bin/bash
num=$1          # 注:$1外で引数を受け取る、名前を変更することは意味がある
[ -d /lianxi/user ] || mkdir /lianxi/user      # 注:-dはディレクトリの存在を確認し、-fは通常ファイルの存在を確認
for i in `seq -w $num`						   # 注:mkdir /lianxi/user だけで良い、ユーザー名のディレクトリは追加しない
do				# 注:存在を確認し、前が真なら何もしない、偽ならmkdirを実行…
    useradd -d /lianxi/user/sanchuang$i sanchuang$i
done
[root@sanchuang-linux ~]# bash create_user2.sh 12
useradd:ユーザー“sanchuang01”は既に存在します
useradd:ユーザー“sanchuang02”は既に存在します
………………
useradd:ユーザー“sanchuang10”は既に存在します
useradd:ユーザー“sanchuang12”は既に存在します
[root@sanchuang-linux ~]# cd /lianxi/user
[root@sanchuang-linux user]# ls
sanchuang01  …………  sanchuang10  sanchuang12
[root@sanchuang-linux user]# cd
[root@sanchuang-linux ~]# bash create_user2.sh 20
useradd:ユーザー“sanchuang01”は既に存在します
useradd:ユーザー“sanchuang02”は既に存在します
………………
useradd:ユーザー“sanchuang12”は既に存在します
useradd:ユーザー“sanchuang13”は既に存在します
[root@sanchuang-linux ~]# cd /lianxi/user
[root@sanchuang-linux user]# ls
sanchuang01  …………  sanchuang18  sanchuang20

二。一般的に普通ユーザーはホームディレクトリまたは /tmp ディレクトリ内でのみファイルやフォルダを作成できます#

一般的に普通ユーザーはホームディレクトリまたは /tmp ディレクトリ内でのみファイルやフォルダを作成できます

#注:/tmp ディレクトリは一時的なディレクトリで、一般的に一時的なものを保存します

#注:(例:プログラムの実行中に記録する必要があるもの、プログラム終了後に /tmp ディレクトリ内のものを削除します)

[root@sanchuang-linux ~]# su - sanchuang
最終ログイン:金 11月  6 17:09:41 CST 2020pts/2
[sanchuang@sanchuang-linux ~]$ ls -ld /
dr-xr-xr-x. 38 root root 4096 11月  5 15:12 /
[sanchuang@sanchuang-linux ~]$ ls -ld /etc
drwxr-xr-x. 90 root root 8192 11月  7 15:00 /etc
[sanchuang@sanchuang-linux ~]$ ls -ld ./				# 注:ホームディレクトリ内でファイルやフォルダを作成
drwxrwxrwx. 4 sanchuang sanchuang 122 11月  6 17:10 ./ 
[sanchuang@sanchuang-linux ~]$ ls -ld /tmp			# 注:/tmpディレクトリ内でファイルやフォルダを作成
drwxrwxrwt. 12 root root 264 11月  7 10:36 /tmp

#注:chmod 自分が所有者の時のみ、権限を変更できます

三. chmod#

chmod の使用は、ファイルの所有者でなければ、ファイルの読み書き実行権限を変更できません(root を除く)

#注:chmod の使用は、ユーザーがファイルの所有者でなければ変更できません(ファイルの属グループのメンバーであっても変更権限はありません)

#注:root ユーザーは除外されます

例:suでユーザーを切り替える時の加-と不加-の違い
[root@sanchuang-linux chenpeng]# su - sanchuang11		# 注:加 - で自動的にホームディレクトリに切り替わります
最終ログイン:土 11月  7 15:10:51 CST 2020pts/0
[sanchuang11@sanchuang-linux ~]$ exit
ログアウト
[root@sanchuang-linux chenpeng]# su sanchuang11			# 注:不加 - で現在のディレクトリに留まります
[sanchuang11@sanchuang-linux chenpeng]$ 

四。ファイル / ディレクトリの所有権を設定#

ファイル / ディレクトリの所有権を設定

4.1 chown コマンド#

chown コマンド # 注:ファイルの所有者と属グループを変更するために使用します

  • 必ずrootである必要があります # 注:chown は root のみが変更できます
  • ユーザーとグループは存在する必要があります
  • 形式: chown 所有者 ファイル
    chown :属グループ ファイル
    chown 所有者:属グループ ファイル
例:chownでファイルの所有者と属グループを変更
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# ls -al sanchuang_log 						# 注:所有者 sanchuang ; 属グループ sanchuang
-rw-rw-r-- 1 sanchuang sanchuang 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown sanchuang10 sanchuang_log 			# 注:所有者をsanchuang10に変更
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang10 sanchuang 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown :sanchuang9 sanchuang_log 			# 注:属グループをsanchuang9に変更
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang10 sanchuang9 673 11月  7 15:19 sanchuang_log
[root@sanchuang-linux tmp]# chown sanchuang2:sanchuang sanchuang_log 	# 注:所有者と属グループの両方を変更
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 sanchuang2 sanchuang 673 11月  7 15:19 sanchuang_log

#注:所有者と属グループは自由に変更できません
#注:数字は自由に変更でき、制限はありません。強制的なチェックはありません
#注:文字列形式の名前を変更すると、チェックが行われます
[root@sanchuang-linux tmp]# chown xixi:haha sanchuang_log 		# 注:文字列の変更はチェックされます
chown: 無効なユーザー: “xixi:haha”
[root@sanchuang-linux tmp]# chown 6666:6666 sanchuang_log 		# 注:数字には制限がありません
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 6666 6666 673 11月  7 15:19 sanchuang_log

4.2 chgrp コマンド#

chgrp コマンド # 注:属グループを変更します(あまり使用されません)

  • 形式: chgrp 属グループ ファイル
  • 必ず root またはファイルの所有者である必要があります
  • 新しいグループのメンバーである必要があります

一般的なコマンドオプション

  • -R:指定したディレクトリ内のすべてのファイル、サブディレクトリの所有権を再帰的に変更します
例:chgrpコマンドで属グループを変更
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# chgrp sanchuang5 sanchuang_log 		# 注:属グループのみを変更
[root@sanchuang-linux tmp]# ls -al sanchuang_log 
-rw-rw-r-- 1 6666 sanchuang5 673 11月  7 15:19 sanchuang_log

4.3 実行可能なユーザー#

実行可能なユーザー

image-20220817035817124

操作 実行可能なユーザー

chmod root とファイル所有者

chgrp root とファイル所有者(グループメンバーである必要があります)

chown ただし root のみ

#注:chgrp で属グループを変更する場合、ファイル所有者は変更したいグループグループメンバーでなければなりません


五。デフォルトの権限#

  • カーネルレベルで、ファイルの初期権限は 666
  • カーネルレベルで、フォルダの初期権限は 777
  • umask コマンドでデフォルトの権限を制御し、一時的に有効です
[root@localhost ~]# umask  0022
[root@localhost ~]# umask -S  u=rwx,g=rx,o=rx  
[root@localhost ~]# umask 077  
[root@localhost ~]# umask  0077
システムのデフォルトumaskを変更することは推奨されません

# 注:umaskは新しく作成されるファイルやフォルダの権限をどれだけ制限するかを規定します
============================================================================================
[sanchuang9@sanchuang-linux ~]$ ls -ld dd					 # 注:新しく作成されたファイルdd
-rw-rw-r-- 1 sanchuang9 sanchuang9 0 11月  7 15:48 dd		# 注:権限644
============================================================================================

5.1 /etc/profile に umask の設定があります#

/etc/profile にumaskの設定があります

システム環境設定 /etc/profile # 注:/etc/profile に umask の設定があります

#注:uid が 199 より大きいかどうかを判断し、現在のユーザーのユーザー名とグループ名が等しい場合、umask は 002 になります

#注:ユーザー名とグループ名が異なる場合、umask は 022 になります

[sanchuang9@sanchuang-linux ~]$ less /etc/profile	# 注:/etc/profileにumaskの設定があります
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002			# 注:もしuidが199より大きければ、id -gnコマンドを実行し、group_name ;id -un user_name
else					# 注:uidが199より大きいかどうかを判断し、group_name=user_name
    umask 022			# 注:ユーザー名とグループ名が同じ場合、umaskは002;ユーザー名とグループ名が異なる場合は022
fi
--------------------------------------------------------------------------------------------
#注:新しく作成されたファイルの権限は666-umask、新しく作成されたディレクトリの権限は777-umask
#注:umaskを使用してファイルの権限を設定します。シェルにログインするたびにシステム環境が読み込まれ、/etc/profileが実行されるため、umaskが設定されます

#注:id -gnは現在のユーザーのグループ名を取得します
#注:id -unは現在のユーザー名を取得します
#uidが199より大きく、現在のユーザーのgroup_nameとuser_nameが同じ名前の場合、umaskは002になります
#それ以外の場合、umaskは022になります

·カーネルレベルで、ファイルの初期権限は666  
·カーネルレベルで、フォルダの初期権限は777
·umaskコマンドでデフォルトの権限を制御し、一時的に有効です

umaskが002の場合、新しく作成されるファイルのデフォルト権限は664、新しく作成されるフォルダの権限は775になります
umaskが022の場合、新しく作成されるファイルのデフォルト権限は644、新しく作成されるフォルダの権限は755になります

# 注:666 - umask
	 777 - umask
============================================================================================
例:id -gnで現在のユーザーのグループ名を取得; id -unで現在のユーザー名を取得
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# /usr/bin/id -gn
root
[root@sanchuang-linux tmp]# /usr/bin/id -un
root
[root@sanchuang-linux tmp]# id -gn			# 注:現在のユーザーのグループ名
root
[root@sanchuang-linux tmp]# id -un			# 注:現在のユーザーのユーザー名
root
============================================================================================
例:2つの文字列が等しいかどうかを判断するには、1つの等号を使用できます
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# [ "a" = "b" ] || echo "ok"		# 注:文字列が同じかどうかを判断するには1つの等号を使用できます
ok															# 注:条件が偽の場合、okを出力します
[root@sanchuang-linux tmp]# [ "a" = "b" ] && echo "ok"		# 注:条件が真の場合、okを出力します
[root@sanchuang-linux tmp]# [ "a" = "a" ] && echo "ok"
ok
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# su - sanchuang	# 注:ユーザー名とグループ名が同じ場合
[sanchuang@sanchuang-linux ~]$ umask 
0002									# 注:ユーザー名とグループ名が同じ場合、umaskは002
[sanchuang@sanchuang-linux ~]$ id -gn	# 注:最初の0は粘着ビット、002はumask
sanchuang
[sanchuang@sanchuang-linux ~]$ id -un
sanchuang

[root@localhost ~]# su - b1				# 注:ユーザー名とグループ名が異なる場合
[b1@localhost ~]$ id
uid=1204(b1) gid=1001(cali) 组=1001(cali),200(tech)
[b1@localhost ~]$ id -un
b1
[b1@localhost ~]$ id -gn
cali
[b1@localhost ~]$ umask 				# 注:ユーザー名とグループ名が異なる場合、umaskは022
0022
[b1@localhost ~]$ touch gg
[b1@localhost ~]$ ls -ld gg				# 注:新しく作成されたファイルの権限は644です
-rw-r--r--. 1 b1 cali 0 11月  8 16:27 gg
[b1@localhost ~]$ umask 422				# 注:umaskを一時的に422に設定します(一時的な変更)
[b1@localhost ~]$ mkdir test			# 注:新しく作成されたフォルダの権限は355(777-umask)
[b1@localhost ~]$ ls -ld test/
d-wxr-xr-x. 2 b1 cali 6 11月  8 16:49 test/	# 注:ディレクトリの権限355 書き込み実行 読み取り実行 読み取り実行
============================================================================================
例:umaskを一時的に設定
--------------------------------------------------------------------------------------------
[root@sanchuang-linux tmp]# umask 422			# 注:umaskを一時的に変更
[root@sanchuang-linux tmp]# touch hh
[root@sanchuang-linux tmp]# ls -ld hh
--w-r--r-- 1 root root 0 11月  7 16:02 hh	   # 注:ファイルの権限は244 書き込み読み取り読み取り
============================================================================================
例:umask -Sで現在のファイルのデフォルト権限を確認
[sanchuang9@sanchuang-linux ~]$ umask -S		# 注:現在のファイルのデフォルト権限を確認
u=rwx,g=rwx,o=rx		
============================================================================================
例:特定のユーザーのumaskを変更したい場合、永続的に変更
--------------------------------------------------------------------------------------------
#注:ホームディレクトリの.bashrcにumaskの設定を追加します		永続的な変更
#注:/etc/profile,/etc/bashrcのシステム設定は基本的に変更しないでください(グローバル設定を変更しないでください)
[sanchuang9@sanchuang-linux ~]$ vim /home/sanchuang9/.bashrc
umask=002
[sanchuang9@sanchuang-linux ~]$ exit
ログアウト
[root@sanchuang-linux tmp]# su - sanchuang9
最終ログイン:土 11月  7 16:07:40 CST 2020pts/0
[sanchuang9@sanchuang-linux ~]$ umask		# 注:umaskが002に変わりました
0002
[sanchuang9@sanchuang-linux ~]$ bash		# 注:新しいbashに入るとumaskも002になります
[sanchuang9@sanchuang-linux ~]$ umask
0002

六。練習#

6.1 新しいフォルダ /pem を作成し、/etc/hosts ファイルを pem ディレクトリにコピーします#

1、新しいフォルダ/pemを作成し、/etc/hostsファイルをpemディレクトリにコピーします
[root@sanchuang-linux pem]# mkdir /pem
[root@sanchuang-linux pem]# cp /etc/hosts /pem

6.2 hosts ファイルの権限を変更し、所有者に読み書き実行権限を与え、グループに読み書き実行権限を与え、他のユーザーには何の権限も与えない#

2、hostsファイルの権限を変更し、所有者に読み書き実行権限を与え、グループに読み書き実行権限を与え、他のユーザーには何の権限も与えない
[root@sanchuang-linux pem]# chmod 750 /pem/hosts 
[root@sanchuang-linux pem]# ls -al /pem/hosts 
-rwxr-x--- 1 root root 158 11月  7 16:20 /pem/hosts

6.3 新しい /pem2 ディレクトリを作成し、すべてのユーザーに読み書き実行権限を与える#

3、新しい/pem2ディレクトリを作成し、すべてのユーザーに読み書き実行権限を与える
[root@sanchuang-linux pem]# mkdir /pem2
[root@sanchuang-linux pem]# chmod 777 /pem2
[root@sanchuang-linux pem]# chmod 777 /pem2 -R		# 注:下のすべてのサブファイルも含めて

6.4 /pem2 ディレクトリの権限を変更し、所有者に読み書き実行権限を与え、他のすべてのユーザーには権限を与えない#

4、/pem2ディレクトリの権限を変更し、所有者に読み書き実行権限を与え、他のすべてのユーザーには権限を与えない
[root@sanchuang-linux pem]# chmod 700 /pem2 

6.5 /pem2 のすべてのユーザーに何の権限も与えない#

5、/pem2のすべてのユーザーに何の権限も与えない
[root@sanchuang-linux pem]# chmod 000 /pem2 

6.6 /etc/passwd と /etc/shadow ファイルを /pem ディレクトリにコピーし、コピー後の権限が一致するかどうかを確認し、権限を一致させる方法#

6、/etc/passwdと/etc/shadowファイルを/pemディレクトリにコピーし、コピー後の権限が一致するかどうかを確認し、権限を一致させる方法
[root@sanchuang-linux pem]# cp /etc/{passwd,shadow} /pem
[root@sanchuang-linux pem]# ls -al /pem
--w-r--r--   1 root root 3964 11月  7 16:23 passwd
----------   1 root root 4201 11月  7 16:23 shadow

6.7 cp -a でファイルの属性(権限、時間、ユーザー、グループ)を保持する#

cp -aでファイルの属性(権限、時間、ユーザー、グループ)を保持する

[root@sanchuang-linux pem]# cp /home/sanchuang9/.viminfo /tmp/viminfo	# 注:cpで所有者、属グループが変更されます
[root@sanchuang-linux pem]# ls -al /tmp/viminfo 
--w------- 1 root root 1622 11月  7 16:30 /tmp/viminfo
[root@sanchuang-linux pem]# ls -al /tmp/viminfo 						# 注:cp -aオプションで、所有者、属グループ、権限、作成時間は変更されません
-rw------- 1 sanchuang9 sanchuang9 1622 11月  7 16:11 /tmp/viminfo

七。ファイルまたはディレクトリの隠し属性#

chattr コマンド:ファイルの隠し属性を設定

  • 形式:chattr [+-=] [ai] ファイルまたはディレクトリ # 注:+、-、= はそれぞれ追加、削除、設定パラメータを示します

一般的なコマンドオプション

  • -R:再帰的に変更
  • -a:ファイル内容を追加できますが、変更や削除はできません
  • -i:ファイルをロックして保護します

lsattr コマンド:ファイルの隠し属性を確認

  • 形式:lsattr [Rda] ファイルまたはディレクトリ

一般的なコマンドオプション

  • -R:再帰的に変更
  • -d:ディレクトリを確認

#注:普通のユーザーはファイルの隠し属性を設定できません;root ユーザーのみが設定できます

例1:chattr +i hostsでファイルをロックして保護
# 注:rootユーザーでも変更できません
--------------------------------------------------------------------------------------------
#注:ファイルを変更できません(削除、追加、移動できません)
[root@sanchuang-linux pem]# chattr +i hosts		# 注:ファイルをロックして保護します;変更できなくなります
[root@sanchuang-linux pem]# mv hosts{,.bak}		# 注:移動できません(rootユーザーでも)
mv: 'hosts'を'hosts.bak'に移動できません: 許可されていない操作	
[root@sanchuang-linux pem]# ls -al hosts 		# 注:ls -alコマンドで隠し属性を確認できません
-rwxr-x--- 1 root root 158 11月  7 16:20 hosts
[root@sanchuang-linux pem]# lsattr hosts		# 注:lsattrでファイルの隠し属性iを確認できます
----i--------------- hosts						# 注:i属性が追加されました
[root@sanchuang-linux pem]# chattr -i hosts		# 注:属性を削除してロックを解除します
[root@sanchuang-linux pem]# lsattr hosts
-------------------- hosts						# 注:i隠し属性がなくなりました
#注:削除、追加、移動できません(rootユーザーでも)
============================================================================================
例2:chattr +a hostsでファイル内容を追加できますが、変更や削除はできません
# 注:リダイレクトを使用してファイル内容を追加できますが、変更や削除はできません
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# chattr +a hosts		# 注:ファイル内容を追加できますが、変更や削除はできません
[root@sanchuang-linux pem]# lsattr hosts
-----a-------------- hosts						# 注:a属性が追加されました
[root@sanchuang-linux pem]# vim hosts 			# 注:変更できません
[root@sanchuang-linux pem]# echo "aaaa" >> hosts 	# 注:追加できます
[root@sanchuang-linux pem]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
aaaa
[root@sanchuang-linux pem]# rm -rf hosts 			# 注:削除できません
rm: 'hosts'を削除できません: 許可されていない操作
#注:変更できず、追加のみ可能で、削除できません
#注:時にはどんな状況でも変更させたくない場合、+a属性を使用します
============================================================================================
例3:chattr +i /etc/passwd
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# chattr +i /etc/passwd		# 注:設定後はユーザーを作成できなくなります
[root@sanchuang-linux pem]# lsattr /etc/passwd			# 注:隠し属性を確認します
----i--------------- /etc/passwd						# 注:隠し属性i
[root@sanchuang-linux pem]# useradd sanchuang21			# 注:どんなユーザーでも、隠し属性が設定されると、基本的に無理です
useradd:/etc/passwdを開けません
[root@sanchuang-linux pem]# chattr -i /etc/passwd		# 注:ロックを解除します
============================================================================================
例4:普通のユーザーはファイルの隠し属性を設定できません
--------------------------------------------------------------------------------------------
[root@localhost ~]# su - sanchuang
[sanchuang@localhost ~]$ touch aa
[sanchuang@sanchuang ~]$ chattr +i aa					# 注:普通のユーザーはファイルの隠し属性を設定できません
chattr: aaにフラグを設定中に許可されていない操作

八。ファイルの通常の権限#

image-20220817041614445

#注:通常ファイルの権限は読み書き実行です
[root@sanchuang-linux pem]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 11月  7 16:30 /tmp		# 注:t ファイルの特殊権限

九。ファイルの特別な権限#

#注:set 位権限設定

image-20220817041733623

SET 位権限

主な用途:

  • 実行可能(x 権限がある)ファイルに設定され、権限文字は “s” # 注:以前の x 位が s 位に変わります
  • 他のユーザーがそのファイルを実行すると、所有者または属グループユーザーの権限を持ちます

SET 位権限の種類

  • SUID:所有者ユーザーに SET 位権限を追加します
  • SGID:属グループ内のユーザーに SET 位権限を追加します

# 注:実行可能ファイルに使用されます
# 注:suid sgid はファイルに関連しています

例:/bin/passwd
--------------------------------------------------------------------------------------------
[root@localhost ~]# which passwd
/bin/passwd
[root@localhost ~]# ls -ld /bin/passwd 
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /bin/passwd
#注:普通ユーザーはrootユーザーの権限で、間接的にshadowファイルのパスワードを更新しました
[root@localhost ~]# su - sanchuang
[sanchuang@localhost ~]$ passwd sanchuang				# 注:パスワードを変更できません。他の権限が不足しています
passwd:指定されたユーザー名を変更できるのはrootユーザーのみです。

#注:s位 この権限は基本的に付与されず、必ず実行可能ファイルの下でのみ有効です
#注:この権限設定は全員に与えられ、特定のユーザーに精密に設定することはできません

例:SET位権限設定
--------------------------------------------------------------------------------------------
[root@sanchuang-linux pem]# ls -ld /pem
d-wxr-xr-x 2 root root 47 11月  7 16:42 /pem				# 注:rootユーザーのみが書き込み権限を持っています
#注:/pemに普通ユーザーが作成、書き込み権限を持たせるには?
1. /pemの権限を777に設定
2. mkdirのSUID権限を設定
[root@sanchuang-linux sbin]# which mkdir
/usr/bin/mkdir
[root@sanchuang-linux sbin]# ls -ld /usr/bin/mkdir 		
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /usr/bin/mkdir	# 注:s属性が設定されていません
[root@sanchuang-linux sbin]# chmod u+s /bin/mkdir	 	# 注:普通ユーザーがmkdirを実行する時にroot(所有者)の権限で実行されるようにします
[root@sanchuang-linux sbin]# ls -ld /usr/bin/mkdir 		# 注:s位に変わりました
-rwsr-xr-x. 1 root root 195192 4月  10 2020 /usr/bin/mkdir
[root@sanchuang-linux sbin]# su - sanchuang9
最終ログイン:土 11月  7 16:09:48 CST 2020pts/0
[sanchuang9@sanchuang-linux pem]$ cd /pem
[sanchuang9@sanchuang-linux pem]$ ls
hosts  passwd  shadow
[sanchuang9@sanchuang-linux pem]$ mkdir aa 				# 注:普通ユーザーが書き込み権限を持ちました
[sanchuang9@sanchuang-linux pem]$ ls -ld /pem
d-wxr-xr-x 3 root root 57 11月  7 16:59 /pem
[sanchuang9@sanchuang-linux pem]$ touch dd				# 注:touchにはこの権限がありません
touch: 'dd'を作成できません: 権限が不足しています
[sanchuang9@sanchuang-linux pem]$ exit
ログアウト
[root@sanchuang-linux sbin]# chmod u-s /bin/mkdir
[root@sanchuang-linux sbin]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
# 注:s位は基本的に付与されません
# 注:s位は軽々しく付与しないでください、ユーザーに影響を与えます

十。粘着ビット権限(Sticky)#

粘着ビット権限(Sticky)

主な用途:

  • 公共ディレクトリ(例えば、権限が 777 の)に設定され、権限文字は “t” # 注:t 粘着ビットマーク文字
  • ユーザーはそのディレクトリ内の他のユーザーのファイルを削除できません

# 注:一般的にファイルフォルダに作用します
# 注:粘着ビットはフォルダに対して作用します

例1
--------------------------------------------------------------------------------------------
[root@sanchuang-linux sbin]# ls -ld /tmp
drwxrwxrwt. 12 root root 4096 11月  7 16:30 /tmp	# 注:/tmpディレクトリはすべてのユーザーに読み書き実行権限があります
#注:粘着ビット権限により、ユーザーは/tmpディレクトリ内で自分のファイルのみを作成、削除できます
#注:sanchuang10ユーザーはsanchuangユーザーが作成したファイルを削除できません
==============================================================================================================
例2:chmod 777 /pem 普通ユーザーは/pemのこのレベルのディレクトリ内のファイルやフォルダ、サブファイルを操作できます
# 注:777権限では、異なるユーザーが互いにファイルを削除できます
# 注:粘着ビットを設定すると、自分が作成したファイルのみを削除できます
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# chmod 777 /pem				# 注:/pemフォルダの権限を777に変更します
[root@sanchuang-linux ~]# ls -ld /pem					# 注:すべてのユーザーが/pemに対して読み書き実行権限を持っています。作成、削除も含まれます
drwxrwxrwx 3 root root 74 11月  7 17:10 /pem
[root@sanchuang-linux ~]# su - sanchuang9				# 注:普通ユーザーが作成権限を持っています
最終ログイン:土 11月  7 17:07:17 CST 2020pts/2
[sanchuang9@sanchuang-linux ~]$ touch /pem/sanchuang9	# 注:普通ユーザーが作成権限を持っています
[root@sanchuang-linux ~]# su - sanchuang				# 注:普通ユーザーが削除権限を持っています
[sanchuang@sanchuang-linux ~]$ rm -rf /pem/sanchuang9	# 注:普通ユーザーが削除権限を持っています
#注:ユーザーは他のユーザーが作成したファイルを削除できます
==============================================================================================================
例3:粘着ビット t
# 注:粘着ビットを設定すると、自分が作成したファイルのみを削除できます
[sanchuang9@sanchuang-linux tmp]$ ls -ld /tmp
drwxrwxrwt. 13 root root 4096 11月  7 17:07 /tmp			# 注:/tmpディレクトリに1つの粘着ビットが設定されています
[sanchuang9@sanchuang-linux ~]$ touch /tmp/sanchuang9
[sanchuang9@sanchuang-linux ~]$ exit
[root@sanchuang-linux ~]# su - sanchuang
最終ログイン:日 11月  8 19:05:55 CST 2020pts/3
[sanchuang9@sanchuang-linux ~]$ rm -rf /tmp/sanchuang9	# 注:粘着ビットが設定されているため
rm: '/tmp/sanchuang9'を削除できません: 許可されていない操作				# 注:ユーザーは/tmpディレクトリ内で自分のファイルのみを作成、削除できます
#注:粘着ビットの作用
#注:·公共ディレクトリ(例えば、権限が777の)に設定され、権限文字は“t”
#注:·ユーザーはそのディレクトリ内の他のユーザーのファイルを削除できません
#注:一般的にファイルフォルダに作用します

十一. SET 位、粘着ビット権限の設定#

SET 位、粘着ビット権限の設定

権限文字を使用

  • chmod ug±s 実行可能ファイル... # 注:set 位を設定します
  • chmod o±t ディレクトリ名... # 注:粘着ビットを設定します

権限数字を使用

  • chmod mnnn 実行可能ファイル...
  • m が 4 の場合、SUID に対応し、2 は SGID に、1 は粘着ビットに対応し、重ねて設定できます # 注:m が 4 の場合、2 は set 位

--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# ls -ld /tmp
drwxrwxrwt. 13 root root 4096 11月  7 17:07 /tmp		# 注:/tmpディレクトリに粘着ビットが設定され、権限は1777です
#注:/tmpディレクトリに粘着ビットが設定され、最初のビットは1です
============================================================================================
例:粘着ビットを設定
--------------------------------------------------------------------------------------------
[root@sanchuang-linux ~]# chmod 1777 /pem
[root@sanchuang-linux ~]# ls -ld /pem
drwxrwxrwt 3 root root 74 11月  7 17:10 /pem			# 注:粘着ビットtがxの位置に変わりました
#注:通常の場合、粘着ビットやset位を使用する必要はなく、3桁の数字だけで十分です
-----------------------------------------------------------------
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
[root@sanchuang-linux ~]# chmod 4755 /bin/mkdir		# 注:SET位SUID権限を設定します
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwsr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir
[root@sanchuang-linux ~]# chmod 755 /bin/mkdir		# 注:元に戻します
[root@sanchuang-linux ~]# ls -ld /bin/mkdir 
-rwxr-xr-x. 1 root root 195192 4月  10 2020 /bin/mkdir

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。