centos用戶和組管理


用戶和用戶組及權限管理

一:基本概念

linux是一個多任務(multi-task)多用戶(multi-user)的操作系統,每個用戶和用戶組都有自己的ID號UID GID,每個用戶都有自己的家目錄不能隨意訪問其他用戶的家目錄,管理員root除外。

  用戶的分類:(以centos7.x為例)

    管理員或root:0

    普通用戶:1-6000

      系統用戶:1-999(centos7)  1-499(centos6)

      登錄用戶:1000-65535(centos7)  500-65535(centos6)

  組的分類:

    私有組:組名同用戶名,而且只包含一個用戶,用useadd命令創建用戶是會默認創建一個私有組

    公共組:組中包含了多個用戶

  linux系統用戶安全機制:3A機制

    authentication  認證--->比對/etc/shdow中的單向加密過的密碼確定用戶身份

    authorization        授權--->通過權限管理控制不同用戶的權限

    audition      審計--->通過selinux

  加密方法:

    對稱加密:加密和解密使用同一個密鑰

    非對稱加密:加密使用私鑰解密使用公鑰

    單向加密:只能加密不能解密,而且定長輸出  作用於提取文件的特征碼

       算法 md5  sda sha224  sha256  sha384  sha512

示例使用md5sum命令提取 iso鏡像文件的特征碼和使用sha224sum 加密字符串“123456”

[root@localhost zxs]# md5sum CentOS-6.8-x86_64-bin-DVD1.iso f73c2c4dd333c202ca85ea66120cacdf CentOS-6.8-x86_64-bin-DVD1.iso

 

[root@localhost zxs]# echo "123456" | sha224sum 
ec5abd86603445ecc6f37e2632724f7823cc5f81342060fecc39836d 

   進程的安全上下文

    進程是以用戶的身份運行的,當進程訪問文件是,先檢查發起進程的用戶和用戶所屬的組,在檢查文件的的屬主和屬組,如果文件的屬組就是發起進程的用戶則引用前三位的權限,如果文件的屬組和發起進程的用戶的屬組相同則應用中三位的權限,都不是的話及應用右三位的權限

    查看文件的權限命令  ls-l

[root@localhost ~]# ls -al
total 64
dr-xr-x---.  2 root root   219 Apr 26 17:31 .
dr-xr-xr-x. 17 root root   244 Apr 26 17:46 ..
-rw-------.  1 root root   742 Apr 27 10:22 .bash_history
-rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout

drwxrwxrwx:

左1位表示文件的類型

左rwx表示所屬主(owers) 的權限  讀+寫+執行

中rwx表示所屬組(groups)的權限

右rwx表示其他(others)的權限

    權限組合機制

    ---  000  0

    --x  001  1

    -w-  010  2

    -wx  011  3

    r--  100  4

    r-x  101  5

    rw-  110  6

    rwx  111  7 

示例 r-xr-x--x  551

   rwxr-xr-x  755

   rw-rw----  664

二:了解用戶和組相關配置文件

  /etc/passwd:用戶的密碼文件

[root@localhost zxs]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

說明:文件用戶“:”分隔一共有7個字段每個字段的含義是

username:password:UID:GID:GECUS:dircution:shell

用戶名:x:UID:GID:注釋:家目錄:shell (x表示占位符,為了安全表示密碼保存在/etc/shadow)

  /etc/shadow:用戶的密碼文件

[root@localhost ~]# cat /etc/shadow | grep "zxs\>"
zxs:$6$vF9dzSd/$dyIJLhXSAR8oB5RxgV2qt4W8eF.zMRX2bAoaxYM6nhbaz5xuhjQQKCRFSfNt1eo5jzdyEv44zDuLe55XakjwA.:17283:2:6:1:3::

文件9個字段用戶“:”分隔分別表示

用戶名:加密后的密碼:最后一個更改密碼的天數(計算機元年至修改密碼的時候):密碼最短使用天數:密碼最長使用天數:警告時間段:禁用期限:賬戶過期時間(從計算機元年開始計算):保留字段

三:用戶和組管理命令

1:創建新用戶的命令和用法

useradd   [選項]   登錄名

選項和參數說明:

  -u:指定用戶的UID

  -s:指定用戶的shell (系統可支持的shell在/etc/shells 下)

  -r:創建一個系統用戶(UID范圍centos6為1-499,centos7為1-999可在/etc/login.defs中查看)

  -c:關於登錄時的簡短描述  后跟描述的字符串

  -d:自定義用戶的家目錄  后跟家目錄路徑

  -e:用戶賬戶將被禁用的期限格式為 YYYY-MM-DD

  -f:表示過期后徹底禁用的天數 0表示馬上禁止 -1表示禁用這個功能

  -G[GROUP1],[GROUP2],... : 添加用戶的附加組多個組用“,”隔開

  -M:不創建用戶的家目錄 默認復制/etc/skel/目錄下的文件到/home/USERNAME/下作為USERNAME的家目錄 都是隱藏文件

  -N;不創建同名的私有組

2:修改創建新用戶的默認值:(D是default) 命令修改只對當前shell有效

useradd   -D   [選項]

注意:用  useradd -D  修改后的默認值只對當前shell進程,重啟或重新登錄無效永久生效需要修改配置文件/etc/default 或 /etc/login.defs    一般情況下linux系統下用命令行修改的設置都只對當前shell進程有

參數和選項說明:

  useradd -D 不帶選項:查看創建新用戶的默認值

                             GROUP=100                          #新用戶添加到UID為100的公共組

                             HOME=/home                        #默認家目錄路徑

                             INACTIVE=-1                         #過期后徹底禁用的天數  -1表示禁用此功能  0表示過期后馬上禁止

           EXPIRE=                               # 賬戶過期日期 

                             SHELL=/bin/sh                      # 默認shell       

                             SKEL= /etc/skel                     # 默認家目錄的復制目錄      

                             CREATE_MAIL_SPOOL=          #默認創建郵箱   

  帶選項就是修改上面的默認參數

  useradd -D -e   修改變量 EXPIRE=

  useradd -D -f   修改變量 INACTIVE=

  useradd -D -s   修改變量 SHELL

 

3:修改用戶的信息

usermod   [選項]   用戶名

參數和選項說明:

  -u:修改UID

  -g:修改用戶的基本組

  -d:修改用戶的家目錄 原來的家目錄文件不會轉移至新目錄 要想移動要與參數  -m 一起使用

  -G:修改用戶的附加組原來的附加組會被刪除 要想追加附加組使用參數  -a

  -c:修改注釋信息

  -e:修改過期日期

  -f:修改過期后可使用的天數

4:刪除用戶

userdel   [選項]   用戶名

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

5:創建組

groupadd   [選項]   組名

  -r:創建系統組

  -g:指定GID  -f:如果指定GID重復 強制創建

6:修改組信息

groupmod   [選項]   組名

  -g:改UID

  -n:改組名               

7:刪除組

groupdel   [選項]   組名

8:更新用戶密碼和信息

passwd  [選項]   用戶名

參數和選項說明:

  -d:刪除密碼

  -l:鎖定用戶  機制是在/etc/shadow 文件中用戶的密碼字符串前加“!”

  --stdin:與管道一起用將管道前輸出字符串作為密碼不需要與用戶交互 用於腳本編寫

示例:

[root@localhost ~]# echo "123456" | passwd --stdin zxs
更改用戶 zxs 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。

  -u:解鎖

  -e:密碼過期日期

  -i:密碼禁用期限

  -n:密碼最小年齡

  -x:密碼最長年齡

  -w:密碼警告日期

示例:

[root@localhost zxs]# echo "123456" | passwd -n 2 -x 6 -w 1  -i 3 --stdin zxs
調整用戶密碼老化數據zxs。
passwd: 操作成功

說明:假設在2號修改了用戶的密碼和其他日期設置  

  -n 2 (表示用戶在這個改的密碼至少要用到4號才能修改 2表天數為兩天)

  -x 6 (表示密碼用戶用到8號就到期了 使用天數為6)

  -w 1 (表示用戶密碼到期之前的前一天也就是7號,系統會提示密碼即將到期的消息提示用戶修改密碼,在到期之前用戶可以登錄系統)  

  -i 2  (表示賬號密碼過期后,到賬號完全禁用鎖定的天數,為寬限期3天,此期間用戶必須修改密碼才能登錄系統,禁用后完全無法登錄需用root 解鎖用戶)

 

9:給組添加密碼 一般不需要 用戶臨時切換基本組需要提供組密碼 沒有密碼不能切換

gpasswd  [選項]  組名:

             -a:組中添加用戶

             -d:組中刪除用戶

10:臨時切換基本組 然后輸入組密碼

newgrp  -  [組名]

   -:表示模擬重新初始化工作環境 同su -

11:顯示用戶信息

id   [選項]   [用戶名]

  -u 顯示用戶UID

  -g 顯示用戶基本組的GID

  -G 顯示所有組的GID

  -n 顯示用戶或組的名稱

su:切換用戶

           -:重新讀取用戶的配置文件初始化其工作環境 就是切換至用戶的家目錄

pwck:檢查用戶密碼文件

grpck:檢查組密碼文件

四:權限管理命令

三類用戶:

u  owns

g  groups

o  others

a  all

1:賦權表示法即直接賦予某一類用戶的所有權限

    chmod  u=

        g=

        o=

        a=

2:授權表示法即修改某一類用戶的一個權限位(比較常用比較安全)

    chmod  u+

        g+

        o+

        a+(a可以省)

3:8進制數值修改權限方法 直接修改所有類型用戶的權限

    chmod 644

      選項:

        -R 修改目錄權限時一並修改目錄下的所有文件

          注:此用法最好搭配授權表示法,為了安全起見文件最好不要擁有執行權限,目錄最好不要有寫權限

        --reference FILE  寫改文件的權限使與文件FILE一樣

4:修改文件的屬主和屬組

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

例如

[root@localhost ~]# chown zxs:ftp text
[root@localhost ~]# ll text
-rw-r--r--. 1 zxs ftp 554 Apr 27 21:18 text

5:修改文件權限的反向掩碼

  umask默認為002

  默認創建的文件的權限是664  666-umask獲得

  默認創建的目錄的權限是755  777-umask獲得

umask 掩碼數字:修改掩碼即修改創建文件和目錄時的默認權限

6:install命令類似cp命令

  -m 復制是設置文件權限默認為755

  -o 復制時修改文件的屬主

  -g 復制時修改文件的屬組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM