關於UID和GID的創建、修改、刪除;簡要舉例


用戶、組和權限 

   安全3A資源分派   

 (authentication)認證

 (authorization)授權

 (accounting)審計

   user( 用戶)

Linux用戶:Username/UID   (用戶的名稱和用戶的UID)

 管理員:root,0   管理員的UID是0  (一般系統默認root為管理員,用戶UID為0的都可以作為管理員)

 普通用戶:1-65535 

 普通用戶分為兩種:

     系統用戶:1-499(CentOS6),1-999(CentOS) 

       對守護進程獲取資源進行權限分配

     登錄用戶:500+(CentOS6),1000+(centos7)

       通過交互式交互式登錄

【用戶是UID、組是GID】

 

 

 

   group(組)一些用戶或組的集合 稱之為組

 Linux組:Groupnname/GID   (組的名稱和組的GID)

 管理員組:root,0  管理員組的GID是0

 系統組:1-499(centos6) 1-999(centos7) 

 普通組:500+(centos 6) 1000+(centos 7)

 對於一個普通用戶而言可以有多個不同的組,分別稱之為用戶的基本組(主組)和附加組;基本組

 組名與用戶名相同,切僅僅包含一個用戶,也叫私有組。基本組以外的組屬於用戶的附加組 

 例如:[root@MKB ~]# cat /etc/passwd

 執行結果:root:x:0:0:root,chfn,xiaomage,sdad:/root:/bin/bash

 格式:(用戶名:密碼:UID:GID:主組,附加組:家目錄:用戶默認的shell)

 

        Linux組的類別

 用戶的主要組稱為(主組):

 用戶必須屬於一個並且只有一個主組

 組名同用戶名,且僅包含一個用戶稱為(私有組)

 用戶的付加組稱為(輔助組):

    一個用戶可以屬於零個或者多個輔助組

 例如: ~]# groups   (查看當前所在組)

 執行結果:  root          

 例如: ~]# groups bin(查看用戶主組,有沒有附加組)

 執行結果:   bin : bin daemon sys   (用戶):(主組)(附加組)

 例如: ~]# id bin  (顯示指定用戶或當前用戶的用戶與組信息) 

 執行結果 : uid=1(bin) gid=1(bin) groups=1(bin),2(daemon),3(sys)                                        (用戶)(主組)    組的列表= 主組,輔助組,附加組 

 例如: ~]# id -u makangbo  (僅顯示有效用戶ID)

 執行結果:500    (命令加選項,用戶id)

 例如:  ~]# getent passwd makangbo (查看家目錄的路徑信息)

        makangbo:x:500:500::/home/makangbo:/bin/bash

   (用戶名:密碼:UID:GID:用戶注釋信息:用戶的家目錄:用戶默認的shell)

 

 

 security context (安全上下文)

 運行中的程序:進程(process)

 以進程發起者的身份運行:例如# root:/bin/cat

                         例如# xiaomag:/bin/cat

 進程所能訪問資源的權限取決於進程的運行者的身份

 而不是取決於資源的所有者 (人不一樣權限不一樣,跟程序無關)

 

 

        

    Linux用戶和組的主要配置文件:

         /etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

         /etc/group:組及其屬性信息

         /etc/shadow:用戶密碼及其相關屬性

         /etc/gshadow:組密碼及其相關屬性

 ~]# pwunconv  (密碼從shadow轉換到passwd)

 ~]# pwconv   (密碼不轉換)

 

   passwd 文件格式  (用戶及其屬性信息)

login name:登錄用戶名(xiaomage)

passwd: 密碼 (x)

UID:用戶身份編號(1000)

GID:登錄默認所在組編號(1000)

GECOS:用戶全名或注釋

home directory:用戶主目錄(/home/xiaomag)

shell:用戶默認使用shell(/bin/bash)

例如:~]# cat /etc/passwd

執行結果:xiaomage:x:3010:3010::/home/xiaomage:/bin/bash

   格式:(用戶:密碼:UDI:GID:用戶全名或注釋:家目錄:當前所用的shell)

 

 

                                                                                       

    shadow 文件格式  (用戶密碼及其相關屬性)

 登錄用戶

 用戶密碼:一般用sha512加密

 從1970年1月1日起到密碼最近一次被更改的時間

 密碼再過幾天可以被變更(0表示隨時可被變更)

 密碼再過幾天必須被變更(9999表示永不過期)

 密碼過期前幾天系統提示用戶(默認為一周)

 密碼過期幾天后帳號會被鎖定

 從1970年1月1日算起,多少天后帳號失效。

 例如:~]# cat /etc/shadow

 執行果結果:xiaomage:$6$3C3XJDxs$2sUoIOWp3IoHu6jzz3lXVVCmUcq.ABX8LQv/YywLSFWhowlmN1eWKWUWmkl.HQ.gYufi030F3m0XnfE9jLslo/:17015:0:99999:7:::

 格式   (用戶名:加了密的密碼:最近一次更改密碼的日期:密碼的最小使用期限:密碼的最大使用期限:提示密碼警告時間段:密碼禁用期:賬戶過期日期:保留字段)

 

       密碼的加密解密機制

 加密:明文- 密文

 解密: 密文- 明文

 單項加密:哈希算法,原文不同,密文必不同

 相同算法定長輸入,獲取密文不可逆推原始數據

 雪崩效應:初始條件的衛校改變,引起結果的巨大改變

  sha256:256bits

  sha512:512bits

 更改加密算法 authconfig --passalgo=sha256 --update

 

 

     group文件格式   (組及其屬性信息)

 群組名稱

 群組密碼:通常不設定,密碼是被記錄在/etc/gshadow

 GID:就是群組的ID

 以當前組為附加組的用戶列表(分隔符為逗號)

 例如:~]# cat /etc/group 

 執行結果   bin:x:1:bin,daemon

  格式    (組名稱:組密碼:組GID:當前組為組的附加組用戶列表,以逗號分隔開)

  

    gshdow文件格式    (組密碼及其相關屬性)

群組名稱 

群組密碼

組管理員列表:組管理員列表,更改組密碼和成員

以當前組為附加組的用戶列表:(分隔符為逗號)  

 

 

    文件操作

 vipw和vigr  (編輯密碼、組、影子密碼或影子組文件)

 pwck (檢查密碼的完整性)

 grpck(檢查組組文件的完整性) 

 

vipw, vigr - 編輯密碼、組、影子密碼或影子組文件。

 

vipw [選項]

vigr [選項]

  描述 vipw 和 vigr 命令分別編輯 /etc/passwd 和 /etc/group 文件。使用 -s 標識時

       ,將編輯這些文件的影子版,即分別為 /etc/shadow 和 /etc/gshadow。這些程序

       將設置相應的鎖,以防止文件損壞。尋找編輯器時,首先嘗試環境變量 $VISUAL,

       然后是環境變量 $EDITOR,最后是默認編輯器 vi(1)。

選項:

     

-g, --group

           編輯 group 數據庫。

 

       -h, --help

           現實幫助信息並退出。

 

       -p, --passwd

           編輯 passwd 數據庫。

 

       -q, --quiet

           安靜模式。

 

       -R, --rootCHROOT_DIR

           適用於chroot_dir目錄的變化和使用從chroot_dir目錄的配置文件。

 

       -s, --shadow

           編輯 shadow 或 gshadow 數據庫。

 

       pwck (檢查密碼的完整性)

 

 

 

  用戶管理命令

  useradd (增加用戶)  

  usermod (修改用戶)

  userdel  (刪除用戶)

 

  組帳號維護命令

  groupadd (建立組)

  groupmod (修改組)

  groupdel (刪除組)

 

 

  useradd - 創建一個新用戶或更新默認新用戶信息

  

       useradd [選項] 登錄

 

       useradd -D

 

       useradd -D [選項]

 

描述

       如果使用時不帶 -D 選項,useradd 命令使用命令行上指定的值和系統的默認值創

       建一個新用戶。根據命令行選項,useradd 命令也會更新系統文件和創建新用戶的

       主目錄並復制初始文件。

 

       默認上,也會為用戶創建組

       

       

         -u, --uidUID

           用戶 ID 的數字值。此值必須為唯一的,除非使用了 -o 選項。此值必須非負

           ,默認使用大於等於 UID_MIN,且大於任何其他用戶 ID 最小值。

         -o, --non-unique

           允許使用重復的 UID 創建用戶賬戶。

           此選項只有和 -u 選項組合使用才有效。         

         -g, --gidGROUP

           用戶初始登陸組的組名或號碼。組名必須已經存在。組號碼必須指代已經存在

           的組。    指明用戶所屬基本組,可為組名也可為GID

         -c, --commentCOMMENT

           任何字符串。通常是關於登錄的簡短描述,當前用於用戶全名。 用戶注釋信息

         -d, --home-dir HOME_DIR

           以指定的路徑(不存在)為家目錄

         -s, --shellSHEL

           指明用戶的默認shell程序;可用在列表/etc/shell 文件中

         -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]

           為用戶指明附加組,組必須事先存在

           受到了 -g 選項給定的組同樣的限制。

         -N, --no-user-group

           不創建私用組做主組,使用users做主組

         -r, --system

           創建系統用戶

         -m, --create-home

           如果不存在,則創建用戶主目錄。骨架目錄中的文件和目錄(可以使用 -k 選

           項指定),將會復制到主目錄。

 

練習:1

創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser

#useradd testuser -u 1234 -g bin -G root,ftp -m -d home/testdir/testuser -s /bin/csh

(命令選項加家目錄名稱)(加選項-u創建UID)(-g創建主組) (-G創建附加組)(-d創建家目錄路徑-  m配合-d使用具體的看上面選項)

 

     usermod (修改用戶)

  usermod [選項] 登錄

描述   usermod 修改系統賬戶文件和在命令行上指定的相關更改。

 

       -c, --commentCOMMENT   ('xiaomage')

       用戶密碼文件中注釋字段的新值。通常使用 chfn(1) 工具對其進行修改。新的注釋信息              -u, --uidUID

           用戶 ID 的新數值。

           這個值必須是唯一的,除非使用了 -o 選項,必須是非負值。

       -g, --gidGROUP

        新基本組GID   用戶的新初始登錄組的組名或數字代號。此組必須存在。

                      用戶主目錄中,屬於原來的主組的文件將轉交新組所有。

       G, --groups GROUP1[,GROUP2,...[,GROUPN]]]

  新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append(附加,貼上)

       -s, --shellSHELL

       用戶的新登錄 shell 的名稱。將此字段設置為空會讓系統選擇默認的登錄 shell

       -d, --homeHOME_DIR

       新家目錄不會自動創建,原家目錄的文件不會移動至新家目錄;

       若要創建新家目錄並移動原家目錄數據,同時使用-m選項。

       -m, --move-home              

      將家目錄內容移至新位置 (僅於 -d 一起使用)

       -l, --loginNEW_LOGIN

       修改為新的名字

      -L, --lock

        指定用戶名字,在/etc/shadow,密碼欄中增加!字符進行鎖定

      -U, --unlock

        指定用戶,在/etc/shadow,密碼欄中刪除!字符  進行解鎖                                     -e, --expiredateEXPIRE_DATE

        指明 用戶賬戶將過期的日期。日期以 YYYY-MM-DD 格式指定。

      

      -f, --inactiveINACTIVE

        密碼過期之后,賬戶被徹底禁用之前的天數。

        0 表示密碼過期時,立即禁用賬戶;-1 表示不使用這個功能。

        此選項需要一個 /etc/passwd 文件。

       

      userdel  (刪除用戶)

   

      userdel [選項] 登錄

 

描述   userdel 修改系統賬戶文件,刪除與用戶名 LOGIN 相關的所以項目。給出的用戶

       名必須存在。

   

       -r, --remove   刪除用戶家目錄

       用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。在其它文件系統中

       的文件必須手動搜索並刪除。

練習:2

修改testuser uid:4321,主組:root,輔助組:nobody, loginname:test,home:/home/test 家數據遷移

 ~ ]# usermod -u 4321 -g root -G nobody -l test -m -d /home/test testuser

(命令加-u選項修改UID)(-g修改主組 -G改新家目錄)(-l改附加組) (-d創建新家目錄-m般原始數據遷移到新家目錄)(原家目錄)

 

 

 

練習:3

批量創建帳號:user1...user10  uid:3000-3009,shell:/bin/csh,home:/testdir/username

   passwd:usernamepass  

    注意家目錄相關配置,使用戶正常登錄

先來創建用戶

]# vim u.txt 用編輯器 編輯一個自定義名稱的txt文檔  文檔格式看下面

]# cat u.txt    查看文檔的內容

user:x:3000:3000::/home/testdir/user:/bin/csh

user1:x:3001:3001::/home/testdir/user1:/bin/csh

user2:x:3002:3002::/home/testdir/user2:/bin/csh

user3:x:3003:3003::/home/testdir/user3:/bin/csh

user4:x:3004:3004::/home/testdir/user4:/bin/csh

user5:x:3005:3005::/home/testdir/user5:/bin/csh

user6:x:3006:3006::/home/testdir/user6:/bin/csh

user7:x:3007:3007::/home/testdir/user7:/bin/csh

user8:x:3008:3008::/home/testdir/user8:/bin/csh

user9:x:3009:3009::/home/testdir/user9:/bin/csh

]# newusers u.txt  (新增用用戶的命令,新增文檔內的用戶)

~]# ll /home/testdir/ (查看路徑是否成功)

總用量 40

drwx------. 2 user  user  4096 8月   2 19:58 user

drwx------. 2 user1 user1 4096 8月   2 19:58 user1

drwx------. 2 user2 user2 4096 8月   2 19:58 user2

drwx------. 2 user3 user3 4096 8月   2 19:58 user3

drwx------. 2 user4 user4 4096 8月   2 19:58 user4

drwx------. 2 user5 user5 4096 8月   2 19:58 user5

drwx------. 2 user6 user6 4096 8月   2 19:58 user6

drwx------. 2 user7 user7 4096 8月   2 19:58 user7

drwx------. 2 user8 user8 4096 8月   2 19:58 user8

drwx------. 2 user9 user9 4096 8月   2 19:58 user9

~]# cat /etc/passwd   (查看用戶信息)

user:x:3000:3000::/home/testdir/user:/bin/csh

user1:x:3001:3001::/home/testdir/user1:/bin/csh

user2:x:3002:3002::/home/testdir/user2:/bin/csh

user3:x:3003:3003::/home/testdir/user3:/bin/csh

user4:x:3004:3004::/home/testdir/user4:/bin/csh

user5:x:3005:3005::/home/testdir/user5:/bin/csh

user6:x:3006:3006::/home/testdir/user6:/bin/csh

user7:x:3007:3007::/home/testdir/user7:/bin/csh

user8:x:3008:3008::/home/testdir/user8:/bin/csh

user9:x:3009:3009::/home/testdir/user9:/bin/csh

 

以上就是創建用戶成功了

 

賬戶都有了但是沒有密碼,這就不正常了,下面要批量創建密碼

 ~]# vim m.txt 用編輯器 編輯一個自定義名稱的txt文檔 上面已經有個用戶的文檔了,

               盡量不要搞重名的文檔,不然會報錯  文檔格式看下面

 ~]# cat m.txt    查看文檔內容

user:userpass

user1:user1pass newusers

user2:user2pass

user3:user3pass

user4:user4pass

user5:user5pass

user6:user6pass

user7:user7pass

user8:user8pass

user9:user9pass

            文檔創建成功 ,接下來讀取

~]# cat m.txt |chpasswd   (把文檔用管道符 傳給設置密碼的命令)

~]# cat /etc/shadow     (查看用戶密碼及其相關屬性)

user1:$6$9RYuW/M8iMIv$e5rTqpt4bPWycu9dflgmlmTxqsC5V9KVF.IvANn16YxI.QC3gRII7zXdBnEDOiiKY70SxtDeqeA/i76RgMSFh.:17015:0:99999:7:::

user2:$6$gmd.k/BQ$1Ql1A6PNP7EVG.BVfinrZYsO0vDpyuk8mp7pGkE.tkHdIQQcjQqfeI4JjtnTq5VSi.OmCy9/TvxscuYazQxy71:17015:0:99999:7:::

user3:$6$iUyAeZuXLR/Sn$Oyg98sTOyQL49LOv1.xPg4sjj6nrOHtPzIza8rXn9LFzsTg2Nfo/lODx5SKrbp9ymlZq3eBRcERoWvn8x7ptx/:17015:0:99999:7:::

user4:$6$WgQDi/WewTe$ajT38DDqkSdhTMkvdAW8koAqiWe85jo8CtrunpVu3mcF7HleO6Qr3W1u2hLkrPzPr2rAOL5F63PV7JmdzNXn70:17015:0:99999:7:::

user5:$6$RpHcooAEzPWfXE$K2enpej7BLJptsBVfgrEnhKIYVNtWHEqF5kEb450QfQ7RvGcSvyIxFhUrfz3APU68McEIlFpVR4Hj2jN/WK7J.:17015:0:99999:7:::

user6:$6$VNZIrZd/$ANJbrUlG62NKiuxM5SmiMx8.NGwdcQYcFOHbXzbIMAw1LO8DZmSoXoHvvObMaVmVd4U4MjT.JrDQRBZF5ZAqE/:17015:0:99999:7:::

user7:$6$oR0Alfvtp$2ZC6f8O3A09sc.eXZXpo3DPRnLLBWmY5AOG7mRXPwc50xg/jmmlEifLYh/mres8K9Q3VMjr.Cr9MSszcENEZT0:17015:0:99999:7:::

user8:$6$QVxA9n13$ShUI1NGBOOI5DsLcZXpUsUHPTMqIcWDn9C5aZlklrkstopXD8/ToJwvDzgj5wxF8YOXgq5XLOcVRHaY7HPoUA.:17015:0:99999:7:::

user9:$6$eWpxt/KyUX1FmNgB$ByklE1y2ESnglrfvPpOYxoaJZnIhgs/jmj4empwc.T1qILZP11zwCwNyaCBMT/3A9DBNQdIU8QP4Fvro4QLTr1:17015:0:99999:7:::

這就是成功了,當然密碼經過加密了。

 

下面找一個沒設置密碼的做對比:test:!!:17015:0:99999:7:::    看格式對比就行了


免責聲明!

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



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