第三週 用戶及文件權限管理命令

一、用戶管理命令

1、用戶、用戶組、權限管理:

Multi-tasks    Multi-Users    多用戶、多任務
1)每個使用者:用戶ID、密碼
     Authentication  認證機制  
     Authorization    授權機制              3A機制
     Audition            審計機制
         組:用戶組,用戶容器
2)用戶類別:
     管理:       
          普通用戶:  系統用戶     登錄用戶
          用戶表示: UserID    UID
               16bits 二級制數字:0-65535
               管理員: 0
               普通用戶:1-65635
                 系統用戶:1-499(CentOS6) 1-999(CentOS7)
                 登錄用戶:500-60000(CentOS6) 1000-60000(CentOS7)
               名稱解析:名稱轉換的過程
                 Username<-->UID
                 根據名稱解析庫進行:   /etc/passwd
3)組:  
    組類別(1):
         管理員組
         普通用戶組:
               系統組    
               登錄組
         組標識: GroupID   GID                      
               管理員: 0
               普通用戶:1-65635
               系統用戶:1-499(CentOS6) 1-999(CentOS7)
               登錄用戶:500-60000(CentOS6) 1000-60000(CentOS7)
               名稱解析: /etc/group
    組類別(2):
              用戶的基本組
              用戶的附加組
    組類別(3):    
              用戶的私有組:組名同用戶名,且只包含一個用戶
              用戶的公共組:組內包含多個用戶

4)認證信息:
     通過比對事先存儲的,與登錄時提供的信息是否一致
         password:
                 /etc/shadow     /etc/gshadow  數據密碼庫                
          密碼的使用策略:
                 1、使用隨機密碼
                 2、最短長度不要低於8位
                 3、應該使用大寫字母、小寫字母、數字和標點符號之中的至少三類
                 4、定期更換
         加密算法:
                 1、對稱加密:加密和解密使用同一個密碼
                 2、非對稱加密:加密和解密使用的一對密鑰
                             密鑰對兒:    公鑰         私鑰
                 3、單向加密: 只能加密,不能解密,提取數據特徵碼
                               定長輸出   /]# echo "abcABC1" | md5sum
                               雪崩效應   
                          算法: md5  message digest    ,128bits
                                      sha   secure hash  algorithm   160bits   哈希算法              
                                      sha1sum    sha224sum  sha256sum  sha384sum  sha512sum
                                    1: md5     2: sha1   3: sha224   4:sha256   5:sha384  6: sha512
                            在計算之時加salt ,添加的隨機數:                                    
    /etc/passwd:用戶的信息庫
          ntp:x:38:38::/etc/ntp:/sbin/nologin
          name:password:UID:GID:GECOS:directory:shell
                GID:用戶所屬的主組ID
                GECOS:用戶的註釋信息
                directory:用戶的home路徑
                shell:用戶登錄時默認的shell路徑
    /etc/shdow:用戶的密碼庫        
        root:$6$kAccl0KZ74DBvwrJ$OsVHXkxJw1IDRxwzzzZ7m71u3.eFZsAcM1Hsw1SjTTp5u70ldBqkufb9uKuqVruw8E0qQKQgg7pp7DSQJNE1G.:17454:0:99999:7:::
解析:  $6$   代表  sha512     
             第三個$後纔是真的密碼串
      用戶:密碼:最後一次更改密碼的天數(從1970.01.01開始到今天):密碼的最短使用期限: 密碼的最長使用期限:密碼警告期段:密碼有效期間:賬戶過期日期:保留字段
      /etc/group :
            root:x:0:
            group_name:password:GID:user_list
                user_list:該組的用戶成員,以此組爲附加組的用戶的用戶列表

2、用戶管理命令

進程以其發起者的身份運行,進程對文件的訪問權限,取決於發起此進程的用戶的權限;
系統用戶:爲了能夠讓那些後臺進程或服務類進程以非管理員身份運行,通常需要爲此創建多個普通用戶,該類系統從不登錄系統

1)groupadd命令:添加組
        groupadd [選項] group
               -g, --gid GID          手動指定GID,默認爲上個組的GID+1
               -r, --system            創建系統組,隨機器開啓的進程爲後臺進程
    groupmod命令:修改組
        groupmod [選項] GROUP
                -g, --gid GID   修改GID
                -n, --new-name NEW_GROUP   修改組名
    groupdel命令: 刪除組
        groupdel [選項] GROUP

2)useradd命令: 創建用戶  (創建新用戶若沒指定組,則創建和用戶名一樣的組)
         useradd [選項] 登錄
         useradd -D
         useradd -D [選項]
                -u, --uid UID     指定UID,默認爲上個組的UID+1
                -g,--gid GROUP  指定基本組ID,此組必須事先存在
                -c, --comment COMMENT  指定註釋信息
                -G, --groups GROUPS  指明用戶所屬的附加組,多個組之間用逗號分隔
                -d, --home-dir HOME_DIR 以指定的路徑爲用戶的家目錄,通過複製/etc/skel此目錄並重命名實現的,指定的家目錄路徑如果事先存在,則不會爲用戶複製配置環境配置文件(隱藏文件)。
                -s, --shell SHELL  指定用戶的默認shell,可用的所有shell列表存儲在e/etc/shells文件
                -r, --system   創建系統用戶
                -M, --no-create-home        不創建用戶的主目錄
                -f, --inactive INACTIVE      密碼過期後,賬號被徹底禁用之前的天數, 0表示立即禁用,-1表示禁用這個功能
                -D, --defaults        顯示或更改默認的 useradd 配置         
                        useradd -D   顯示創建用戶的默認配置,修改的結果保存於/etc/default/useradd文件中       
           注意:創建用戶時的諸多默認設定配置文件爲/etc/logic.defs
        usermod命令:修改用戶屬性
                usermod [選項] 登錄
                -u, --uid UID             修改用戶的ID號
                -g, --gid GROUP      修改用戶的基本組,原本的組必須存在
                -G, --groups GROUPS 修改用戶的所屬的附加組,原來的附加組會被覆蓋
                -a, --append GROUP  與-G一同使用,用於添加多個附加組
                -c, --comment       修改註釋信息
                -d, --home HOME_DIR   修改用戶的家目錄,用戶的原來家目錄的信息不會被複制到新的家目錄
                -m, --move-home      只能與-d一同使用,用於將原來的家目錄文件一起移動至新的家目錄
                -l, --login LOGIN   修改用戶名
                -s, --shell SHELL  修改用戶的默認shell
                -L, --lock   鎖定用戶的密碼(禁止用戶登錄),即在用戶原來的密碼串之前添加一個“!”
                -U, --unlock      解鎖用戶的密碼,刪除之前密碼串的“!”
       userdel命令:刪除用戶的命令
                userdel [選項] 登錄
                -r:刪除用戶時一併刪除其家目錄

3)passwd命令:
            passwd  [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays]  [-i inactivedays] [-S] [--stdin] [username]
            1)passwd:修改用戶自己的密碼
            2)passwd USERNAME:修改指定用戶的密碼,僅root有此權限
               -l, --lock              鎖定指名帳戶的密碼(僅限 root 用戶)
               -u, --unlock            解鎖指名賬戶的密碼(僅限 root 用戶)
               -d, --delete            刪除已命名帳號的密碼(只有根用戶才能進行此操作)
               -e, --expire      過期期限,表示日期
               -i, --inactive=DAYS    當密碼過期後經過多少天該帳號會被禁用(只有根用戶才能進行此操作)
               -x, --maximum=DAYS      密碼的最長有效時限(只有根用戶才能進行此操作)
               -n, --minimum=DAYS      密碼的最短有效時限(只有根用戶才能進行此操作)
               -w, --warning=DAYS      在密碼過期前多少天開始提醒用戶(只有根用戶才能進行此操作)    警告期限                 
               --stdin       從標準輸入讀取令牌(只有根用戶才能進行此操                             用法: echo "PASSWIRD" | passwd --stadin USERNAME


4)gpasswd命令:默認給組定義密碼
        組密碼路徑     /etc/gshadow
            gpasswd [選項] group
            -a, --add USER   向組中添加用戶
            -d, --delete USER  從組中移除用戶
5)newgrp命令:臨時切換指定的組爲基本組
            newgrp [-] [group]    
            -  會模擬用戶重新登錄以實現重新初始化其工作環境
6)chage命令:更改用戶密碼過期信息
            chage [選項] 登錄名
              -d, --lastday 最近日期  將最近一次密碼設置時間設爲“最近日期”
              -E, --expiredate 過期日期    將帳戶過期時間設爲“過期日期”
              -W, --warndays 警告天數      將過期警告天數設爲“警告天數”
               -m, --mindays 最小天數        將兩次改變密碼之間相距的最小天數設爲“最小天數”
                 -M, --maxdays 最大天數        將兩次改變密碼之間相距的最大天數設爲“最大天數”
7)id命令: 顯示實際和有效的ID
            id [OPTION]... [USER]
               -u, --user 僅顯示有效的UID
               -g, --group 僅顯示用戶基本組的ID
               -G, --groups  僅顯示用戶所屬的所有組的ID
               -n, --name  顯示名稱而非ID
8)su命令 :用戶切換命令
           登錄式切換 :會通過讀取用戶的shell配置文件,重新初始化
                su - USERNAME  或者  su -l USERMANE
           非登錄式切換 :不會讀取目標配置文件,進行初始化
                su USERNAME
            注意: 管理員可無密碼切換至其他用戶,其他用戶切換至任何用戶都需要提供密碼
                  -c  'COMMAND'  僅以指定用戶的身份運行此處指定的命令

練習:

1)創建組distro,其GID爲2016
    [root@localhost ~]# groupadd  -g 2016 distro
    [root@localhost ~]# cat /etc/group          /*查看組*/
2)創建用戶mandriva, 其ID號爲1005;基本組爲distro;
    [root@localhost ~]# useradd -u 1005 -g distro mandriva 
    [root@localhost ~]# cat /etc/passwd | grep mandriva
        mandriva:x:1005:2017::/home/mandriva:/bin/bash
3)創建用戶mageia,其ID號爲1100,家目錄爲/home/linux;
    [root@localhost ~]# useradd -u 1100 -d /home/linux mageia
    [root@localhost ~]# cat /etc/passwd | grep mageia
        mageia:x:1100:1100::/home/linux:/bin/bash
4)給用戶mageia添加密碼,密碼爲mageedu;
    [root@localhost ~]# passwd mageia
        更改用戶 mageia 的密碼 。
        新的 密碼:
5)刪除mandriva,但保留其家目錄;
    [root@localhost ~]# userdel mandriva
6)創建用戶slackware,其ID號爲2002,基本組爲distro,附加組peguin;
    [root@localhost ~]# useradd -u 2002 -g distro -G pegion  slackware 
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/bash
7)修改slackware的默認shell爲/bin/tcsh
    [root@localhost ~]# usermod -s /bin/tcsh slackware
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/tcsh
8)爲用戶slackware新增附加組admins
    [root@localhost ~]# usermod -G admins -a slackware
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/tcsh

二、文件權限管理

1、文件權限管理:

進程安全上下文:
   /]#ls -l ---> rwx rwx rwx
                 左三位:定義屬主 user的權限
                 中三位:定義屬組 group權限
                 右三位:定義其他 other的權限
       進程對文件的訪問權限應用模型:
               進程的屬主與文件的屬主是否相同,如果相同則應用屬主權限,否則檢查進程的屬主是否屬於文件的屬組,如果屬於則應用屬組權限,否則應用其他權限。
       權限:   
               r :read 讀        w:wirte  寫        x:excute 執行    
               文件:
                   r:可獲得文件的數據      4 
                   w:可修改文件的數據      2  
                   x:可將此文件執行爲進程   1
               目錄:
                    r:可使用Ls命令來獲取其下的所有文件列表
                    w:可修改此目錄下的文件列表,即創建或者刪除文件
                    x:可cd到此目錄中,可使用ls -l 來獲取文件詳細述屬性信息
                mode: rwxrwxrwx
                ownership:user  group
      權限組合機制:
              --- 0     --x  1   -w-  2  -wx 3  r--  4  r-x 5  rw- 6   rwx  7

2、文件權限命令:

 1)chmod命令: 
     說明 : Linux/Unix 的檔案存取權限分爲三級 : 檔案擁有者、羣組、其他。利用 chmod 可以藉以控制檔案如何被他人所存取。          
                chmod [OPTION]... MODE[,MODE]... FILE...
                chmod [OPTION]... OCTAL-MODE FILE...
                chmod [OPTION]... --reference=RFILE FILE...
          三類用戶:  u 屬主   g屬組   o 其他   a 所有
           (1) chmod [OPTION]... MODE[,MODE]... FILE...
                     chmod [選項]... 模式[,模式]... 文件...
                           MODE表示法:
                                 賦權表示法:直接操作一類用戶所有權限位rwx 
                                    u=  g=  o=  a=
                                 授權表示法: 直接操作一類用戶的一個權限位r w x
                                    u-x   g-r  o-r  o+rwx  u+rwx ug+r 之類
           (2)  chmod [OPTION]... OCTAL-MODE FILE...  
                        chmod [選項]... 八進制模式 文件...
           (3)  chmod [OPTION]... --reference=RFILE FILE...
                        chmod [選項]... --reference=參考文件 文件...
        選項:
                -R, --recursive   遞歸修改,對一個目錄下所有文件進行修改
 2)從屬關係管理命令:
    1、chown命令:
        說明:Linux/Unix 是多人多工作業系統,所有的檔案皆有擁有者。利用 chown 可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有權限可以改變別人的檔案擁有者,也沒有權限可以自己的檔案擁有者改設爲別人。只有系統管理者(root)纔有這樣的權限。
                   chown [選項]... [所有者][:[組]] 文件...
                   chown [選項]... --reference=參考文件 文件...
                    選項: -R  遞歸修改
                 chgrp命令:
    2、umask:文件的權限反向掩碼,遮罩碼
                 文件: 666 ---umask
                 目錄:777 ----umask
                    注意:之所以文件用666去減,拜師文件默認不能擁有執行權限,如果減的結果中有執行權限,則加1  比如 666-023=644
                 umask命令:查看當前umask
                 umask MASK :設置umask
                注意:此類設定只對當前shell進程有效         
    3、install命令:
                    install [OPTION]... [-T] SOURCE DEST   單源複製
                    install [OPTION]... SOURCE... DIRECTORY  多源複製
                    install [OPTION]... -t DIRECTORY SOURCE... 多源複製
                    install [OPTION]... -d DIRECTORY...  創建目錄
                選項:
                    -m  --mode=MODE  設定目標文件權限,默認爲755
                    -o   --owner=OWNER  設定目標文件屬主    
                    -g    --group=GROUP  設定目標文件屬組

    4、mktemp命令: 創建臨時文件(變量賦值)通常在tmp目錄下創建,會自動刪除
                        mktemp [選項]... [TEMPLATE]
                        eg: mktemp /tmp/aba.xxx---> /tmp/aba.agag 隨機生成文件
                -d  創建臨時目錄  xxx
                -u  測試是否可以創建文件,文件並不存在
                    注意:  mktemp會將創建的臨時文件直接返回,可直接通過命令引用保存起來。
 3)chown與chmod命令的區別
    (1)chown 修改文件和文件夾的用戶和用戶組屬性
        1、要修改文件hh.c的所有者.修改爲sakia的這個用戶所有
                chown sakia hh.c
                    這樣就把hh.c的用戶訪問權限應用到sakia作爲所有者
        2、將目錄 /tmp/sco 這個目錄的所有者和組改爲sakia和組net
                chown -R sakia:net /tmp/sco
    (2)chmod 修改文件和文件夾讀寫執行屬性
        1、把hh.c文件修改爲可寫可讀可執行
                chmod 777 hh.c
        要修改某目錄下所有的文件屬性爲可寫可讀可執行
                chmod 777 *.*
        把文件夾名稱與後綴名用*來代替就可以了。同理若是要修改所有htm文件的屬性
                chmod 777 *.htm
        2、把目錄 /tmp/sco修改爲可寫可讀可執行
                chmod 777 /tmp/sco
            要修改某目錄下所有的文件夾屬性爲可寫可讀可執行
                chmod 777 *
                把文件夾名稱用*來代替就可以了
            要修改/tmp/sco下所有的文件和文件夾及其子文件夾屬性爲可寫可讀可執行
                chmod -R 777 /tmp/sco
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章