1.用戶基本概述
1.什么是用戶?
用戶指的是能夠正常登錄Linux或Windows系統(可以理解為你租了房子,能夠正常入駐)
F:那Linux與Windows系統的用戶有什么區別? Q:本質都是登陸系統,只不過Linux支持多個用戶同時登陸。
F:難道Windows就不算多用戶操作系統嗎? Q:其實不是,在Windows系統中可以創建多個用戶,但不允許同一時刻多個用戶登陸系統,但Linux系統則允許同一時刻多個用戶同時登陸,登陸后相互之間操作并不影響。
2.Linux下的用戶有什么用
或者說我們為什么要創建用戶?
1.系統上的每一個進程(運行的程序),都需要一個特定的用戶運行2.通常在公司是使用普通用戶管理服務器,因為root權限過大,容易造成故障。
3.查看用戶
如何查看系統中所存在的用戶
1.查看當前登錄的用戶信息
[root@bgx ~]# id #查看當前所登陸的用戶信息 # uid:用戶id,系統只能識別uid,不能識別名字,人看名字 # gid:組id uid=0(root) gid=0(root) groups=0(root) [root@bgx ~]# id oldboy #查看其它用戶的信息 uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)
2.每一個進程都會由一個用戶身份運行
[root@bgx ~]# ps aux|less #簡單使用一下,不用理解 root 33782 0.0 0.0 0 0 ? R 02:46 0:00 [kworker/u256:0] root 35637 0.0 0.0 0 0 ? R 05:11 0:03 [kworker/0:2]
4.用戶存存放位置
Linux系統會將用戶的信息存放在/etc/passwd,記錄了用戶的信息,但沒有密碼信息,密碼被存放在/etc/shadow中。
也就是說這兩個文件非常的重要,不要輕易刪除與修改。
1./etc/passwd 配置文件解釋如下圖,或者man 5 passwd
2./etc/shadow 配置文件解釋如下圖,或者man 5 shadow
PS: 使用change修改密碼過期時間示例
4.最后我們需要了解下系統對用戶的一個約定?(約定娶你,就真的會娶嗎?)
用戶UID | 系統中約定的含義 |
---|---|
0 | 超級管理員,最高權限,有著極強的破壞能力 |
1~200 | 系統用戶,用來運行系統自帶的進程,默認已創建 |
201~999 | 系統用戶,用來運行用戶安裝的程序,所以此類用戶無需登錄系統 |
1000+ | 普通用戶,正常可以登陸系統的用戶,權限比較小,能執行的任務有限 |
超級管理員用戶 root 0
普通用戶
系統用戶:用來啟動系統的一些服務和進程的用戶,不可以登陸 1-999(centos7)1-499 (centos6)
可登陸用戶:能登錄系統的用戶 1000-65535(centos7)500-65535(centos6)
2.用戶相關命令
下面我們就圍繞著用戶的創建、變更、刪除等來講講涉及到的命令: useradd、usermod、userdel
1.新增用戶
使用useradd命令,注意: adduser命令軟鏈接指向useradd命令
useradd
Usage: useradd [options] LOGIN useradd -D useradd -D [options] 普通用戶的id是遞增,系統用戶的id是遞減的 -d 用來指定用戶的家目錄 -g 指定用戶組的id -G 指定用戶的附加組 -k 指定復制那個文件夾下的內容,需要和-m一起使用 -m 創建用戶的家目錄 -c "message" 指定用戶的描述信息 -N 不創建同名的組,以users為組 -s 指定用戶登錄后使用的shell -u 指定用戶的id —D 顯示系統的默認配置 -D [options] 可以修改系統的默認配置 -r 創建系統用戶
相關文件
/etc/default/useradd 創建用戶的默認文件
/etc/skel/* 默認復制的文件
#選項 # -u 指定要創建用戶的UID,不允許沖突 # -g 指定要創建用戶默認組 # -G 指定要創建用戶附加組,逗號隔開可添加多個附加組 # -d 指定要創建用戶家目錄 # -s 指定要創建用戶的bash shell /bin/bash /sbin/nologin # -c 指定要創建用戶注釋信息 # -M 給創建的用戶不創建家目錄 # -r 創建系統賬戶,默認無家目錄 #1.創建bgx用戶,UID5001,基本組students,附加組sa 注釋信息:2019 new student,登陸shell:/bin/bash [root@bgx ~]# groupadd sa [root@bgx ~]# groupadd students [root@bgx ~]# useradd -u 5001 -g students -G sa -c "2019 new student" -s /bin/bash bgx #2.創建mysql系統用戶,-M不建立用戶家目錄 -s指定nologin使其用戶無法登陸系統 [root@bgx ~]# useradd mysql -M -s /sbin/nologin [root@bgx ~]# useradd -r dba -s /sbin/nologin # 3 useradd od -u 7777 -G sa -d /tmp/od -s /sbin/nologin grep "7777" /etc/passwd # 4 SELinux getenforce # 查看 setenforce 0 # 臨時關閉 cat /etc/selinux/config SELINUX=disabled
2.修改用戶信息
使用usermod命令修改用戶信息
用戶修改usermode
-c 修改描述信息 -d 修改家目錄,默認不會創建新目錄,如果想移動家目錄,則需要使用-m -g 修改用戶組 -G 修改用戶的附加組,默認情況下是替換 -a 追加附加組 -l newname 修改用戶的登錄名稱 -L 鎖定用戶,不能登錄系統,修改密碼默認情況下回解鎖 -U 解鎖用戶 -s 修改用戶登錄后的shell -u 修改用戶的uid -e 年-月-日 修改用戶的過期時間,過期以后不能登錄
#選項 # -u 指定要修改用戶的UID # -g 指定要修改用戶基本組 # -G 指定要修改用戶附加組,使用逗號隔開多個附加組, 覆蓋原有的附加組,-aG追加 # -d 指定要修改用戶家目錄 -md 舊家搬新家 # -s 指定要修改用戶的bash shell # -c 指定要修改用戶注釋信息 # -l 指定要修改用戶的登陸名 # -L 指定要鎖定的用戶 # -U 指定要解鎖的用戶 #1.檢查此前創建的用戶信息 [root@bgx ~]# grep "bgx" /etc/passwd bgx5001:503:2019 new student:/home/bgx:/bin/bash #2.修改bgx用戶uid、gid,附加組 -a表示追加 [root@bgx ~]# groupadd -g 5008 network_sa [root@bgx ~]# groupadd -g 5009 devops [root@bgx ~]# usermod -u 6001 -g5008 -a -G 5009 bgx #3.修改bgx用戶的注釋信息, 用戶家目錄, 登錄shell, 登錄名 -l:改名字,-md,把環境也帶過去 [root@bgx ~]# usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx #檢查是否修改成功 [root@bgx ~]# grep "bgx" /etc/passwd bgx_lqz6001:5008:2019 new student:/bgx:/bin/sh [root@bgx ~]# id change_bgx uid=6001(change_bgx) gid=5008(network_sa) groups=5008(network_sa),503(sa),5009(devops) [root@bgx ~]# ll -d /bgx drwx------. 2 bgx_lqz network_sa 4096 2014-09-23 00:13 /bgx #4.鎖定用戶[擴展] [root@bgx ~]# echo "123" |passwd --stdin change_bgx [root@bgx ~]# usermod -L change_bgx #鎖定后會無法登陸系統 #5.解鎖用戶[擴展] [root@bgx ~]# usermod -U change_bgx
3.刪除賬戶
使用userdel命令刪除賬戶
刪除用戶 userdel
默認刪除用戶不刪除用戶的家目錄 -r 刪除家目錄 -f 強制刪除 默認情況下,用戶登錄狀態下是不能刪除用戶,強制刪除用戶以后,用戶還是可以用的
#選項 -r 刪除用戶同時刪除它的家目錄 #1.刪除user1用戶,但不刪除用戶家目錄和 mail spool [root@bgx ~]# userdel user1 [root@bgx ~]# ls /var/spool/mail/ #2.-r參數可以連同用戶家目錄一起刪除(慎用) [root@bgx ~]# userdel -r user1
4.其他
使用finger命名查詢用戶信息以及登錄信息(yum install finger),示例: finger UserName
使用chfn命令修改用戶信息(其實是修改注釋),示例: chfn UserName
使用chsh命令修改用戶登錄Bash Shell,示例: chsh UserName
使用who(當前有哪些用戶登錄了)、whoami、w檢查用戶登陸情況
查看用戶相關信息id
-g 只顯示組id -G 只顯示附加組id -u 只顯示用戶id -n 顯示名稱,需要和guG來配合使用
3.用戶擴展知識
1.創建流程
前面我們學習如何創建、修改、刪除用戶,接下來了解下用戶的?
1.useradd創建用戶時,系統會以/etc/login.defs、/etc/defaults/useradd兩個配置文件作為參照物,
如果在創建用戶時指定了參數則會覆蓋/etc/login.defs、/etc/defaults/useradd文件默認配置,如未指定則使用默認。
[root@bgx ~]# grep -Ev "^#|^$" /etc/login.defs [root@bgx ~]# cat /etc/login.defs MAIL_DIR /var/spool/mail # 定義了郵件路徑放在哪 PASS_MAX_DAYS 99999 # 密碼過期時間 PASS_MIN_DAYS 0 # 密碼最少0天 PASS_MIN_LEN 5 # 密碼長度 PASS_WARN_AGE 7 # 7天提醒 UID_MIN 1000 UID_MAX 60000 SYS_UID_MIN 201 SYS_UID_MAX 999 GID_MIN 1000 GID_MAX 60000 SYS_GID_MIN 201 SYS_GID_MAX 999 CREATE_HOME yes # 是否創建home UMASK 077 USERGROUPS_ENAB yes # 用戶不指定組,默認創建一個同名組 ENCRYPT_METHOD SHA512 # 密碼加密算法 [root@bgx ~]# cat /etc/default/useradd GROUP=100 HOME=/home #把用戶的家目錄建在/home中。 INACTIVE=-1 #是否啟用賬號過期停權,-1表示不啟用。 EXPIRE= #賬號終止日期,不設置表示不啟用。 SHELL=/bin/bash #新用戶默認所有的shell類型。 SKEL=/etc/skel #配置新用戶家目錄的默認文件存放路徑。 CREATE_MAIL_SPOOL=yes #創建mail文件。
2.當使用useradd創建用戶時,創建的用戶家目錄下會存在 .bash_ 環境變量相關的文件,這些環境變量文件默認從/etc/skel目錄中拷貝。
這個默認拷貝環境變量位置是由/etc/defaults/useradd配置文件中定義的。
#故障案例,在當前用戶家目錄執行了rm -rf .,下次登錄系統時出現-bash-4.1$,如何解決! -bash-4.1$ cp -a /etc/skel/.bash ./ -bash-4.1$ exit [root@bgx ~]# #重新連接即可恢復
2.設置、修改密碼
創建用戶后,如需要使用該用戶登陸系統則需要為用戶設定密碼,設定密碼使用passwd命令。建議密碼復雜度高一些、長度大于10、出現各種特殊字符、無任何規律(不要出現名字,電話,生日等)
PS: 注意事項
1.普通用戶只允許變更自己的密碼,無法修改其他人密碼,并且密碼長度必須8位字符
2.管理員用戶允許修改任何人的密碼,無論密碼長度多長或多短。
#1.使用passwd命令修改用戶密碼 # passwd #給當前用戶修改密碼 # passwd root #給root用戶修改密碼 # passwd oldboy #給oldboy用戶修改密碼,普通用戶只能自己修改自己 #2.驗證如下幾項指標 # passwd #root管理員用戶登陸,修改root用戶密碼 # passwd lqz #root用戶登陸,修改其他用戶的密碼 $ passwd root #普通用戶修改root管理員密碼 # echo "123" | passwd --stdin lqz #非交互式修改密碼 # 批量創建100個用戶,密碼都為123456 for i in {1..100} do useradd test$1 echo "123456" |passwd --stdin test$1 done #3.系統內置變量生成隨機字符串(對隨機字符串進行md5加密) [root@bgx ~]# echo $RANDOM|md5sum|cut -c 1-10 d09fe9b1xs [root@bgx ~]# echo $(echo $RANDOM|md5sum |cut -c 5-14) |tee pass.txt| passwd --stdin lqz #4.mkpasswd生成隨機字符串, -l設定密碼長度,-d數子,-c小寫字母,-C大寫字母,-s特殊字符 [root@bgx ~]# yum install -y expect //需要安裝擴展包 [root@bgx ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4 |K&13bR)i/
PS: 推薦密碼保存套件工具,支持windows、MacOS、Iphone以及瀏覽器插件Lastpass官方網站
/etc/passwd文件
用戶名稱
密碼,使用x來占位
uid
gid
描述信息
家目錄
登錄后使用的shell
設置密碼passwd
passwd [OPTION...]-d 刪除指定用戶的密碼,刪除密碼之后就不能登錄 -l 鎖定用戶 -u 解鎖用戶 -e 在下次登錄以后強制用戶修改密碼 -f 強制操作 -x maxday 密碼的最長使用時間 -n minday 密碼的最短使用時間 -w warnday 密碼過期前多長時間提醒 -i inactiveday 密碼過期多長時間以后禁用 --stdin 從標準輸入讀取密碼 echo '123'|passwd --stdin peiqi
存放文件/etc/shadow
用戶名
密碼 $加密方式(默認sha512)$鹽$加密后的字符串$
從1970年1月1日到最近一次修改密碼經過的時間
密碼的最短使用時間(0表示隨時可以修改)
密碼的最長使用時間(99999表示永不過期)
密碼過期多長時間提醒(默認是一周)
密碼過期多長時間鎖定
從1970年1月1日開始算起,多長時間后賬號失效
qiao:$6$HBl7BPCJk6JaLtw2$B4NzlqpCrMczVkK51Rjimw7Wp.oRfsCzrKEzmhiBEAfk9T7h.YleYZ3h3qV6Fv.bZnJh666tr36TBJHhCi6M90::0:99999:7:::
密碼的復雜性策略
必須包括數字、大小寫、特殊字符
密碼必須12位以上
不能為弱口令
必須為隨機密碼
3個月或者半年修改一次
機器免密登錄
非對稱加密,公鑰登錄(在已登錄上機器機器上生成公鑰,copy公鑰給要登錄的機器):
ssh-keygen 一路回車 ssh-copy-id 要登錄的機器
修改用戶密碼策略 chage
-E -I -m -M -W change login 可以使用交互式的修改密碼策略
chfn 修改用戶的個人描述信息
4.用戶如何提權
往往公司的服務器對外都是禁止root用戶直接登錄,所以我們通常使用的都是普通用戶,那么問題來了?
當我們使用普通用戶執行/sbin目錄下的命令時,會發現沒有權限運行,這種情況下我們無法正常的管理服務器,那如何才能不使用root用戶直接登錄系統,同時又保證普通用戶能完成日常工作?
PS: 我們可以使用如下兩種方式: su、sudo
1.su切換用戶,使用普通用戶登錄,然后使用su命令切換到root。優點:簡單 缺點:需要知道root密碼
2.sudo提權,當需要使用root權限時進行提權,而無需切換至root用戶,優點:安全、方便 缺點:復雜
1.su身份切換
在使用su切換前,我們需要了解一些預備知識,比如shell分類、環境變量配置文件有哪些
1.Linux Shell主要分為如下幾類交互式shell,等待用戶輸入執行的命令(終端操作,需要不斷提示)非交互式shell,執行shell腳本,
腳本執行結束后shell自動退出登陸shell,需要輸入用戶名和密碼才能進入Shell,日常接觸的最多的一種非登陸shell,不需要輸入用戶和密碼就能進入Shell,比如運行bash會開啟一個新的會話窗口
2.bash shell配置文件介紹(文件主要保存用戶的工作環境)個人配置文件:~/.bash_profile ~/.bashrc 。
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrcprofile類文件, 設定環境變量, 登陸前運行的腳本和命令。
bashrc 類文件, 設定本地變量, 定義命令別名PS: 如果全局配置和個人配置產生沖突,以個人配置為準。
3.登陸系統后,環境變量配置文件的應用順序是?登錄式shell配置文件執行順序: /etc/profile->/etc/profile.d/.sh->/.bash_profile->/.bashrc->/etc/bashrc
非登陸式shell配置文件執行順序: ~/.bashrc->/etc/bashrc->/etc/profile.d/.shPS: 驗證使用echo在每行添加一個輸出即可
4.說了這么多預備知識,那這些和su命令切換用戶有什么關系?su - username屬于登陸式shell,su username屬于非登陸式shell,區別在于加載的環境變量不一樣。su username 屬于非登陸式shell
普通用戶su -可以直接切換至root用戶,但需要輸入root用戶的密碼。超級管理員root用戶使用su - username切換普通用戶不需要輸入任何密碼。
#1.普通用戶使用su切換root [lqz@node1 ~]$ su 密碼:#輸入root的密碼 [root@node1 lqz]# pwd /home/lqz #2.普通用戶使用su -切換到root,會加載root的環境變量 [lqz@node1 ~]$ su - 密碼: [root@node1 ~]# pwd /root #3.以某個用戶的身份執行某個服務,使用命令su -c username [root@bgx ~]# su - lqz -c 'ifconfig' [root@bgx ~]# su - lqz -c 'ls ~' #4 其他 yum provides pstree yum install psmisc pstree # 5 關閉root遠程登陸,普通用戶登進來,su - 切換到root用戶 vim /etc/ssh/sshd_config PermitRootLogin yes # 設成no
切換用戶
su [options] [-] [USER [arg]...]
切換用戶的方式
完整切換:su - username 登錄式切換,環境變量等都會切換
不完整切換:su username 不會切換用戶的環境變量家目錄等
root切換普通用戶不需要密碼,非root用戶切換需要密碼
切換用戶執行命令,并在切換會來
[root@localhost ~]#su - peiqi -c "whoami" peiqi
2.sudo提權
su命令在切換用戶身份時,如果每個普通用戶都能拿到root用戶的密碼,當其中某個用戶不小心泄漏了root的密碼,那系統會變得非常不安全。為了改進這個問題,從而產生了sudo這個命令。
其實sudo就相當于給某個普通用戶埋下了浩克(hulk)的種子,當需要執行一些高級操作時,進行發怒,但正常情況下還是普通人,還是會受到限制。
1.如何快速埋下hulk的種子呢?
#1.快速配置sudo方式[先睹為快] [root@node1 ~]# usermod bgx -G wheel # 把用戶加到wheel組中 [root@node1 ~]$ sudo tail -f /var/log/secure #sudo審計日志 #2.一般正常配置sudo方式 [root@www ~]# #visudo => vim /etc/sudoers #1.用戶名 2.主機名=(角色名) 4.命令名 bgx ALL=(ALL) /usr/bin/yum,/usr/sbin/useradd #允許使用sudo執行命令 oldboy ALL=(ALL) NOPASSWD:/bin/cp, /bin/rm #NOPASSWD不需要使用密碼 visudo -c # 檢查剛剛編輯的是否有錯誤 sudo -l # 對主機有哪些權限
2.埋下了hulk種子后又如何提權使用呢?
#1.切換普通用戶 [root@bgx ~]# su - lqz #2.檢查普通用戶能提權的命令 [lqz@lqz ~]$ sudo -l User lqz may run the following commands on this host: (ALL) ALL #3.普通用戶正常情況下是無法刪除opt目錄的 [lqz@lqz ~]$ rm -rf /opt/ rm: cannot remove `/opt: Permission denied #4.使用sudo提權,需要輸入普通用戶的密碼。 [lqz@lqz ~]$ sudo rm -rf /opt
3.開啟某個命令的使用權限
提升的權限太大,能否有辦法限制僅開啟某個命令的使用權限?其他命令不允許?
第一種方式:使用sudo中自帶的別名操作,將多個用戶定義成一個組,這個組只有sudo認可
[root@bgx ~]# visudo #也可以使用vi /etc/sudoers來配置 # 1.使用sudo定義分組,這個系統group沒什么關系 User_Alias OPS = oldboy,alex User_Alias DEV = bgx,py # 2.定義可執行的命令組,便于后續調用 Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start Cmnd_Alias STORAGE = /bin/mount, /bin/umount Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall # 3.使用sudo開始分配權限 OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES DEV ALL=(ALL) SOFTWARE,PROCESSES #4.登陸對應的用戶使用 sudo -l 驗證權限
第二種方式:使用groupadd添加組,然后給組分配sudo的權限,如果有新用戶加入,直接將用戶添加到該組.
#1.添加兩個真實的系統組, group_dev group_op [root@www ~]# groupadd group_dev [root@www ~]# groupadd group_op #2.添加兩個用戶, group_dev(user_a user_b) group_op(user_c user_d) [root@www ~]# useradd user_a -G group_dev [root@www ~]# useradd user_b -G group_dev [root@www ~]# useradd user_c -G group_op [root@www ~]# useradd user_d -G group_op #3.記得添加密碼 [root@www ~]# echo "1" | passwd --stdin user_a [root@www ~]# echo "1" | passwd --stdin user_b [root@www ~]# echo "1" | passwd --stdin user_c [root@www ~]# echo "1" | passwd --stdin user_d #4.在sudo中配置規則 [root@www ~]# visudo Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start Cmnd_Alias STORAGE = /bin/mount, /bin/umount Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall %group_dev ALL=(ALL) SOFTWARE %group_op ALL=(ALL) SOFTWARE,PROCESSES #5.檢查sudo是否配置有錯 [root@www ~]# visudo -c /etc/sudoers: parsed OK #6.檢查user_a,和user_d的sudo權限 [user_a@www.oldboyedu.com ~]$ sudo -l User user_a may run the following commands on www: (ALL) /bin/rpm, /usr/bin/yum [user_d@www.oldboyedu.com ~]$ sudo -l User user_d may run the following commands on www: (ALL) /bin/rpm, /usr/bin/yum, /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
4.sudo命令的執行流程
普通用戶執行sudo命令時, 會檢查/var/db/sudo是否存在時間戳緩存
如果存在則不需要輸入密碼, 否則需要輸入用戶與密碼
輸入密碼會檢測是否該用戶是否擁有該權限
如果有則執行,否則報錯退出
執行本身不能執行的命令
sudo 配置文件為/etc/sudoers
peiqi ALL=(ALL) NOPASSWD:ALL 其中的NOPASSWD 是不需要輸入密碼
5.用戶組的管理
1.什么是用戶組
其實就是一種邏輯層面的定義,邏輯上將多個用戶歸納至一個組,當我們對組操作,其實就相當于對組中的所有用戶操作。
2.組有類別
對于用戶來說,組有幾種類別?
基本組,用戶只能有一個基本組,創建時可通過-g指定,如未指定則創建一個默認的組(與用戶同名),簡稱私有組
附加組,基本組不能滿足授權要求,創建附加組,將用戶加入該組,用戶可以屬于多個附加組
3.組的信息位置
組賬戶信息保存在/etc/group和/etc/gshadow兩個文件中。重點關注group
1./etc/group 配置文件解釋如下圖
head -1 /etc/group
2./etc/gshadow 配置文件解釋如下圖
超級用戶組 root 0
普通用戶組
系統用戶組 1-999(centos7) 1-499(centos6)
可登陸用戶組 1000-65535(centos7)500-65535 (centos6)
groupadd -g 指定組id -r 創建系統用戶組
組的文件
/etc/group
組名
密碼占位
gid
組成員
/etc/gshadow
組名
密碼
組管理員的密碼
組成員
1 groupadd新增組
使用groupadd命令新增組,groupadd [-g GID] groupname
#創建基本組, 不指定gid [root@bgx ~]# groupadd no_gid [root@bgx ~]# tail -n1 /etc/group no_gid1000: #創建基本組, 指定gid為5555 [root@bgx ~]# groupadd -g 5555 yes_gid [root@bgx ~]# tail -n1 /etc/group yes_gid5555: #創建系統組,gid從201-999 [root@bgx ~]# groupadd -r sys_group [root@bgx ~]# tail -n1 /etc/group sys_group990:
2 groupmod修改組
使用groupmod命令修改組
#-g 修改組gid [root@bgx ~]# groupmod -g 1111 no_gid [root@bgx ~]# tail -1 /etc/group no_gid1111: #-n 修改組名稱(把yes_gid名字改為active_group) [root@bgx ~]# groupmod yes_gid -n active_group [root@bgx ~]# tail -1 /etc/group active_group5555:
3.groupdel刪除組,
刪除時需要注意,如果用戶存在基本組則無法直接刪除該組,如果刪除用戶則會移除默認的私有組,而不會移除基本組。
# 私有組的情況,直接刪除用戶,組也就沒了 [root@bgx ~]# userdel jack #刪除組 [root@bgx ~]# groupdel active_group #刪除用戶附加組 [root@bgx ~]# id lqz uid=1069(lqz) gid=5005(lqz) groups=5005(lqz),5004(devops) [root@bgx ~]# groupdel devops [root@bgx ~]# id lqz uid=1069(lqz) gid=5005(lqz) groups=5005(lqz) #無法刪除用戶基本組 [root@bgx ~]# groupdel network_sa groupdel: cannot remove the primary group of user 'bgx_lqz' #只有刪除用戶或者用戶變更基本后,方可刪除該組
4 gpasswd設置組密碼
使用gpasswd設置組密碼[擴展,可以不會
[root@bgx ~]# groupadd devops [root@bgx ~]# gpasswd devops Changing the password for group devops New Password: Re-enter new password:
5 newgrp切換基本組身份
使用newgrp命令切換基本組身份[擴展,可以不會
#1.檢查賬戶信息 [root@bgx ~]# useradd lqz [root@bgx ~]# id lqz uid=1069(lqz) gid=5005(lqz) groups=5005(lqz) #2.切換普通用戶 [root@bgx ~]# su - lqz #3.創建新文件,查看文件的屬主和屬組 [lqz@bgx ~]$ touch file_roots [lqz@bgx ~]$ ll -rw-rw-r-- 1 lqz lqz 0 Jun 13 10:06 file_roots #4.使用newgrp切換到devops組 [lqz@bgx ~]$ newgrp devops Password: #5.創建文件,檢查屬主和屬組 [lqz@bgx ~]$ touch file_test [lqz@bgx ~]$ ll -rw-rw-r-- 1 lqz lqz 0 Jun 13 10:06 file_roots -rw-r--r-- 1 lqz devops 0 Jun 13 10:08 file_test
修改組信息
groupmod
-g 修改gid -n 修改組名
刪除組
groupdel 刪除組
-
Linux
+關注
關注
87文章
11292瀏覽量
209326 -
WINDOWS
+關注
關注
3文章
3541瀏覽量
88623 -
程序
+關注
關注
117文章
3785瀏覽量
81003
原文標題:Linux用戶管理終極指南:從基礎到進階,一篇就夠!
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論