1.為用戶添加密碼[root才能執(zhí)行]
(1)為新用戶添加密碼,只能是root,密碼盡可能復(fù)雜比伏,[0-9][a-Z][!@#$%^&*]
[root@oldboy ~]# passwd yhh
Changing password for user yhh.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
(2).passwd --stdin非交互式設(shè)定密碼
[root@oldboy ~]# echo "123456" |passwd --stdin yhh
Changing password for user yhh.
passwd: all authentication tokens updated successfully.
(3).交互式創(chuàng)建密碼
[root@oldboy ~]# passwd
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
(3).批量創(chuàng)建用戶筐乳,并設(shè)定密碼
[root@oldboyedu ~]# vim user.sh
for i in {1..100}
do useradd test$i
echo "123456" | passwd --stdin test$i
done
[root@oldboyedu ~]# sh user.sh
2.為用戶變更密碼
1.為用戶變更密碼 1.為自己修改密碼 (ok) 直接使用passwd 注意密碼需要復(fù)雜一 點,并達(dá)到8位
2.為別人修改密碼 (root) passwd username
3.密碼怎么才算復(fù)雜
(1)隨機生成字符串
[root@oldboy ~]# echo $RANDOM | md5sum |cut -c 6-15
25d74777ad
(2).mkpasswd生成隨機字符串, -l設(shè)定密碼長度,-d數(shù)子,-c小寫字母,C大寫字母,-s特殊字符
[root@oldboy ~]# mkpasswd -l 11 -d 5 -c 3 -C 1 -s 2
Q,3d4ex174$
(3)lastpass 在線 支持 windows MacOS Iphone 瀏覽器插件 Android
4.用戶創(chuàng)建流程
在用戶創(chuàng)建過程中需要參考/etc/login/defs和/etc/default/passwd這兩個文件默認(rèn)參考
如果創(chuàng)建用戶時指定了參數(shù),則會覆蓋(默認(rèn)/etc/login/defs和/etc/default/passwd)
[root@oldboy ~]# 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 #密碼到期前七天發(fā)出警告
UID_MIN 1000 #uid從1000開始
UID_MAX 60000 #uid到60000結(jié)束
SYS_UID_MIN 201 #系統(tǒng)用戶從201開始
SYS_UID_MAX 999 #系統(tǒng)用戶到999結(jié)束
GID_MIN 1000 #組gid從1000開始
GID_MAX 60000 #組gid到60000結(jié)束
SYS_GID_MIN 201 #系統(tǒng)gid從201開始
SYS_GID_MAX 999 #系統(tǒng)gid到999結(jié)束
CREATE_HOME yes #給用戶創(chuàng)建家目錄創(chuàng)建在/home
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@oldboyedu ~]# cat /etc/default/useradd
useradd defaults file
GROUP=100 #當(dāng)用戶創(chuàng)建用戶時不指定組,并 且/etc/login.defs中USERGROUPS_ENAB為no時, 用戶默認(rèn)創(chuàng)建給分 配一個gid為100的組.
HOME=/home #用戶默認(rèn)的家目錄
INACTIVE=-1 #用戶不失效
EXPIRE= #過期時間
SHELL=/bin/bash #默認(rèn)登錄shell
SKEL=/etc/skel #默認(rèn)用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes #創(chuàng)建郵箱
5.用戶組管理
無標(biāo)題.png
1./etc/passwd配置文件解釋如下圖
group.png
2./etc/gshadow配置文件解釋圖
gshadow.png
1.創(chuàng)建組groupadd[-g GID]groupname
[root@oldboyedu ~]# groupadd zhuzhu
[root@oldboyedu ~]# groupadd -g 6666 gougou
[root@oldboyedu ~]# grep "6666" /etc/group
gougou:x:6666:
#創(chuàng)建系統(tǒng)組
[root@oldboyedu ~]# groupadd -r maomao
[root@oldboyedu ~]# grep "maomao" /etc/group
maomao:x:993:
2.修改組groupmod
-g修改組gid
[root@oldboy ~]# groupadd -g 2222 yuyu
[root@oldboy ~]# groupmod -g 2253 yuyu
[root@oldboy ~]# grep "2253" /etc/group
yuyu:x:2253:
-n修改組名稱
[root@oldboy ~]# groupmod -n lvlv yuyu
[root@oldboy ~]# grep "lvlv" /etc/group
lvlv:x:2253:
3.刪除組窍箍,如果要刪除基本組涤躲,要先刪除基本組里的用戶才可以刪除組
[root@oldboyedu ~]# groupadd dawang
[root@oldboyedu ~]# groupadd laowang
[root@oldboyedu ~]# useradd xiaowang
[root@oldboyedu ~]# useradd gb -g laowang
[root@oldboyedu ~]# usermod xiaowang -G laowang,dawang
[root@oldboyedu ~]# id xiaowang uid=6775(xiaowang) gid=7778(xiaowang) groups=7778(xiaowang),7779(dawang),7780(laowang)
[root@oldboyedu ~]# userdel -r xiaowang
[root@oldboyedu ~]# groupdel dawang
[root@oldboyedu ~]# groupdel laowang groupdel: cannot remove the primary group of user 'gb'
[root@oldboyedu ~]# userdel -r gb
[root@oldboyedu ~]# groupdel laowang
6.用戶提權(quán)
su是切換用戶捎琐,如果切換用戶串远,需要知道用戶密碼,不是很安全
sudo提權(quán)(root事先分配好權(quán)限-->關(guān)聯(lián)用戶)安全方便疯攒,但是復(fù)雜
基本概念:
1.交互式嗦随,需要不停的交互
2.非交互式
3.登陸時shell,需要用戶名幾密碼開啟bash窗口
4.非登錄式shell,不需要用戶名和密碼即可開啟bash窗口
ps: su - username屬于登陸式shell,su username屬于非登陸式shell敬尺,區(qū)別 在于加載的環(huán)境變量不一樣枚尼。
su切換缺點:
需要知道用戶對應(yīng)的密碼
說明不是很安全
sudo提權(quán)
1.預(yù)先分配好權(quán)限
2.在關(guān)聯(lián)對應(yīng)的用戶
3.提升的權(quán)限太大,能否有辦法限制僅開啟某個命令的使用權(quán)限砂吞?其 他命令不允許署恍?
[root@bgx ~]# visudo
1.使用sudo定義分組,這個系統(tǒng)group沒什么關(guān)系
User_Alias OPS = oldboy,oldgirl
User_Alias DEV = alex
2.定義可執(zhí)行的命令組,便于后續(xù)調(diào)用
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii- tool
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
Cmnd_Alias LOCATE = /usr/bin/updatedb
3.使用sudo開始分配權(quán)限
OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCES SES
DEV ALL=(ALL) SOFTWARE,PROCESSES
4.登陸對應(yīng)的用戶使用 sudo -l 驗證權(quán)限
第二種方式:使用groupadd添加組,然后給組分配sudo的權(quán)限,如果有新 用戶加入,直接將用戶添加到該組.*
1.添加兩個真實的系統(tǒng)組, 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中配置規(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是否配置有錯
[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/kil