Linux——ファイルの権限管理、aclリスト、特殊権限ビット、練習2


一、ファイル権限
1.ファイル属性の表示
ls-l file、以下の出力がポップアップします
- rw- r-- r-- . 1 root root 0 Dec 31 09:55 file 
1      2        3  4     5  6      7        8    

1:ファイルのタイプを表す-:一般ファイルd:ディレクトリc:文字デバイスs:ネストファイルp:パイプb:ブロックデバイス
2:ファイルの読み書きを表す権限
rw-			 r--			 r--
     	       		       
  u			  g		          o	
r:     w:     x:    
4		   2		 1

例:chmod u+r file#がfileの所有者に読み取り権限を追加する例:
     		     	       		       
				r--			r--				r--
				4			4				4	
   chmod 745 file ,          ,           
				     	       		       
				rwx			r--				r-x
				7			4				5	

3:ファイルに対して:ファイルの内容がシステムに記録された回数(そのメモリを参照する時だけ増加する回数)を表すディレクトリに対して:サブディレクトリの個数(含む.…非表示ディレクトリ)を表す
4:ファイルの所有者5:ファイルの所属グループ6:あなたの内容の大きさを尋ねる7:ファイルが最後に修正された時間8:ファイルの名前
2.ファイル所有者と所属グループの変更
chown 		username 			file|dir       /      
chgrp		groupname			file|dir	   /      
chown	username.groupname		file|dir 	     
chown 	-R 	username			file|dir	(    )   /      ,    
chgrp 	-R 	groupname			file|dir	(    )   /

3.ファイルの一般権限
r=4ファイルにとって:ファイルの文字(内容)を表示できる(最高権限、読めないなら書けない)ディレクトリに対して開言:ディレクトリ内のファイルまたはディレクトリの情報を表示できるw=2ファイルに対して:ファイル内の文字を変更できる(削除変更)ディレクトリに対する:ディレクトリ内でx=1対のファイルを削除する:ファイルに記録されたプログラムとアクション対ディレクトリを実行することができる:ディレクトリに入ることができる(最高権限)
4.システムのデフォルト権限の設定
システムが新しいファイルまたはディレクトリを設定すると、自動的にいくつかの権限が削除され、安全設定方式がシステムの存在の観点から言えば、開放権力が大きいほど、システムの存在意義が高いシステムの安全の観点から言えば、開放権力が少ないほど、システムの安全性が高いため、システムが新しいファイルまたはディレクトリを設定すると、いくつかの権限が削除されます.ディレクトリは777です
umask(               )   	#         
umask xxx		#     ,            xxx,
				        ,    shell  

永久設定umask値
  :
vim /etc/bashrc     	# 70 
         umask
	       umask

vim /etc/profile        # 60 

vim /etc/bashrc
 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 71        umask 002 #     umask
 72     else
 73        umask 022  #     umask
 74     fi

vim /etc/profile
 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 60     umask 022
 61 else
 62     umask 022
 63 fi

 :         666/777-002
    664	    775
         666/777-022
    644	    755

       umask        ,  umask        ,   rwx   

     :root   
[root@desktop0 pub]# source /etc/bashrc 
[root@desktop0 pub]# source /etc/profile

           ,       

二、ファイルのアクセス制御(aclリスト)
1.acl定義
acl=access control特殊なユーザーが特殊なファイルに対して特殊な権限を持つことを指定します.現在のユーザーのほかに、一部のユーザーにいくつかの権限を与えることができます.ファイル/ディレクトリに権限リストがある場合(+番号の場合)、ls-lで権限を表示することはできません.getfaclで調べる権限しかありません.
[kisok@foundation0 ~]$ ls -dl /home/kisok
drwx--- + 44 kisok kisok 4096·······
	            acl      

  :   /+  ),
    ls -l     ,   getfacl     

[kiosk@foundation0 ~]$ getfacl /home/kiosk
getfacl: Removing leading '/' from absolute path names
# file: home/kiosk  ##  /     
# owner: kiosk	    ##d/f     
# group: kiosk	    ##d/f     
user::rwx	    ##      
user:qemu:--x	    ##acl   (    )   
group::---	    ##      
mask::--x	    ##    
other::---	    ##      


2.aclリストの設定
aclリストスイッチがオンの場合、このファイルには特殊なユーザーが緑で、特殊なユーザーが黒ではありません.
  acl  
setfacl -m u:student:rwx file  #  acl  ,       student ,
								     rwx
        -m:  
        -u:  
        -g: 
 getfacl file				   #      
[root@desktop0 mnt]# ll
total 4
-rw-rwxr--+ 1 root root 0 Dec 31 14:40 file
[root@desktop0 mnt]# getfacl file 
# file: file
# owner: root
# group: root
user::rw-
user:student:rwx
group::r--
mask::rwx
other::r--


3.aclリストのユーザーまたはグループの削除
setfacl -x u:student file
      student,  acl          ,  file       
[root@desktop0 mnt]# setfacl -x u:student file 
[root@desktop0 mnt]# ll
total 4
-rw-r--r--+ 1 root root 0 Dec 31 14:40 file

4.リストを閉じる
setfacl -b file		#acl  +   .
[root@desktop0 mnt]# setfacl -b file 
[root@desktop0 mnt]# ll
total 0
-rw-r--r--. 1 root root 0 Dec 31 14:40 file

5.aclのmaskを設定する
acl mask、maskは実際にユーザーに最大の権限を与えることができることを示すために使用されます
setfacl -m m:rw- file    # file mask   rw- 
  :[root@desktop0 mnt]# setfacl -m m:rw- file 
[root@desktop0 mnt]# getfacl  file 
# file: file
# owner: root
# group: root
user::r--
user:student:rwx		#effective:rw-
group::r--
mask::rw-
other::---
 #   effective:rw- ,                  rw-

注意:chmodでファイルの通常の権限を変更するとacl maskが破壊される可能性があります.
6.aclのデフォルト権限
rootに属するディレクトリに書き込み権限を持つ一般ユーザーが必要で、ディレクトリに新規作成されたサブディレクトリが一般ユーザーにも有効である場合は、aclデフォルト権限を設定します.デフォルト権限値は、ディレクトリに新規作成されたディレクトリまたはファイルに対して有効であり、ディレクトリ自体に対して無効であり、作成されたファイルおよびディレクトリページに対して無効です.
三、特殊権限ビット
1.suid=4アドベンチャービット
バイナリ実行可能ファイルファイル内に記録されたプログラムのみに対して生成されるプロセスの所有者は、ファイルの所有者とプロセスの開始者に関係ありません.
[root@desktop0 mnt]# chmod u+s /usr/bin/touch 
== [root@desktop0 mnt]# chmod 4755 /usr/bin/touch 
[root@desktop0 mnt]# ll /usr/bin/touch 
-rwsr-xr-x. 1 root root 62432 Jan 25  2014 /usr/bin/touch
[root@desktop0 mnt]# su - student
Last login: Mon Dec 31 16:23:23 CST 2018 on pts/0
[student@desktop0 ~]$ ll
total 0
-rw-------. 1 student student 0 Dec 31 16:23 file
[student@desktop0 ~]$ touch file2
[student@desktop0 ~]$ ll
total 0
-rw-------. 1 student student 0 Dec 31 16:23 file
-rw-------. 1 root    student 0 Dec 31 16:25 file



    :

chmod u+s file

suid=4

chmod 4xxx file

2.sgid=2強制ビット
≪ファイル|File|emdw≫:バイナリ実行可能ファイルのみに対して、バイナリ・ファイル・プログラムを実行するときにプログラムが生成するプロセスの属するグループは、ファイルのすべてのグループであり、プログラム・イニシエータ・グループのアイデンティティには関係ありません.
[root@desktop0 mnt]# chmod g+s /usr/bin/touch ^C
[root@desktop0 mnt]# chmod 2755 /usr/bin/touch 
[root@desktop0 mnt]# ll /usr/bin/touch 
-rwxr-sr-x. 1 root root 62432 Jan 25  2014 /usr/bin/touch
[root@desktop0 mnt]# su - student
Last login: Mon Dec 31 16:25:36 CST 2018 on pts/0
[student@desktop0 ~]$ ls
file  file2
[student@desktop0 ~]$ touch file3
[student@desktop0 ~]$ ll
total 0
-rw-------. 1 student student 0 Dec 31 16:23 file
-rw-------. 1 root    student 0 Dec 31 16:25 file2
-rw-------. 1 student root    0 Dec 31 16:43 file3

ディレクトリ:ディレクトリにsgid権限がある場合、ディレクトリに新規作成されたすべてのファイルのすべてのグループは、ファイル作成者が存在するグループとは無関係に、ディレクトリのすべてのグループに自動的に帰属します.
[root@desktop0 mnt]# chmod g+s /westos/
[root@desktop0 mnt]# ll -d /westos/
drwxrwsrwx. 3 root root 19 Dec 31 16:46 /westos/
[root@desktop0 mnt]# su - studnet
su: user studnet does not exist
[root@desktop0 mnt]# su - student
Last login: Mon Dec 31 16:45:59 CST 2018 on pts/0
[student@desktop0 ~]$ cd /westos/
[student@desktop0 westos]$ ls
stuent
[student@desktop0 westos]$ ll
total 0
drwx------. 2 student student 6 Dec 31 16:46 stuent
[student@desktop0 westos]$ touch ww
[student@desktop0 westos]$ ll
total 0
drwx------. 2 student student 6 Dec 31 16:46 stuent
-rw-------. 1 student root    0 Dec 31 16:47 ww
[student@desktop0 westos]$ mkdir ee
[student@desktop0 westos]$ ll
total 0
drwx--S---. 2 student root    6 Dec 31 16:47 ee
drwx------. 2 student student 6 Dec 31 16:46 stuent
-rw-------. 1 student root    0 Dec 31 16:47 ww

設定方法:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir

3.sticky=1##接着位
t=1権限:ディレクトリのみに対して、1つのディレクトリにt権限がある場合、ディレクトリ内のファイルはファイルの所有者によってのみ削除されます.
drwxrwxrwt. 2 root root 6 Dec 31 17:04 /pub/
[root@desktop0 mnt]# su - westos
Last login: Mon Dec 31 17:03:45 CST 2018 on pts/0
[westos@desktop0 ~]$ cd /pub/
[westos@desktop0 pub]$ touch westos
[westos@desktop0 pub]$ ll
total 0
-rw-------. 1 westos root 0 Dec 31 17:06 westos
[westos@desktop0 pub]$ su - student
Password: 
Last login: Mon Dec 31 17:03:26 CST 2018 on pts/0
[student@desktop0 ~]$ cd /pub/
[student@desktop0 pub]$ ls
westos
[student@desktop0 pub]$ rm -rf westos 
rm: cannot remove ‘westos’: Operation not permitted
[student@desktop0 pub]$ 


    :
chmod o+t direcotry
t=1
chmod	1777 direcotry

練習2:今回の練習の主なコマンドはgroupadduseraddchgrp権限下放umaskの設定1です.新しいユーザーグループ、shengchan、caiwu、jishu 2.新規ユーザの要求は以下の通りである:1)tomはshengchanグループの追加ユーザである2)harryはcaiwuグループの追加ユーザである3)leoはjishuグループの追加ユーザである4)新規adminユーザであり、このユーザは上述の3つの部門3に属さない.新規ディレクトリの要件は、1)/pubディレクトリがパブリックストレージディレクトリであり、すべてのユーザーに対して読み取り、書き込みが可能である.実行するがユーザは自分のファイルしか削除できない2)/scディレクトリは生産部格納ディレクトリで生産部人員に対してのみ書き込み可能であり、生産部人員が作成したファイルはすべてshengchanグループに自動的に帰属する3)/cwディレクトリは財務部格納ディレクトリで財務部人員に対してのみ書き込み可能であり、財務部人員が作成したファイルはcaiwuグループに自動的に帰属する4)adminユーザはtouchツールで/scディレクトリおよび/cwディレクトリに任意にファイルを作成することができるが、ファイルを削除することはできない5)adminユーザは/scおよび/cwディレクトリに対して読み書き実行することができる4.一般ユーザーの新規ファイル作成権限を「r–r-----」5に設定.adminユーザーを設定するとsudoで自由に新しいユーザーを作成できます
1. 
          
groupadd -g ##    
groupdel     ##   
[root@localhost Desktop]# groupadd shengchan 
[root@localhost Desktop]#groupadd caiwu 
[root@localhost Desktop]# groupadd jishu
2.
     
useradd         
-u ##    uid 
-g ##         ,          
-G ##     ,        
-c ##     
-d ##      
-s ##      shell,/etc/shells        shell   
[root@localhost Desktop]#useradd -G shengchan tom 
[root@localhost Desktop]#useradd -G caiwu harry
[root@localhost Desktop]#useradd -G jishu leo
[root@localhost Desktop]#useradd admin
3.
1: t=1,       t  ,                 
[root@localhost Desktop]# mkdir /pub 
[root@localhost Desktop]#chmod 1777 /pub/
2=2
[root@localhost Desktop]#mkdir /sc 
[root@localhost Desktop]# chgrp shengchan /sc 
[root@localhost Desktop]# chmod 2770 /sc 
3=2
[root@localhost Desktop]# mkdir /cw 
[root@localhost Desktop]#chgrp caiwu /cw 
[root@localhost Desktop]# chmod 2770 /cw
4)“ admin   /  acl  ,  admin             rwx  ,    admin       , touch       ,        ,    root      touch     ,         ”
setfacl -m u:admin:rwx /sc	# admin    /sc,  touch  
setfacl -m u:admin:rwx /cw  # admin    /cw,  touch  
chmod 4755 /usr/bin/touch	# touch       ,
							            root
chmod 1770 /sc				#/sc     ,         
chmod 1770 /cw				#/cw     ,         
4.  Umask
vim /etc/bashrc ##shell

 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 71        umask 440 ##    umask

 72     else

 73        umask 077    ##    umask                                                                      

 74     fi

 

vim /etc/profile ##  

 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 60     umask 440 ##    umask

 61 else

 62     umask 077       ##    umask                                                                                         

 63 fi
      :root   
[root@desktop0 pub]# source /etc/bashrc 
[root@desktop0 pub]# source /etc/profile
5.    
[root@foundation Desktop]#visudo

--->admin localhost=(root) NOPASSWD:/usr/sbin/useradd--->"Esc"--->:wq

[root@foundation Desktop]#su - admin

[admin@foundation Desktop]$sudo useradd rr