1. 程式人生 > >用戶,組和權限管理

用戶,組和權限管理

uos xfs 查看 無法創建 切換用戶 不可 文件系統 tune2fs 文件權限

用戶,組和權限管理

概述:在Linux中由於可以實現多用戶和多任務的管理,所以在Linux中用戶和組與文件的權限關系顯得格外重要。如果出現混亂,那麽在用戶使用時會給系統造成很多不穩定性的因素。這也是linux系統相對於其它操作系統更安全的原因之一。

linux系統中用戶分為:

 系統用戶:
    centos6上的UID(1-499)
    centos7上的UID(1-999)
    註:系統用戶無法登陸到系統之中
登錄用戶
    centos6上的UID(500+)
    centos7上的UID(1000+)待
    (通過交互式方式進行登錄)
    註:只有管理員有創建用戶的權限,普通用戶無法創建用戶

配置文件:
    /etc/passwd中存放著用戶的賬號信息,配置文件中用:號隔開了七個字段,其中的每一
    個
    字段都代表不同的含義
    如:root:x:0:0:root:/root:/bin/bash
        1:root:標識用戶名
        2:x:用戶密碼的占位符
        3:0:用戶的UID
        4:0:用戶的GID
        5:root:用戶的註釋信息
        6:/root:用戶的家目錄所在的位置
        7:/bin/bash:用戶所使用的shell
    /etc/shadow中存放著用戶的賬號密碼的信息,配置文件也用:號分割成了好幾段,
    每個字段同樣有不同的含義
    如:root:$6$WPjpqSwxMbi2LSA//5M2Q0:17900:0:99999:7:::
        1:存放著用戶的用戶名
        2:存放著用戶用來加密的密碼,默認是用sum512算法進行加密
        3:最近更動密碼的日期,默認是從1970年到現在的天數
        4:密碼最短使用時間,代表在這個時間之內,不允許更改用戶密碼。默認是0,代指隨時
        可以更改用戶密碼
        5:密碼需要重新變更的天數,即密碼的最長使用時間
        6:密碼到期前的警告時間
        7:密碼已經過期了之後,用戶可以登錄的時間,如果這個時候還不改密碼,那麽過了時
        間之後,該用戶就無法登陸系統
        8:記錄用戶密碼的實效時間
    註:用戶密碼的加密使用的是單向加密的算法,單向機密的特點是無論多長的密碼串通過
    加密之後都會生成固定長度的密文,而且即使相同的密碼生成的密文也會有細微的差別。
    為了提高機密性,單向加密的密碼,即使是簡單的改變其中的一個字符,加密之後的密
    文也會千差萬別,這個稱之為雪崩效應。單向加密的算法分別包括:
        1:md5
        2:sha128
        3:sha224
        4:sha256
        5:sha384
        6:sha512

相關命令:
    1,useradd(添加用戶)
    2,userdel(刪除用戶)
    3,usermod(改用戶的相關屬性)
    4,su(切換用戶)
        註:用su切換用戶時中間要加上-號,將切換的用戶初始化。當管理員切換到普通用戶時
        不需要密碼,普通用戶之間切換時需要用戶密碼
    5,getent(看用戶的/etc/passwd的相關屬性)
    6,id(查看用戶的用戶組)

linux系統中用戶組分為:

系統組:
    centos6上的GID(1-499)
    centos7上的GID(1-999)
普通組:
    centos6上的GID(500+)
    centos7上的GID(1000+)

作用:每個用戶必須有一個主組,在創建用戶時如果不指定,那麽系統會默認創建一個和
用戶名相同的組,做為這個用戶的主組
在創建用戶時還可以指定用戶的附加組,附加組可以是一個或者多個。

配置文件:
    /etc/group中存放著用戶組的相關信息,其中每個用戶組也分為若幹段,每段代表著不同
    的含義
    如:user9:x:511:user10
        1:組的名稱
        2:組密碼的占位符
        3:組的GID號
        4:以該組為附加組的用戶
    /etc/gshadow中存放著用戶的組密碼,格式和用戶密碼的屬性差不多
    如:gentoo:$6$bAR22/OrVWl/om$t2JQeQkuOSncUr2uqrLu3IrU***3loryJI9626d8C4ijz.Z.ZkQjZg0::

相關命令:
    1,groupadd(添加用戶的用戶組)
    2,groupdel(刪除用戶系統中的用戶組)
    3,groupmod(修改組的相關屬性)
    4,gpasswd(給組添加密碼)
    5,groupmems(更改和查看組成員)

linux中文件的基本權限:

在linux中可以通過ll命令看到文件以及目錄的權限信息,其中第一個字段就包含著這個文
件或目錄的權限,第二個字段是此文件的屬主以及屬組
權限的分類:
    r:讀權限,對應的二進制是4,標識用戶可以讀取文件中的內容
    w:寫權限,對應的二進制是2,標識用戶可以在文件中增添查改內容
    x:執行權限,對應的二進制是1,標識該文件可以執行。如果是目錄,則標識該目錄可
    以進入其中。
註:這三個權限結合成一組,每三組標識著文件以及目錄的基本權限,其中第一組代表著
文件的屬主,第二組代表文件的屬組,第三組其他人的權限

文件或目錄的屬主和屬組:
    在linux系統中每個文件或目錄都會有屬主和屬組,這是基本權限的一個重要組成部分

目錄和文件權限的異同點:
    1,執行權限:
        文件:可執行此文件
        目錄:可進入此目錄之中,但是如果沒有讀權限,則看不到目錄中的文件
    2,寫權限:
        文件:可以在文件中增刪查改,如果只有寫權限,那麽則無法看到文件中的內容
        目錄:可以刪除該目錄中的文件,如果只有寫權限,那麽需要事先知道目錄中有
        什麽內容,才可以進行增刪查改等進一步操作
    3,讀權限
        文件:可以閱讀此文件的內容
        目錄:可以看到目錄中有多少文件
    4,刪除目錄內的文件
        即使對目錄內的文件沒有任何權限,只要對目錄有寫權限,就可以刪除目錄內的文件

如:-rw-r--r--. 1 root root 986 1月  22 14:59 /etc/fstab
    1;文件的權限是644
    2:文件的屬主是root,可以讀寫此文件
    3:文件的屬組是root,可以讀此文件
    4:其他人權限,僅可讀取此文件

相關命令:
    1,chmod(該文件的權限)
        (1)賦權表示法
        (2)八進制表示法
        (3)引用權限表示法
    2,chown(改文件的屬主和屬組)
    3,chgrp(該文件的屬組,由於上一條命令的存在,這條命令已經趕不上時代的存在)

默認權限:在系統中有普通用戶和管理員都有默認的權限掩碼(遮照碼),在創建文件或目錄是會默認與系統中的權限掩碼相減

管理員的umask:022
普通用戶的umask:002

文件:默認的是666,如果減的權限中有執行,那麽會在減的結果中加1
目錄:默認的是777

配置文件:
    在/etc/profile中定義的有umask的配置文件
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi

Linux文件系統上的特殊權限:

作用:在使用linux中基礎權限有時會不滿足系統中的使用,要加入一些特殊權限進行補足,即SUID, SGID, Sticky

SUID/SGID:該權限的權限標識位是s,當用戶在執行此文件時,將使自己的身份臨時切
換成文件的屬主或屬組。前提當給用戶賦予SUID/SGID權限時,該文件的屬主和屬組必
須要有執行權限,否則權限標識位會顯示成S

賦權方法:
    1,chmod u+s file , chmod 4700 file
    2,chmod g+s file , chmod 2700 file

Sticky:該權限的權限標識位是t,具有寫權限的目錄通常用戶可以刪除該目錄中的任何
文件,在目錄中加入Sticky權限,可使對該目錄的中的內容刪改權限僅有root可使用

賦權方法:
    1,chmod o+t directory , chmod o-t directory

linux中文件的特殊屬性即不可改變位權限:

作用:
    目錄:
        a:只允許在目錄中建立和修改文件,但是不允許刪除
        i:只能修改目錄下文件的數據,卻不能執行刪除和新建文件
    文件:
        a:可對文件進行添加,不可刪除
        i:不可對文件進行任何操作

賦權方法:
    chatter +i file/directory
    chatter +a file/directory
查看方法:
    lsatter file/directory

ACL權限:

作用:可以對目錄或文件進行靈活的權限管理,讓除了文件的屬主,屬組和其它人,可以
對更多的用戶設置權限。

ACL權限的生效順序:所有者,自定義用戶,自定義組,其他人 

查看磁盤的ACL權限:
    tune2fs -l /dev/sda1
設置磁盤的ACL權限
    tune2fs -o acl /dev/sda1
    mount -o remount,acl /dev/sda1
註:在centos7中,無論是xfs還是ext4的系統都會默認加入ACL權限,之前的版本需要
手動添加ACL權限

賦權方法:
    1,給單個文件和目錄設置:setfacl -m u:admin:rwx file/directory
    2,給目錄進行遞歸設置:setfacl -Rm u:admin:rwx file/directory
    3,給目錄設置默認的ACL權限:setfacl -m d:u:rwx file/directory
    4,刪除ACL權限的方法 setfacl -x admin file/directory
註:
    1,給文件重新賦予ACL權限的,要用選項--set
    2,ACL中的mask是限制這個文件和目錄能設置的最高的ACL權限,在設置的過程中,如果
    出現超過mask的權限,系統會將mask權限和設置的權限相與,得到的最終結果才是這個
    用戶對此目錄或文件的最終權限
查看方法:getfacl file/dirctory

備份和恢復ACL權限:文件中cp和mv命令都默認支持保留ACL權限,但是tar命令在打包
的同時,並不會保留文件中的ACL權限
    1,getfacl -R /tmp/dir1 > acl.txt(把ACL權限保存到文件中)
    2,setfacl -R -b /tmp/dir1(遞歸刪除目錄中的ACL權限)
    3,setfacl -R  --set-file=acl.txt /tmp/dir1 (重新給遞歸給目錄賦予ACL權限) 
    4,setfacl --restore acl.txt(給文件恢復備份的acl權限) 

用戶,組和權限管理