1.用戶基本概述
1.什么是用戶?
用戶指的是能夠正常登錄Linux或Windows系統(tǒng)(可以理解為你租了房子,能夠正常入駐)
F:那Linux與Windows系統(tǒng)的用戶有什么區(qū)別? Q:本質(zhì)都是登陸系統(tǒng),只不過Linux支持多個(gè)用戶同時(shí)登陸。
F:難道Windows就不算多用戶操作系統(tǒng)嗎? Q:其實(shí)不是,在Windows系統(tǒng)中可以創(chuàng)建多個(gè)用戶,但不允許同一時(shí)刻多個(gè)用戶登陸系統(tǒng),但Linux系統(tǒng)則允許同一時(shí)刻多個(gè)用戶同時(shí)登陸,登陸后相互之間操作并不影響。
2.Linux下的用戶有什么用
或者說我們?yōu)槭裁匆獎(jiǎng)?chuàng)建用戶?
1.系統(tǒng)上的每一個(gè)進(jìn)程(運(yùn)行的程序),都需要一個(gè)特定的用戶運(yùn)行2.通常在公司是使用普通用戶管理服務(wù)器,因?yàn)閞oot權(quán)限過大,容易造成故障。
3.查看用戶
如何查看系統(tǒng)中所存在的用戶
1.查看當(dāng)前登錄的用戶信息
[root@bgx ~]# id #查看當(dāng)前所登陸的用戶信息 # uid:用戶id,系統(tǒng)只能識(shí)別uid,不能識(shí)別名字,人看名字 # 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.每一個(gè)進(jìn)程都會(huì)由一個(gè)用戶身份運(yùn)行
[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系統(tǒng)會(huì)將用戶的信息存放在/etc/passwd,記錄了用戶的信息,但沒有密碼信息,密碼被存放在/etc/shadow中。
也就是說這兩個(gè)文件非常的重要,不要輕易刪除與修改。
1./etc/passwd 配置文件解釋如下圖,或者man 5 passwd
2./etc/shadow 配置文件解釋如下圖,或者man 5 shadow
PS: 使用change修改密碼過期時(shí)間示例
4.最后我們需要了解下系統(tǒng)對(duì)用戶的一個(gè)約定?(約定娶你,就真的會(huì)娶嗎?)
用戶UID | 系統(tǒng)中約定的含義 |
---|---|
0 | 超級(jí)管理員,最高權(quán)限,有著極強(qiáng)的破壞能力 |
1~200 | 系統(tǒng)用戶,用來運(yùn)行系統(tǒng)自帶的進(jìn)程,默認(rèn)已創(chuàng)建 |
201~999 | 系統(tǒng)用戶,用來運(yùn)行用戶安裝的程序,所以此類用戶無需登錄系統(tǒng) |
1000+ | 普通用戶,正??梢缘顷懴到y(tǒng)的用戶,權(quán)限比較小,能執(zhí)行的任務(wù)有限 |
超級(jí)管理員用戶 root 0
普通用戶
系統(tǒng)用戶:用來啟動(dòng)系統(tǒng)的一些服務(wù)和進(jìn)程的用戶,不可以登陸 1-999(centos7)1-499 (centos6)
可登陸用戶:能登錄系統(tǒng)的用戶 1000-65535(centos7)500-65535(centos6)
2.用戶相關(guān)命令
下面我們就圍繞著用戶的創(chuàng)建、變更、刪除等來講講涉及到的命令: useradd、usermod、userdel
1.新增用戶
使用useradd命令,注意: adduser命令軟鏈接指向useradd命令
useradd
Usage: useradd [options] LOGIN useradd -D useradd -D [options] 普通用戶的id是遞增,系統(tǒng)用戶的id是遞減的 -d 用來指定用戶的家目錄 -g 指定用戶組的id -G 指定用戶的附加組 -k 指定復(fù)制那個(gè)文件夾下的內(nèi)容,需要和-m一起使用 -m 創(chuàng)建用戶的家目錄 -c "message" 指定用戶的描述信息 -N 不創(chuàng)建同名的組,以u(píng)sers為組 -s 指定用戶登錄后使用的shell -u 指定用戶的id —D 顯示系統(tǒng)的默認(rèn)配置 -D [options] 可以修改系統(tǒng)的默認(rèn)配置 -r 創(chuàng)建系統(tǒng)用戶
相關(guān)文件
/etc/default/useradd 創(chuàng)建用戶的默認(rèn)文件
/etc/skel/* 默認(rèn)復(fù)制的文件
#選項(xiàng) # -u 指定要?jiǎng)?chuàng)建用戶的UID,不允許沖突 # -g 指定要?jiǎng)?chuàng)建用戶默認(rèn)組 # -G 指定要?jiǎng)?chuàng)建用戶附加組,逗號(hào)隔開可添加多個(gè)附加組 # -d 指定要?jiǎng)?chuàng)建用戶家目錄 # -s 指定要?jiǎng)?chuàng)建用戶的bash shell /bin/bash /sbin/nologin # -c 指定要?jiǎng)?chuàng)建用戶注釋信息 # -M 給創(chuàng)建的用戶不創(chuàng)建家目錄 # -r 創(chuàng)建系統(tǒng)賬戶,默認(rèn)無家目錄 #1.創(chuàng)建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.創(chuàng)建mysql系統(tǒng)用戶,-M不建立用戶家目錄 -s指定nologin使其用戶無法登陸系統(tǒng) [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 # 臨時(shí)關(guān)閉 cat /etc/selinux/config SELINUX=disabled
2.修改用戶信息
使用usermod命令修改用戶信息
用戶修改usermode
-c 修改描述信息 -d 修改家目錄,默認(rèn)不會(huì)創(chuàng)建新目錄,如果想移動(dòng)家目錄,則需要使用-m -g 修改用戶組 -G 修改用戶的附加組,默認(rèn)情況下是替換 -a 追加附加組 -l newname 修改用戶的登錄名稱 -L 鎖定用戶,不能登錄系統(tǒng),修改密碼默認(rèn)情況下回解鎖 -U 解鎖用戶 -s 修改用戶登錄后的shell -u 修改用戶的uid -e 年-月-日 修改用戶的過期時(shí)間,過期以后不能登錄
#選項(xiàng) # -u 指定要修改用戶的UID # -g 指定要修改用戶基本組 # -G 指定要修改用戶附加組,使用逗號(hào)隔開多個(gè)附加組, 覆蓋原有的附加組,-aG追加 # -d 指定要修改用戶家目錄 -md 舊家搬新家 # -s 指定要修改用戶的bash shell # -c 指定要修改用戶注釋信息 # -l 指定要修改用戶的登陸名 # -L 指定要鎖定的用戶 # -U 指定要解鎖的用戶 #1.檢查此前創(chuàng)建的用戶信息 [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,把環(huán)境也帶過去 [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.鎖定用戶[擴(kuò)展] [root@bgx ~]# echo "123" |passwd --stdin change_bgx [root@bgx ~]# usermod -L change_bgx #鎖定后會(huì)無法登陸系統(tǒng) #5.解鎖用戶[擴(kuò)展] [root@bgx ~]# usermod -U change_bgx
3.刪除賬戶
使用userdel命令刪除賬戶
刪除用戶 userdel
默認(rèn)刪除用戶不刪除用戶的家目錄 -r 刪除家目錄 -f 強(qiáng)制刪除 默認(rèn)情況下,用戶登錄狀態(tài)下是不能刪除用戶,強(qiáng)制刪除用戶以后,用戶還是可以用的
#選項(xiàng) -r 刪除用戶同時(shí)刪除它的家目錄 #1.刪除user1用戶,但不刪除用戶家目錄和 mail spool [root@bgx ~]# userdel user1 [root@bgx ~]# ls /var/spool/mail/ #2.-r參數(shù)可以連同用戶家目錄一起刪除(慎用) [root@bgx ~]# userdel -r user1
4.其他
使用finger命名查詢用戶信息以及登錄信息(yum install finger),示例: finger UserName
使用chfn命令修改用戶信息(其實(shí)是修改注釋),示例: chfn UserName
使用chsh命令修改用戶登錄Bash Shell,示例: chsh UserName
使用who(當(dāng)前有哪些用戶登錄了)、whoami、w檢查用戶登陸情況
查看用戶相關(guān)信息id
-g 只顯示組id -G 只顯示附加組id -u 只顯示用戶id -n 顯示名稱,需要和guG來配合使用
3.用戶擴(kuò)展知識(shí)
1.創(chuàng)建流程
前面我們學(xué)習(xí)如何創(chuàng)建、修改、刪除用戶,接下來了解下用戶的?
1.useradd創(chuàng)建用戶時(shí),系統(tǒng)會(huì)以/etc/login.defs、/etc/defaults/useradd兩個(gè)配置文件作為參照物,
如果在創(chuàng)建用戶時(shí)指定了參數(shù)則會(huì)覆蓋/etc/login.defs、/etc/defaults/useradd文件默認(rèn)配置,如未指定則使用默認(rèn)。
[root@bgx ~]# grep -Ev "^#|^$" /etc/login.defs [root@bgx ~]# cat /etc/login.defs MAIL_DIR /var/spool/mail # 定義了郵件路徑放在哪 PASS_MAX_DAYS 99999 # 密碼過期時(shí)間 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 # 是否創(chuàng)建home UMASK 077 USERGROUPS_ENAB yes # 用戶不指定組,默認(rèn)創(chuàng)建一個(gè)同名組 ENCRYPT_METHOD SHA512 # 密碼加密算法 [root@bgx ~]# cat /etc/default/useradd GROUP=100 HOME=/home #把用戶的家目錄建在/home中。 INACTIVE=-1 #是否啟用賬號(hào)過期停權(quán),-1表示不啟用。 EXPIRE= #賬號(hào)終止日期,不設(shè)置表示不啟用。 SHELL=/bin/bash #新用戶默認(rèn)所有的shell類型。 SKEL=/etc/skel #配置新用戶家目錄的默認(rèn)文件存放路徑。 CREATE_MAIL_SPOOL=yes #創(chuàng)建mail文件。
2.當(dāng)使用useradd創(chuàng)建用戶時(shí),創(chuàng)建的用戶家目錄下會(huì)存在 .bash_ 環(huán)境變量相關(guān)的文件,這些環(huán)境變量文件默認(rèn)從/etc/skel目錄中拷貝。
這個(gè)默認(rèn)拷貝環(huán)境變量位置是由/etc/defaults/useradd配置文件中定義的。
#故障案例,在當(dāng)前用戶家目錄執(zhí)行了rm -rf .,下次登錄系統(tǒng)時(shí)出現(xiàn)-bash-4.1$,如何解決! -bash-4.1$ cp -a /etc/skel/.bash ./ -bash-4.1$ exit [root@bgx ~]# #重新連接即可恢復(fù)
2.設(shè)置、修改密碼
創(chuàng)建用戶后,如需要使用該用戶登陸系統(tǒng)則需要為用戶設(shè)定密碼,設(shè)定密碼使用passwd命令。建議密碼復(fù)雜度高一些、長度大于10、出現(xiàn)各種特殊字符、無任何規(guī)律(不要出現(xiàn)名字,電話,生日等)
PS: 注意事項(xiàng)
1.普通用戶只允許變更自己的密碼,無法修改其他人密碼,并且密碼長度必須8位字符
2.管理員用戶允許修改任何人的密碼,無論密碼長度多長或多短。
#1.使用passwd命令修改用戶密碼 # passwd #給當(dāng)前用戶修改密碼 # passwd root #給root用戶修改密碼 # passwd oldboy #給oldboy用戶修改密碼,普通用戶只能自己修改自己 #2.驗(yàn)證如下幾項(xiàng)指標(biāo) # passwd #root管理員用戶登陸,修改root用戶密碼 # passwd lqz #root用戶登陸,修改其他用戶的密碼 $ passwd root #普通用戶修改root管理員密碼 # echo "123" | passwd --stdin lqz #非交互式修改密碼 # 批量創(chuàng)建100個(gè)用戶,密碼都為123456 for i in {1..100} do useradd test$1 echo "123456" |passwd --stdin test$1 done #3.系統(tǒng)內(nèi)置變量生成隨機(jī)字符串(對(duì)隨機(jī)字符串進(jìn)行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生成隨機(jī)字符串, -l設(shè)定密碼長度,-d數(shù)子,-c小寫字母,-C大寫字母,-s特殊字符 [root@bgx ~]# yum install -y expect //需要安裝擴(kuò)展包 [root@bgx ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4 |K&13bR)i/
PS: 推薦密碼保存套件工具,支持windows、MacOS、Iphone以及瀏覽器插件Lastpass官方網(wǎng)站
/etc/passwd文件
用戶名稱
密碼,使用x來占位
uid
gid
描述信息
家目錄
登錄后使用的shell
設(shè)置密碼passwd
passwd [OPTION...]-d 刪除指定用戶的密碼,刪除密碼之后就不能登錄 -l 鎖定用戶 -u 解鎖用戶 -e 在下次登錄以后強(qiáng)制用戶修改密碼 -f 強(qiáng)制操作 -x maxday 密碼的最長使用時(shí)間 -n minday 密碼的最短使用時(shí)間 -w warnday 密碼過期前多長時(shí)間提醒 -i inactiveday 密碼過期多長時(shí)間以后禁用 --stdin 從標(biāo)準(zhǔn)輸入讀取密碼 echo '123'|passwd --stdin peiqi
存放文件/etc/shadow
用戶名
密碼 $加密方式(默認(rèn)sha512)$鹽$加密后的字符串$
從1970年1月1日到最近一次修改密碼經(jīng)過的時(shí)間
密碼的最短使用時(shí)間(0表示隨時(shí)可以修改)
密碼的最長使用時(shí)間(99999表示永不過期)
密碼過期多長時(shí)間提醒(默認(rèn)是一周)
密碼過期多長時(shí)間鎖定
從1970年1月1日開始算起,多長時(shí)間后賬號(hào)失效
qiao:$6$HBl7BPCJk6JaLtw2$B4NzlqpCrMczVkK51Rjimw7Wp.oRfsCzrKEzmhiBEAfk9T7h.YleYZ3h3qV6Fv.bZnJh666tr36TBJHhCi6M90::0:99999:7:::
密碼的復(fù)雜性策略
必須包括數(shù)字、大小寫、特殊字符
密碼必須12位以上
不能為弱口令
必須為隨機(jī)密碼
3個(gè)月或者半年修改一次
機(jī)器免密登錄
非對(duì)稱加密,公鑰登錄(在已登錄上機(jī)器機(jī)器上生成公鑰,copy公鑰給要登錄的機(jī)器):
ssh-keygen 一路回車 ssh-copy-id 要登錄的機(jī)器
修改用戶密碼策略 chage
-E -I -m -M -W change login 可以使用交互式的修改密碼策略
chfn 修改用戶的個(gè)人描述信息
4.用戶如何提權(quán)
往往公司的服務(wù)器對(duì)外都是禁止root用戶直接登錄,所以我們通常使用的都是普通用戶,那么問題來了?
當(dāng)我們使用普通用戶執(zhí)行/sbin目錄下的命令時(shí),會(huì)發(fā)現(xiàn)沒有權(quán)限運(yùn)行,這種情況下我們無法正常的管理服務(wù)器,那如何才能不使用root用戶直接登錄系統(tǒng),同時(shí)又保證普通用戶能完成日常工作?
PS: 我們可以使用如下兩種方式: su、sudo
1.su切換用戶,使用普通用戶登錄,然后使用su命令切換到root。優(yōu)點(diǎn):簡單 缺點(diǎn):需要知道root密碼
2.sudo提權(quán),當(dāng)需要使用root權(quán)限時(shí)進(jìn)行提權(quán),而無需切換至root用戶,優(yōu)點(diǎn):安全、方便 缺點(diǎn):復(fù)雜
1.su身份切換
在使用su切換前,我們需要了解一些預(yù)備知識(shí),比如shell分類、環(huán)境變量配置文件有哪些
1.Linux Shell主要分為如下幾類交互式shell,等待用戶輸入執(zhí)行的命令(終端操作,需要不斷提示)非交互式shell,執(zhí)行shell腳本,
腳本執(zhí)行結(jié)束后shell自動(dòng)退出登陸shell,需要輸入用戶名和密碼才能進(jìn)入Shell,日常接觸的最多的一種非登陸shell,不需要輸入用戶和密碼就能進(jìn)入Shell,比如運(yùn)行bash會(huì)開啟一個(gè)新的會(huì)話窗口
2.bash shell配置文件介紹(文件主要保存用戶的工作環(huán)境)個(gè)人配置文件:~/.bash_profile ~/.bashrc 。
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrcprofile類文件, 設(shè)定環(huán)境變量, 登陸前運(yùn)行的腳本和命令。
bashrc 類文件, 設(shè)定本地變量, 定義命令別名PS: 如果全局配置和個(gè)人配置產(chǎn)生沖突,以個(gè)人配置為準(zhǔn)。
3.登陸系統(tǒng)后,環(huán)境變量配置文件的應(yīng)用順序是?登錄式shell配置文件執(zhí)行順序: /etc/profile->/etc/profile.d/.sh->/.bash_profile->/.bashrc->/etc/bashrc
非登陸式shell配置文件執(zhí)行順序: ~/.bashrc->/etc/bashrc->/etc/profile.d/.shPS: 驗(yàn)證使用echo在每行添加一個(gè)輸出即可
4.說了這么多預(yù)備知識(shí),那這些和su命令切換用戶有什么關(guān)系?su - username屬于登陸式shell,su username屬于非登陸式shell,區(qū)別在于加載的環(huán)境變量不一樣。su username 屬于非登陸式shell
普通用戶su -可以直接切換至root用戶,但需要輸入root用戶的密碼。超級(jí)管理員root用戶使用su - username切換普通用戶不需要輸入任何密碼。
#1.普通用戶使用su切換root [lqz@node1 ~]$ su 密碼:#輸入root的密碼 [root@node1 lqz]# pwd /home/lqz #2.普通用戶使用su -切換到root,會(huì)加載root的環(huán)境變量 [lqz@node1 ~]$ su - 密碼: [root@node1 ~]# pwd /root #3.以某個(gè)用戶的身份執(zhí)行某個(gè)服務(wù),使用命令su -c username [root@bgx ~]# su - lqz -c 'ifconfig' [root@bgx ~]# su - lqz -c 'ls ~' #4 其他 yum provides pstree yum install psmisc pstree # 5 關(guān)閉root遠(yuǎn)程登陸,普通用戶登進(jìn)來,su - 切換到root用戶 vim /etc/ssh/sshd_config PermitRootLogin yes # 設(shè)成no
切換用戶
su [options] [-] [USER [arg]...]
切換用戶的方式
完整切換:su - username 登錄式切換,環(huán)境變量等都會(huì)切換
不完整切換:su username 不會(huì)切換用戶的環(huán)境變量家目錄等
root切換普通用戶不需要密碼,非root用戶切換需要密碼
切換用戶執(zhí)行命令,并在切換會(huì)來
[root@localhost ~]#su - peiqi -c "whoami" peiqi
2.sudo提權(quán)
su命令在切換用戶身份時(shí),如果每個(gè)普通用戶都能拿到root用戶的密碼,當(dāng)其中某個(gè)用戶不小心泄漏了root的密碼,那系統(tǒng)會(huì)變得非常不安全。為了改進(jìn)這個(gè)問題,從而產(chǎn)生了sudo這個(gè)命令。
其實(shí)sudo就相當(dāng)于給某個(gè)普通用戶埋下了浩克(hulk)的種子,當(dāng)需要執(zhí)行一些高級(jí)操作時(shí),進(jìn)行發(fā)怒,但正常情況下還是普通人,還是會(huì)受到限制。
1.如何快速埋下hulk的種子呢?
#1.快速配置sudo方式[先睹為快] [root@node1 ~]# usermod bgx -G wheel # 把用戶加到wheel組中 [root@node1 ~]$ sudo tail -f /var/log/secure #sudo審計(jì)日志 #2.一般正常配置sudo方式 [root@www ~]# #visudo => vim /etc/sudoers #1.用戶名 2.主機(jī)名=(角色名) 4.命令名 bgx ALL=(ALL) /usr/bin/yum,/usr/sbin/useradd #允許使用sudo執(zhí)行命令 oldboy ALL=(ALL) NOPASSWD:/bin/cp, /bin/rm #NOPASSWD不需要使用密碼 visudo -c # 檢查剛剛編輯的是否有錯(cuò)誤 sudo -l # 對(duì)主機(jī)有哪些權(quán)限
2.埋下了hulk種子后又如何提權(quán)使用呢?
#1.切換普通用戶 [root@bgx ~]# su - lqz #2.檢查普通用戶能提權(quán)的命令 [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提權(quán),需要輸入普通用戶的密碼。 [lqz@lqz ~]$ sudo rm -rf /opt
3.開啟某個(gè)命令的使用權(quán)限
提升的權(quán)限太大,能否有辦法限制僅開啟某個(gè)命令的使用權(quán)限?其他命令不允許?
第一種方式:使用sudo中自帶的別名操作,將多個(gè)用戶定義成一個(gè)組,這個(gè)組只有sudo認(rèn)可
[root@bgx ~]# visudo #也可以使用vi /etc/sudoers來配置 # 1.使用sudo定義分組,這個(gè)系統(tǒng)group沒什么關(guān)系 User_Alias OPS = oldboy,alex User_Alias DEV = bgx,py # 2.定義可執(zhí)行的命令組,便于后續(xù)調(diào)用 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開始分配權(quán)限 OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES DEV ALL=(ALL) SOFTWARE,PROCESSES #4.登陸對(duì)應(yīng)的用戶使用 sudo -l 驗(yàn)證權(quán)限
第二種方式:使用groupadd添加組,然后給組分配sudo的權(quán)限,如果有新用戶加入,直接將用戶添加到該組.
#1.添加兩個(gè)真實(shí)的系統(tǒng)組, group_dev group_op [root@www ~]# groupadd group_dev [root@www ~]# groupadd group_op #2.添加兩個(gè)用戶, 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中配置規(guī)則 [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是否配置有錯(cuò) [root@www ~]# visudo -c /etc/sudoers: parsed OK #6.檢查user_a,和user_d的sudo權(quán)限 [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命令的執(zhí)行流程
普通用戶執(zhí)行sudo命令時(shí), 會(huì)檢查/var/db/sudo是否存在時(shí)間戳緩存
如果存在則不需要輸入密碼, 否則需要輸入用戶與密碼
輸入密碼會(huì)檢測是否該用戶是否擁有該權(quán)限
如果有則執(zhí)行,否則報(bào)錯(cuò)退出
執(zhí)行本身不能執(zhí)行的命令
sudo 配置文件為/etc/sudoers
peiqi ALL=(ALL) NOPASSWD:ALL 其中的NOPASSWD 是不需要輸入密碼
5.用戶組的管理
1.什么是用戶組
其實(shí)就是一種邏輯層面的定義,邏輯上將多個(gè)用戶歸納至一個(gè)組,當(dāng)我們對(duì)組操作,其實(shí)就相當(dāng)于對(duì)組中的所有用戶操作。
2.組有類別
對(duì)于用戶來說,組有幾種類別?
基本組,用戶只能有一個(gè)基本組,創(chuàng)建時(shí)可通過-g指定,如未指定則創(chuàng)建一個(gè)默認(rèn)的組(與用戶同名),簡稱私有組
附加組,基本組不能滿足授權(quán)要求,創(chuàng)建附加組,將用戶加入該組,用戶可以屬于多個(gè)附加組
3.組的信息位置
組賬戶信息保存在/etc/group和/etc/gshadow兩個(gè)文件中。重點(diǎn)關(guān)注group
1./etc/group 配置文件解釋如下圖
head -1 /etc/group
2./etc/gshadow 配置文件解釋如下圖
超級(jí)用戶組 root 0
普通用戶組
系統(tǒng)用戶組 1-999(centos7) 1-499(centos6)
可登陸用戶組 1000-65535(centos7)500-65535 (centos6)
groupadd -g 指定組id -r 創(chuàng)建系統(tǒng)用戶組
組的文件
/etc/group
組名
密碼占位
gid
組成員
/etc/gshadow
組名
密碼
組管理員的密碼
組成員
1 groupadd新增組
使用groupadd命令新增組,groupadd [-g GID] groupname
#創(chuàng)建基本組, 不指定gid [root@bgx ~]# groupadd no_gid [root@bgx ~]# tail -n1 /etc/group no_gid1000: #創(chuàng)建基本組, 指定gid為5555 [root@bgx ~]# groupadd -g 5555 yes_gid [root@bgx ~]# tail -n1 /etc/group yes_gid5555: #創(chuàng)建系統(tǒng)組,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刪除組,
刪除時(shí)需要注意,如果用戶存在基本組則無法直接刪除該組,如果刪除用戶則會(huì)移除默認(rèn)的私有組,而不會(huì)移除基本組。
# 私有組的情況,直接刪除用戶,組也就沒了 [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設(shè)置組密碼
使用gpasswd設(shè)置組密碼[擴(kuò)展,可以不會(huì)
[root@bgx ~]# groupadd devops [root@bgx ~]# gpasswd devops Changing the password for group devops New Password: Re-enter new password:
5 newgrp切換基本組身份
使用newgrp命令切換基本組身份[擴(kuò)展,可以不會(huì)
#1.檢查賬戶信息 [root@bgx ~]# useradd lqz [root@bgx ~]# id lqz uid=1069(lqz) gid=5005(lqz) groups=5005(lqz) #2.切換普通用戶 [root@bgx ~]# su - lqz #3.創(chuàng)建新文件,查看文件的屬主和屬組 [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.創(chuàng)建文件,檢查屬主和屬組 [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
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213731 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3613瀏覽量
91392 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82961
原文標(biāo)題:Linux用戶管理終極指南:從基礎(chǔ)到進(jìn)階,一篇就夠!
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
樹莓派權(quán)威用戶指南
linux從入門到跑路相關(guān)資料下載
Linux管理者指南

Linux Add-in User Guide(Linux插件用戶指南)

linux 從入門到跑路-電源管理

Emulex LightPulse適配器為Linux用戶指南

RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)

評(píng)論