linux用戶和組的管理

linux用戶和組的管理

一、用戶名的認知

    1、用戶名的引入:人的認知傾向字符串,而機器只認0101的ASCII代碼)
    名稱解析:用戶名<---->UID

    ①用戶認證 驗證該用戶是否有權限登錄該主機

        --認證機制:linux默認的認證機制叫shadow 通常稱爲影子口令

         密碼存放位置/etc/shadow

[root@localhost tmp]# head -3 /etc/shadow
root:$6$aClk7n/uMXB25Oxe$1xOFEgeyIah/WYYSa6GeT7G72Z3JFgMkuo73wIuIzl3JLMxWI4njZG9a3zjaG9nO2cChgGVFYWvi5T5xyIKjv/:16526:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::

        --安全上下文:進程是繼承了,發起該進程的用戶的權限。

    ②用戶授權 該用戶是否有權限能訪問該文件

    ③審計 記錄用戶的所有操作

    2、用戶類別
        管理員    root UID:0
        普通用戶分兩種
                1、系統用戶 (作用:他們是爲了在後臺運行某個服務進程而特別建立,不能進行交互式登錄的用戶 UID的範圍 1-499)

                2、可交互式登錄的用戶,UID的範圍 500-65535

        /etc/passwd 是系統識別用戶的一個文件,在/etc/passwd 中,每一行都表示的是一個用戶的信息;一行有7個段位;每個段位用:號分割

[root@localhost home]# tail -1 /etc/passwd
jiuren:x:500:500::/home/jiuren:/bin/bash

    jiuren: 用戶名

    x :密碼佔位符 存在別處

    500:UID

    500:GID
    ::用戶的註釋(描述信息)這裏沒有註釋
    /home/jiuren:用戶的家目錄
    /bin/bash:用戶所使用的默認SHELL類型

二、組的概念   
        容器:存放用戶及權限
        group name  <---->GID
        組的類別:
        管理員組 root GIU:0

        普通組
            1、系統組 GID:1-499)
            2、用戶組(2種) GID:500-65535
                ☆用戶的私有組 (組名和用戶名一樣,且通常指包含一個用戶)
                用戶的非私有組(2種)
                    用戶的基本組 (用戶執行操作時,用戶所屬的組,就稱爲基本組)
                    ★用戶的附加組 (除了基本組以外的組)

        /etc/group

        該文件是用戶組的配置文件,內容包括用戶和用戶組,並且能顯示出用戶是歸屬哪個用戶組或哪幾個用戶組,因爲一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶之間具有相似的特徵 。

        在/etc/group 中的每條記錄分四個字段:

[root@localhost home]# head -3 /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon

        拿daemon這個組來舉例說明:
        daemon:組名
        x:組密碼佔位符
        2:GID
        bin,daemon:該組下的用戶名列表

三、用戶和組管理相關的命令
useradd [選項] 參數(用戶名)添加用戶
            -u UID 指定用戶UID 

[root@localhost tmp]# useradd -u 888 zhang
[root@localhost tmp]# id zhang
uid=888(zhang) gid=888(zhang) groups=888(zhang)

            -c comment'描述信息'

[root@localhost tmp]# useradd -c "this is xiaoli" xiaoli
[root@localhost tmp]# id xiaoli
uid=889(xiaoli) gid=889(xiaoli) groups=889(xiaoli)

            -d home_dir 指定用戶的家目錄,此目錄應該不存在,若存在創建用戶時會報警

[root@localhost tmp]# useradd -d /tmp/wang wang
[root@localhost tmp]# tail -1 /etc/passwd
wang:x:890:890::/tmp/wang:/bin/bash

            -s shell 指定用戶的默認shell  /etc/shells 用戶可選擇的shell

[root@localhost tmp]# useradd -s /bin/csh xiaozhao
[root@localhost tmp]# tail -1 /etc/passwd
xiaozhao:x:891:891::/home/xiaozhao:/bin/csh

            -g GID或組名 指定用戶的基本組

[root@localhost tmp]# useradd -g abc aaa
[root@localhost tmp]# id aaa
uid=892(aaa) gid=5005(abc) groups=5005(abc)

            -G GID或組名 指定用戶的附加組

[root@localhost tmp]# useradd -G def bbb
[root@localhost tmp]# id bbb
uid=893(bbb) gid=893(bbb) groups=893(bbb),5006(def)

            -r 創建系統用戶

[root@localhost tmp]# useradd -r log
[root@localhost tmp]# id log
uid=498(log) gid=498(log) groups=498(log)

   注: /etc/defaulat/useradd    默認創建用戶時所設的選項和參數


usermod [選項] 用戶名
        -u UID 修改UID

[root@localhost tmp]# tail -1 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
[root@localhost tmp]# useradd -u 500 jiuren
[root@localhost tmp]# id jiuren
uid=500(jiuren) gid=500(jiuren) groups=500(jiuren)


        -c 修改描述信息

[root@localhost tmp]# usermod -c "jiurenjiaoyu" jiuren
[root@localhost tmp]# tail -1 /etc/passwd
jiuren:x:500:500:jiurenjiaoyu:/home/jiuren:/bin/bash


        -d 修改用戶的家目錄

    注:通常用於-m選項一起使用,以實現移動用戶的家目錄(目標家目錄一般不存在)

[root@localhost tmp]# usermod -d /tmp/jiaoyu -m jiuren
[root@localhost tmp]# tail -1 /etc/passwd
jiuren:x:500:500:jiurenjiaoyu:/tmp/jiaoyu:/bin/bash

        -s 修改用戶的shell類型

[root@localhost tmp]# usermod -s csh jiuren
[root@localhost tmp]# tail -1 /etc/passwd
jiuren:x:500:500:jiurenjiaoyu:/tmp/jiaoyu:csh


        -g 組名或者GID 修改用戶的基本組

[root@localhost tmp]# groupadd test
[root@localhost tmp]# usermod -g test jiuren
[root@localhost tmp]# id jiuren
uid=500(jiuren) gid=5003(test) groups=5003(test)


        -G 組名或者GID -a追加的形式(默認是覆蓋)修改附加組

[root@localhost tmp]# usermod -G test jiuren
[root@localhost tmp]# id jiuren
uid=500(jiuren) gid=5003(test) groups=5003(test)
[root@localhost tmp]# groupadd test2
[root@localhost tmp]# usermod -G test2 -a jiuren
[root@localhost tmp]# id jiuren
uid=500(jiuren) gid=5003(test) groups=5003(test),5004(test2)
[root@localhost tmp]#


        -l 新的用戶名 更改用戶名

[root@localhost tmp]# usermod -l jiuren1 jiuren
[root@localhost tmp]# tail -1 /etc/passwd
jiuren1:x:500:0:jiurenjiaoyu:/tmp/jiaoyu:csh


        -L 鎖定該用戶 這個操作是放一個感嘆號在你的密碼前,禁用密碼

[root@localhost tmp]# tail -1 /etc/shadow
jiuren:$6$gFvaKNmM$U7NwVbrrPekw3XgnMee5zqZ30R9mEMEibj0j9F13rKRwyASDo9
rxOIR.i6tWna.DznvEW795PuRCErzhdIbkN.:16529:0:99999:7:::
[root@localhost tmp]# usermod -L jiuren
[root@localhost tmp]# tail -1 /etc/shadow
jiuren:!$6$gFvaKNmM$U7NwVbrrPekw3XgnMee5zqZ30R9mEMEibj0j9F13rKRwyASDo
9rxOIR.i6tWna.DznvEW795PuRCErzhdIbkN.:16529:0:99999:7:::


        -U 解鎖該用戶 這個操作是在加密密碼前取消感嘆號,恢復帳號登錄  

[root@localhost tmp]# usermod -U jiuren
[root@localhost tmp]# tail -1 /etc/shadow
jiuren:$6$gFvaKNmM$U7NwVbrrPekw3XgnMee5zqZ30R9mEMEibj0j9F13rKRwyASDo9
rxOIR.i6tWna.DznvEW795PuRCErzhdIbkN.:16529:0:99999:7:::


userdel [選項] 參數(用戶名)
        -r 刪除用戶是,同時刪除用戶家目錄   

[root@localhost home]# ls
aaa  bbb  jiuren  lost+found  xiaoli  xiaozhao  zhang
[root@localhost home]# userdel -r zhang
[root@localhost home]# ls
aaa  bbb  jiuren  lost+found  xiaoli  xiaozhao

groupadd [選項] 參數(組名)
            -g GID 指定當前創建組的ID號

[root@localhost home]# groupadd -g 999 test3
[root@localhost home]# tail -3 /etc/group
bbb:x:893:
log:x:498:
test3:x:999:

            -r 創建系統組

[root@localhost home]# groupadd -r test4
[root@localhost home]# tail -1 /etc/group
test4:x:497:


groupmod [選項] 組名
        -g GID 修改的是組的ID

[root@localhost home]# groupmod -g 400 test4
[root@localhost home]# tail -1 /etc/group
test4:x:400:

        -n 修改的是新的組名

[root@localhost home]# groupmod -n systest4 test4
[root@localhost home]# tail -1 /etc/group
systest4:x:400:

    groupdel 組名  刪除組

[root@localhost home]# groupdel systest4
[root@localhost home]# tail -3 /etc/group
bbb:x:893:
log:x:498:
test3:x:999:

    練習1  答案在本文最後,請思考,動手試試!
        創建用戶gentoo UID爲4001 基本組爲gentoo,附加組爲distro(GID爲5000)和peguin(GID爲5001)
    練習2
        創建用戶fedora 其描述爲“Fedora Core” 默認shell爲 /bin/tcsh
    練習3
        修改gentoo 用戶的家目錄爲/tmp/gentoo,並且爲gentoo新增附加組爲netadmin


id [選項] 參數(用戶名)
        -u UID 僅顯示UID

[root@localhost tmp]# id -u wang
890

        -g GID 僅顯示GID

[root@localhost tmp]# id -g aaa
5005

        -n 顯示用戶名而非數字,需要與-ugG 結合使用

[root@localhost tmp]# id -n -u xiaozhao
xiaozhao

chsh 用於 改變 用戶的 登錄 shell. 如果 沒有在 命令行上 指定 shell, chsh 能夠 做出 提示

         chsh -l ==cat /etc/shells

        -l 用戶可以使用的安全shell
        -s shell 用戶名 修改用戶的默認shell

[root@localhost home]# chsh -s /bin/tcsh wang
Changing shell for wang.
Shell changed.
[root@localhost home]# tail -8 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
jiuren:x:500:5003:jiurenjiaoyu:/tmp/jiaoyu:csh
xiaoli:x:889:889:this is xiaoli:/home/xiaoli:/bin/bash
wang:x:890:890::/tmp/wang:/bin/tcsh        #成功改變shell類型
xiaozhao:x:891:891::/home/xiaozhao:/bin/csh
aaa:x:892:5005::/home/aaa:/bin/bash
bbb:x:893:893::/home/bbb:/bin/bash
log:x:498:498::/home/log:/bin/bash

練習1答案:

[root@localhost tmp]# groupadd gentoo
[root@localhost tmp]# groupadd -g 5000 distro
[root@localhost tmp]# groupadd -g 5001 peguin
[root@localhost tmp]# useradd -u 4001 -g gentoo -G distro,peguin gentoo
[root@localhost tmp]# id gentoo
uid=4001(gentoo) gid=500(gentoo) groups=500(gentoo),5000(distro),5001(peguin)

練習2答案


[root@localhost tmp]# useradd -c "Fedora Core" -s /bin/tcsh fedora
[root@localhost tmp]# tail -1 /etc/passwd
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh

練習3答案

[root@localhost tmp]# groupadd netadmin
[root@localhost tmp]# usermod -G netadmin -a gentoo
[root@localhost tmp]# id gentoo
uid=4001(gentoo) gid=500(gentoo) groups=500(gentoo),5000(distro),5001(peguin),5002(netadmin)
[root@localhost tmp]# usermod -d /tmp/gentoo -m gentoo
[root@localhost tmp]# ls /home/
fedora  jiuren  lost+found
[root@localhost tmp]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
gentoo:x:4001:500::/tmp/gentoo:/bin/bash
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh



四、/etc/shadow 存儲用戶認證密碼

[root@localhost tmp]# head -1 /etc/shadow
root:$6$aClk7n/uMXB25Oxe$1xOFEgeyIah/WYYSa6GeT7G72Z3JFgMkuo73wIuIzl3JLMxWI4njZG9a3zja
G9nO2cChgGVFYWvi5T5xyIKjv/:16526:0:99999:7:::

1、每個字段的代表意思

用戶名:加密後的密碼:上次修改密碼的時間:密碼最短使用期限:密碼最長使用期限:密碼警告區間:密碼非活動區間(用戶存在,密碼不能登錄):賬號過期(賬號被註銷):預留
如:7天之內不能修改--最短使用期限
    30天最長--密碼最長使用時間
    30天到期之後警告區間
    密碼加密的每個字段的含義$爲分隔符
    ·6:指定密碼加密方式 使用的是 sha512字長
    ·aClk7n/uMXB25Oxe加密雜質
    ·1xOFEgeyIah/WYYSa6GeT7G72Z3JFgMkuo73wIuIzl3JLMxWI4njZG9a3zja

      G9nO2cChgGVFYWvi5T5xyIKjv/ :加密生成的密碼   
    例子 (root+雜項)進行sha512加密 形成512長度的字符串  
2、修改用戶密碼:
        管理員:passwd 回車   修改管理員root用戶自身密碼
                passwd 用戶名 修改其他普通用戶的密碼
        普通用戶:passwd 只能修改普通用戶自身密碼
    切換登錄
    su :switch user
        登錄式切換: su - 用戶名 (會讀取用戶的所有配置)exit 退出當前用戶
        非登錄式切換: su 用戶名 (不會讀取目標用戶環境配置文件)

五、權限管理
    1、文件權限:針對3類對象進行定義
        -rw-r--r--. 1 root root 27632 Apr  1 18:16 install.log
        屬主 屬組 其他組(其他用戶)
        權限類型:r read  w write x eXcutable
        文件(指普通文件)
            r可以查看文件的內容
            w可以修改文件的內容
            x可以把文件向內核提起申請,運行爲一個進程
        目錄(目錄文件)
            r是否可以使用ls命令,處了-l 選項之外
            w是否可以在目錄中進行添加、刪除操作
            x可使用cd命令進入目錄 ls -l的選項是否可用
    2、修改文件的權限:
        用法:chmod [選項]... 模式[,模式]... 文件...
             -R  遞歸賦予權限
        每種模式都應屬於這類形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"
        操作對像
           u 文件屬主權限
           g 同組用戶權限
           o 其它用戶權限
           a 所有用戶(包括以上三種)
        權限設定
           + 增加權限
           - 取消權限
           = 唯一設定權限
        權限類別
           r 讀權限
           w 寫權限
           x 執行權限
           X 表示只有當該檔案是個子目錄或者該檔案已經被設定過爲可執行。
           s 文件屬主和組id
           l 給文件加鎖,使其它用戶無法訪問
        權限模型 文件名
            o=+rwx 不能寫成o=+r,+w,+x 如下例子

[root@localhost ~]# ls -l functions 
-rw-r--r-- 1 root root 19295 Apr  6 05:27 functions
[root@localhost ~]# chmod o=+w,+x functions 
[root@localhost ~]# ls -l functions 
-rwxr-x-wx 1 root root 19295 Apr  6 05:27 functions #這裏給屬主和數組也同樣加上了x權限

            u和g用法同上
            數值權限 rwx分別代表421
    3、chown修改屬主、屬組
        用法:chown [選項]... [所有者][:[組]] 文件...
            -R 遞歸賦予權限
            屬主:   只更改屬主
                :屬組 只更改數組

[root@localhost ~]# ls -l functions 
-rwxr-x-wx 1 root root 19295 Apr  6 05:27 functions
[root@localhost ~]# chown jiuren: functions 
[root@localhost ~]# ls -l functions 
-rwxr-x-wx 1 jiuren jiuren 19295 Apr  6 05:27 functions #這裏沒有達到上面描述的效果,
                                                        是因爲基本組的原因
[root@localhost ~]# chown :root functions 
[root@localhost ~]# ls -l functions 
-rwxr-x-wx 1 jiuren root 19295 Apr  6 05:27 functions  #這裏就可以修改用戶的數組


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章