Day - 09(用戶管理02)
[if !supportLists]1.?[endif]用戶密碼:
(1)添加密碼
交互式設定密碼
命令:passwd?用法:passwd用戶名
非交互式設定密碼
命令語句:echo "密碼" | passwd --stdin 用戶名
(2)批量創(chuàng)建用戶并設定固定密碼
命令語句:
for i in {1..100}
do
useradd test$i
echo "123456" | passwd --stdin test$i
done
方式:通過編輯腳本完成對用戶的創(chuàng)建和修改密碼
(3)隨機產(chǎn)生密碼:
方式:通過random這個設備產(chǎn)生隨機數(shù)字
命令:mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2
[if !supportLists]2.?[endif]變更密碼:
(1)為自己修改密碼
命令:直接使用passwd
(2)為別人修改密碼
命令:在root用戶下使用passwd + 用戶名
小結:
1.為新用戶添加密碼 只有root權限才可以
2.為用戶變更密碼也只有root才可以
3.普通用戶只能修改自己的密碼,..無法修改其他人的密碼
4.密碼的修改方式有兩種,一種是交互式 非交互
3.用戶創(chuàng)建流程
(1)在不指定參數(shù)的情況下默認參考/etc/login.defs和/etc/default/useradd這兩個文件
(2)/etc/login.defs:
grep "^[a-Z]" /etc/login.defs
MAIL_DIR /var/spool/mail #創(chuàng)建的郵箱所在的位置
PASS_MAX_DAYS 99999 #密碼最長使用的天數(shù)
PASS_MIN_DAYS 0 #密碼最短時間的天數(shù)
PASS_MIN_LEN 5 #密碼的長度
PASS_WARN_AGE 7 #密碼到期前7天警告
UID_MIN ?????????1000 #uid從1000開始
UID_MAX ????????60000 #uid從6w結束
SYS_UID_MIN ???????201 #系統(tǒng)用戶的uid 從201
開始
SYS_UID_MAX ???????999 #系統(tǒng)用戶的uid最大到
999
GID_MIN ?????????1000
GID_MAX ????????60000
SYS_GID_MIN ???????201
SYS_GID_MAX ???????999
CREATE_HOME yes #給用戶創(chuàng)建家目錄,創(chuàng)建
在/home
UMASK ?????077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
(3)/etc/default/useradd
cat /etc/default/useradd
# useradd defaults file
GROUP=100 #當用戶創(chuàng)建用戶時不指定組,并
且/etc/login.defs中USERGROUPS_ENAB為no時, 用戶默認創(chuàng)建給分
配一個gid為100的組.
HOME=/home #用戶默認的家目錄
INACTIVE=-1 #用戶不失效
EXPIRE= #過期時間
SHELL=/bin/bash #默認登錄shell
SKEL=/etc/skel #默認用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes #創(chuàng)建郵箱
4.用戶組的管理
(1)管理用戶組
三種組:
私有組:在創(chuàng)建一個用戶的時候如果沒有指定組拘荡,則默認創(chuàng)建一個與用戶同名的組,這個組就是私有組针饥,如果刪除這個用戶那么他的私有組也會一塊被刪除。
基本組:- g通過- g 命令指定一個基本組逝变,前提是這個基本組必須先存在仗颈。
附加組:- G基本組或者是私有組無法滿足需求時,添加一個附加組山憨,繼承這個組的權限焦蘑。
(2)組的配置文件:
組文件:
組影子文件:
5.組的配置:
(1)創(chuàng)建組:groupadd創(chuàng)建普通組盯拱、groupadd -u指定組ID2000+為基本組
(2)創(chuàng)建系統(tǒng)組:groupadd -r用戶名
(3)修改組:usermod
(4)修改組GID:groupmod -g組id 組名
(5)修改組名稱:groupmod -n組名
(6)刪除組:groupdel組名
(7)前提如果要刪除基本組,必須要刪除基本組中的用戶才可以刪除該組
6.提升權限的兩種方式
su -切換用戶:
1例嘱、優(yōu)缺點:
(1)優(yōu)點:簡單狡逢,操作方便
(2)缺點:需要知道用戶的密碼,不安全
2拼卵、sudo提權:
優(yōu)缺點:
(1)優(yōu)點:效率高奢浑、安全
(2)缺點:操作復雜
7.bash登錄的四種方式
3、四種方式:
(1)交互式
方式:su -用戶名
特點:會加載全部的環(huán)境變量
非交互式
(2)方式:su用戶名
特點:會加載部分的環(huán)境變量(很容易出現(xiàn)錯誤的刪除)
(3)登錄式(需要用戶名以及密碼開啟bash窗口)
(4)非登錄式(不需要用戶名以及密碼開啟bash窗口)
8.提升權限(兩種方法):
(1)第一種方式:
方式:使用sudo中自帶的別名操作狐肢,將多個用戶定義成一個組鬼譬。
操作過程:
1.使用sudo定義虛擬的用戶別名分組漏麦。
User_Alias z1 = zmy1,zmy2
User_Alias z2 = zmy3
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將虛擬的用戶別名分組和定義的命令組結合起來,這樣對應的用戶組里面的用戶就有權限了
z1(虛擬組名) ?ALL(主機名)=(ALL(角色名))
NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCES
z2?ALL=(ALL) SOFTWARE,PROCESSES
4.登錄對應的用戶驗證權限是否已經(jīng)提升
sudo -l
(2)第二種方式:
方式:使用groupadd添加組,然后給組分配sudo的權限,如果有新用戶加入,直接將用戶添加到該組.
操作過程:
1耕渴。創(chuàng)建兩個真實的系統(tǒng)組。
[root@www ~]# groupadd group_a
[root@www ~]# groupadd group_b
2.創(chuàng)建四個實驗的用戶,并兩兩添加到剛才創(chuàng)建的系統(tǒng)組里面
[root@www ~]# useradd user_a -G group_a
[root@www ~]# useradd user_b -G group_a
[root@www ~]# useradd user_c -G group_b
[root@www ~]# useradd user_d -G group_b
3.給是個新創(chuàng)建的用戶添加密碼
[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.進入visudo如上種方法一樣給命令進行分組
[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
5.將真實的系統(tǒng)組和剛才創(chuàng)建的命令組進行結合实柠。
%group_a ALL=(ALL) SOFTWARE
%group_b ALL=(ALL) SOFTWARE,PROCESSES
5.檢查拼寫是否有誤
[root@www ~]# visudo -c
/etc/sudoers: parsed OK
6.檢查兩個用戶組中用戶的權限是否已經(jīng)得到提升。
[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/kil
9. sudo執(zhí)行流程: