Linux用戶及權限管理

目錄:linux

-、linux用戶及組的管理算法

1.用戶和組的基本概念docker

1.1用戶類別及用戶標示shell

1.2組類別及組標識centos

1.3用戶認證信息及加密算法安全


2.用戶信息及用戶密碼相關文件app

2.1用戶的信息庫文件/etc/passwdless

2.2用戶的密碼庫文件/etc/shadowide


3.組信息及組密碼相關文件工具

3.1組的信息庫文件/etc/group

3.2組的密碼庫文件/etc/gshadow


4.用戶及組的相關管理命令

4.1用戶管理命令

4.2組管理命令

4.3密碼管理及其餘相關命令


2、linux文件權限管理

1.文件權限模型

1.1進程安全上下文及文件權限的表示

1.2文件和目錄的權限狀態


2.文件權限狀態及相關管理命令

2.1文件的八進制權限表示法

2.2權限管理命令chmod


3.文件從屬關係及相關管理命令

3.1屬主管理命令chown

3.2屬組管理命令chgrp


4.文件umask的特性及管理

4.1umask的做用

4.2umask的管理


linux用戶及組的管理:


1.用戶和組的基本概念


1.1用戶類別及用戶標示

用戶類別:管理員和普通用戶

管理員,即root用戶,能夠對系統進行一切操做;


普通用戶:分爲系統用戶和登陸用戶。

系統用戶:是爲了可以讓那些後臺進程或服務類進程以非管理員的身份運行,一般須要爲此建立多個普通用戶;這類用戶從不用登陸系統;

登陸用戶:是須要操做計算機的交互式登陸的用戶


用戶標示:

即UID,用做用戶名稱的轉換,用0-65535之間的二進制數字表示,默認60000後的UID用做保留

管理員的UID永遠爲0


普通用戶的UID則爲1-65535

系統用戶的UID在centos6裏爲1-499,在centos7裏爲1-999

登陸用戶的UID在centos裏爲500-60000,centos7裏爲1000-60000


1.2組類別及組標示

用戶組按類別可分爲三類:


第一種類別:管理員組和普通用戶組,普通用戶組裏又分爲了系統用戶組和登陸用戶組。

第二種類別:基本組和附加組

第三種類別:私有組和公共組


組標示:

即GID,用做組名稱的轉換,用0-65535之間的數字表示,默認60000後的GID用做保留


管理員組的GID永遠爲0


普通用戶組的GID則爲1-65535

系統用戶組的GID在centos6裏爲1-499,在centos7裏爲1-999

登陸用戶組的GID在centos裏爲500-60000,centos7裏爲1000-60000


1.3用戶認證信息及加密算法


用戶認證:

用戶登陸計算機時,計算機經過對比事先存儲的數據與登陸時提供的信息是否一致;即驗證用戶的密碼。


密碼的使用策略應遵循如下幾點:

1、使用隨機密碼;

2、最短長度不要低於8位;

3、應該使用大寫字母、小寫字母、數字和標點符號四類字符中至少三類;

4、按期更換


密碼文件裏存儲的密碼是加密的,而對密碼進行加密的方式在centos裏主要是單向加密,算法主要有md五、sha一、sha22四、sha25六、sha38四、sha512


對於單項加密這種機制而言,爲了不多個用戶的密碼相同,在計算之時加salt(隨機數,每一個用戶的salt都不同);加入的salt不一樣,加密後的結果相去甚遠,這樣即便兩個用戶的密碼相同,在用戶看來兩個加密後的密文字符串也不同,避免用戶密碼泄露




2.用戶信息及用戶密碼相關文件

 2.1用戶的信息庫文件/etc/passwd

wKioL1ZtBpmAuH-EAAAicyAOoTc876.png


用戶的信息存儲在/etc/passwd文件中,以冒號分隔的每一個字段的含義爲

name:password:UID:GID:GECOS:directory:shell

name:       用戶名

password:密碼佔位符。實際密碼保存在/etc/shadow中

UID:      用戶的ID號

GID:       用戶所屬的基本組的ID號;

GECOS:    註釋信息。可選的,提供用戶的信息

directory:用戶的家目錄;用戶登陸系統後首先進入此目錄,root用戶默認是/root,普通用戶則是/home/用戶名

      shell:    用戶的默認shell,定義用戶登陸系統後使用的shell程序;


2.2用戶的密碼庫文件/etc/shadow


早期的unix系統的密碼保存在/etc/passwd中,但passwd文件對全部用戶可讀,存在安全隱患,因此如今的linux使用shadow保存加密後的密碼,/etc/shadow文件只有管理員才能夠訪問


wKioL1ZtB9qhYGi2AAAyEUIuEz0249.png


/etc/shadow文件中保存了用戶加密後的密碼及密碼的各類期限,以冒號爲分隔每段分別表示爲:


用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期限:非活動期限:過時期限:保留字段


用戶名:即用戶的名稱,對應/etc/passwd中的用戶名


加密的密碼:

此段若是表示爲*,則表示禁止此用戶登陸;

若是加密的字符串前有!表示用戶被禁用,新建立的用戶尚未密碼時就是禁用狀態,使用!!表示;

若是此段是空的,表示用戶沒有密碼,登陸時不須要密碼;

wKiom1ZtCDizF-MUAAAQxuEUUOc767.png加密後的密碼以$爲分隔符,分隔成三段

第一段:加密算法,1-6分別表示md五、sha一、sha22四、sha25六、sha38四、sha512

第二段:用戶的salt隨機數

第三段:用戶加密後的密碼


最近一次修改密碼的時間:linux計算日期是以1970年 1月1號開始計算到修改密碼那一刻的時間天數


最短使用期限:表示多久後才能夠改密碼。0表示能夠隨時更改


最長使用期限:更改後的密碼最長可使用多少天


警告期限:密碼在到達最常使用期限前,系統會發出警告,提醒用戶密碼將過時請更新密碼,默認是7,表示密碼在到達最常使用期限前的7天會發出警告


非活動期限(過時期限):若是過了警告期沒有更有更改密碼,則在非活動期限內,必須更改密碼後才能夠登陸進系統


過時期限:帳戶過時時間,帳戶過時時,用戶將不被容許登陸

注意,帳戶過時不一樣於密碼過時。帳戶過時時,用戶將不被容許登陸;密碼過時時,用戶將不被容許使用其密碼登陸。


保留字段:此字段保留做未來使用



3.組信息及組密碼相關文件


3.1組的信息庫文件/etc/group


組的信息存儲在/etc/group文件中

wKiom1ZtCI-QMF6xAAAaqEy0Ytw142.png

每行以冒號爲分隔符分割成4段,依次表示 爲

group_name:password:GID:user_list


group_name:用戶組的名稱

password:  組密碼佔位符,實際密碼保存在/etc/shadow中

GID:        組的id號

user_list: 用戶列表,注意:該組的用戶成員是:以此組爲附加組的用戶的用戶列表;而用戶的基本組在/etc/passwd中記錄


3.2組的密碼庫文件/etc/gshadow


/etc/gshadow 文件中保存了用戶組加密後的密碼

wKiom1ZtCNXA4WOxAAAVl_kbQy8843.png

分別爲:

組名:加密了的密碼:組管理員:組成員


4.用戶及組的相關管理命令


4.1用戶管理命令


useradd命令:建立用戶

useradd [選項] 登陸名

選項:

-u, --uid UID:指定UID;

-g, --gid GROUP:指定基本組ID,此組必須事先存在;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;

-c, --comment COMMENT:指明註釋信息;

-d, --home HOME_DIR:以指定的路徑做爲用戶的家目錄;經過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑若是事先存在,則不會爲用戶複製環境配置文件; 

-s, --shell SHELL:指定用戶的默認shell,可用的全部shell列表存儲在/etc/shells文件中;

-r, --system:建立系統用戶;

-M:不建立用戶主目錄,即便系統在/etc/login.defs 中的設置 (CREATE_HOME) 爲 yes

-f:用戶密碼過時後,帳戶被完全禁用以前的天數。0表示(到最長使用期限後)當即禁用,-1表示禁用這個功能(帳戶永不由用,改密碼後仍可使用)。

 

注意:建立用戶時的諸多默認設定配置文件爲/etc/login.defs    

 

 useradd-D:顯示建立用戶的默認配置;

 useradd -D 選項: 修改默認選項的值;修改的結果保存於/etc/default/useradd文件中;

wKiom1ZtCUWSnHGtAAAlRPCIvuA045.png


練習:將建立用戶時默認shell更改成/bin/csh

 wKioL1ZtCVyDj4rSAAAJk3M0cYY961.png


usermod命令:修改用戶屬性

usermod [選項] 登陸名

      -u,--uid UID:修改用戶的ID爲此處指定的新UID;

       -g, --gid GROUP:修改用戶所屬的基本組;注意,指定的組要事先存在

       -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組。注意:原來的附加組會被覆蓋;

       -a, --append:與-G一同使用(-a -G NEW_GROUP),用於爲用戶追加新的附加組;

wKioL1ZtCaOy3QHOAAAKdSc5wxQ724.png

      -c, --comment COMMENT:修改註釋信息;

       -d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;

       -m, --move-home:只能與-d選項一同使用(-m -d NEW_HOMEDIR),用於將原來的家目錄移動爲新的家目錄;原有的文件都會保留

wKioL1ZtCdrhos2UAAAXAtSGEKc707.png

     -l, --login NEW_LOGIN:修改用戶名;

      -s, --shell SHELL:修改用戶的默認shell;

      -L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串以前添加一個"!"禁止用戶登陸

      -U, --unlock:解鎖用戶的密碼

 

userdel命令:刪除用戶,默認不刪除用戶的家目錄

userdel [選項] 登陸

                -r:刪除用戶時一併刪除其家目錄

 

4.2組管理命令

 

groupadd命令:添加組

groupadd [選項] group_name     

    -g GID:指定GID;默認是上一個組的GID+1

    -r: 建立系統組

 

groupmod命令:修改組屬性

groupmod [選項] GROUP

    -g GID:修改GID

    -n new_name:修改組名


groupdel命令:刪除組

groupdel [選項] GROUP

 

練習1:

建立用戶gentoo,UID爲4001,基本組爲gentoo,附加組爲distro(GID爲5000)和peguin(GID爲5001);

wKioL1ZtCs7hp-2fAAAYmQQeKOs653.png

練習2:

建立用戶fedora,其註釋信息爲"Fedora Core",默認shell爲/bin/tcsh;

wKioL1ZtCtqDSk1wAAAMPHdpVvc900.png

練習3:

修改gentoo用戶的家目錄爲/var/tmp/gentoo;要求其原有文件仍能被用戶訪問;

wKiom1ZtCuKBLXRjAAAK72twi50405.png

練習4:

爲gentoo新增附加組netadmin;

wKiom1ZtCu2B1zUkAAAPh4_qnco334.png

 

4.3密碼管理及其餘相關命令

 

passwd命令:

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-nmindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

 

(1) passwd:不帶任何選項,修改用戶本身的密碼;

(2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;

       -l, --lock          鎖定用戶,使其沒法登陸;

        -u, --unlock        解鎖用戶;

        -d, --delete        清除用戶密碼串;

        -e, --expire       終止用戶密碼,使其當即過時,必須修改密碼方可登陸;

        -i, --inactive DAYS 非活動期限;

        -n, --minimum DAYS  密碼的最短使用期限;

        -x, --maximum DAYS  密碼的最長使用期限;

        -w, --warning DAYS  警告期限;

 

        --stdin

        echo "PASSWORD" | passwd--stdin USERNAME

       將管道前輸入的字符串內容做爲管道後用戶的密碼


練習:

將magedu做爲docker用戶的密碼,同時不顯示密碼更改信息

wKiom1ZtC4mhCIK9AAATKKBMYwQ129.png

 

組密碼文件:

/etc/gshadow默認給組定義其組密碼,也能管理組中的用戶

組密碼做用:

須要臨時切換到某個組做爲其基本組的用戶,若是其附加組不包含此組,則必須輸入組密碼後才能切換到此組


gpasswd命令:

gpasswd [選項] GROUP_NAME

-a USERNAME:向組中添加用戶   

練習:向mygrp組中添加docker用戶

wKioL1ZtC9SDTndRAAATHCwkxx8434.png

-d USERNAME:從組中移除用戶   

練習:將mygrp組中的archlinux用戶移除

wKiom1ZtDDGhSuiSAAAUhZi2Ssc681.png

 

newgrp命令:臨時切換指定的組爲基本組;

newgrp [-] [group]  切換後須要退出執行exit便可,

注意:

若是切換的組是用戶所屬的附加組,則能夠直接切換;不然切換到其餘組則須要輸入其組密碼才能夠切換到此組

-:-選項會模擬用戶從新登陸以實現從新初始化其工做環境;即登陸時的基本組就爲臨時切換的指定組

不加-則只表示臨時切換到新的基本組

 

chage命令:更改用戶密碼過時信息

chage [選項] 登陸名

      -d 修改最近一次修改密碼的時間

      -E 修改密碼過時時間

      -I 非活動期限

      -W 警告期限

      -m 最短使用期限

      -M 最長使用期限

 


linux文件權限管理:

 

1.文件權限模型

 

文件的權限模型大致分爲兩類:

1、mode:rwxrwxrwx 注意:權限當中的讀寫執行權限位置是固定的

2、ownership:從屬關係(user, group)

 

1.1進程安全上下文及文件權限的表示

 

進程安全上下文,進程對文件的訪問權限應用模型:

1、進程的屬主與文件的屬主是否相同;若是相同,則應用屬主權限;

2、不然,則檢查進程的屬主是否屬於文件的屬組;若是是,則應用屬組權限;

3、不然,就只能應用other的權限;

 

權限:

r:readable, 可讀的

w:writable, 可寫的

x:executable,可執行的


    1.2文件和目錄的權限狀態

文件:

r:可以使用cat、less等工具獲取文件的數據

w:可修改文件的數據,包括改動原來的內容或新增內容

x:可將此文件運行爲進程;

     對於文件來講,默認不該該有執行權限,應爲若是其擁有執行權限,則能夠將其運行爲一個進程,有可能發起危險操做

 

目錄(路徑映射):

r可以使用ls命令獲取其下的全部文件列表;可是不包括查看詳細信息(ls -l)

w:可修改此目錄下的文件列表;即建立或刪除文件;

x:可cd至此目錄中,且可以使用ls -l來獲取全部文件的詳細屬性信息;

     對於目錄來講,通常都會有讀取和執行權限,不然沒法查看目錄下的文件列表


2.文件權限狀態及相關管理命令


      2.1文件的八進制權限表示法

ls-l

rwxrwxrwx:

左三位:定義user(owner)屬主的權限

中三位:定義group屬組的權限;

      右三位:定義other其餘用戶的權限


權限組合機制:

---000 0

--x001 1

-w-010 2

-wx011 3

 r--100 4

 r-x101 5

 rw-110 6

 rwx111 7


練習:

rw-rw-r--(664),rwxrwxr-x(775),rwxr-x---(750),rw------(600), 

rwxr-xr-x(755),664(rw-rw-r--),640(rwxr-----),600(rw-------),775(rwxrwxr-x)


     2.2權限管理命令chmod


chmod命令:改變文件權限             

chmod [OPTION]...MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODEFILE...

chmod [OPTION]...--reference=RFILE FILE...


三類用戶:

u:屬主 user

g:屬組 group

o:其它 other

a:全部 all


(1) chmod [OPTION]... MODE[,MODE]... FILE...


賦權表示法:直接操做一類用戶的全部權限位rwx;

u=

g=

o=

a=

例如:

chmodg=rw fstab

chmodug=r fstab

chmodu=rwx,g=rw,o= fstab


受權表示法:直接操做一類用戶的一個權限位r,w,x;

u+,u-

g+,g-

o+,o-

a+,a-

例如:

chmodu-x fstab

chmodo+r fstab

chmodug+x fstab

chmodg-wx fstab

chmod+x fstab

chmod-x fstab

chmodu+x,g+w fstab


(2) chmod [OPTION]... OCTAL-MODE FILE... 

八進制權限位表示法:三個位置的權限都要寫上

例如:

chmod  660 fstab


(3)chmod [OPTION]... --reference=RFILE FILE...         

參考其餘的文件權限並修改至與之同樣

例如:

chmod--reference=/var/log/messages fstab

將fstab的權限改至跟/var/log/messages同樣


選項:

-R,--recursive:遞歸修改

      遞歸修改文件權限時,最好只用於受權表示法中,由於目錄有執行權限,遞歸修改文件後,全部文件也擁有了執行權限

例如:

chmod-R 700 skel/

chmod-R go= skel/

chmod-R u+r skel/


注意:用戶僅能修改屬主爲本身的那些文件的權限;



3.文件從屬關係及相關管理命令


    3.1屬主管理命令chown

chown命令:既能夠修改屬主,也能夠修改屬組

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...


選項:

-R:遞歸修改

例如:

chown -R docker skel/

chown:mygrp /tmp/mytest/  冒號以前沒有內容,表示屬主不變

chown -R archlinux:mygrp skel/

chown -R archlinux.mygrp skel/

chown-R --reference=/tmp/moosefs/ /tmp/skel/


     3.2屬組管理命令chgrp

          chgrp命令:只能用來改屬組,通常不多用到(chown命令既能夠修改屬主,也能夠修改屬組)

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

   注意:僅管理員可修改文件的屬主和屬組;


練習:

1、新建系統組mariadb, 新建系統用戶mariadb,屬於mariadb組,要求其沒有家目錄,且shell爲/sbin/nologin;嘗試root切換至用戶,查看其命令提示符;

wKiom1ZtDxHCvjRZAAAkrueUr9I619.png

2、新建GID爲6000的組mageedu,新建用戶gentoo,要求其家目錄爲/users/gentoo,密碼同用戶名;

wKioL1ZtDyiQxhc7AAAgMW-XMtk845.png

3、新建用戶suse,其家目錄爲/users/suse,密碼同用戶名;

wKiom1ZtDy2jnrElAAAS6pecHtU607.png

4、新建用戶www, 其家目錄爲/users/www;刪除www用戶,但保留其家目錄;

wKiom1ZtENXRu9j2AAAZYKopv3k799.png

5、爲用戶gentoo和fedora新增附加組mageedu;

wKiom1ZtEOTQESI_AAAP428lsdY121.png

6、複製目錄/var/log至/tmp/目錄,修改/tmp/log及其內部的全部文件的屬組爲mageedu,並讓屬組對目錄自己擁有寫權限;

wKioL1ZtEPaTBZGMAAAl7VKpjkg476.png


4.文件umask的特性及管理

 

    4.1 umask的做用

umask:文件的權限反向掩碼,遮罩碼;

文件的默認權限:

666-umask (由於文件默認不該該擁有執行權限)

目錄的默認權限:

777-umask (目錄默認應該擁有執行權限)

 

注意:之因此文件用666去減,表示文件默認不能擁有執行權限;若是減得的結果中有執行權限,則須要將其加1;

umask: 023

666-023=644

777-023=754

 

4.2 umask的管理

umask命令:

umask:查看當前umask

umask MASK: 設置umask

注意:此類設定僅對當前shell進程有效;

 

練習:

設置umask爲023並建立/tmp/test文件 和/tmp/testdir目錄查看其權限

    wKiom1ZtES2jG3ErAAAweJ0kMls319.png

相關文章
相關標籤/搜索