今日內(nèi)容
- 1.如何為用戶設(shè)定密碼帮哈,又如何修改密碼?
- 2.用戶的創(chuàng)建流程? [擴(kuò)展了解]
- 3.用戶組如何管理备韧?
- 4.普通用戶無(wú)權(quán)限怎么辦? 切換身份 or 提權(quán)?
- su 切換用戶
- sudo 提權(quán)
- 5.自行注冊(cè)一個(gè)域名. xx.top
1.為用戶添加密碼 [root才能執(zhí)行]
- 1.為新用戶添加密碼{只能是root} {密碼盡可能的復(fù)雜} [0-9][a-Z][a-Z] [!@#$%^&]
[root@oldboyedu ~]# passwd oldxu
Changing password for user oldxu.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[圖片上傳中...(ULV7`8)5SA}P)M6EE$R{ZNA.png-1bf38a-1565079598900-0)]
passwd --stdin 非交互式設(shè)定密碼
[root@oldboyedu ~]# echo "123" | passwd --stdin oldxu
Changing password for user oldxu.
passwd: all authentication tokens updated successfully.
批量創(chuàng)建用戶,并設(shè)定固定密碼
[root@oldboyedu ~]# cat user.sh for i in {1..100} do useradd test\$i echo "123456" | passwd --stdin test$i done
2.為用戶變更密碼
- 1.為自己修改密碼 (ok) 直接使用passwd 注意密碼需要復(fù)雜一點(diǎn),并達(dá)到8位
- 2.為別人修改密碼 (root) passwd username
3.密碼怎么才算復(fù)雜
[root@oldboyedu ~]# echo $RANDOM | md5sum |cut -c 5-15
9320a6f282d
mkpasswd生成隨機(jī)字符串, -l設(shè)定密碼長(zhǎng)度,-d數(shù)子,-c小寫字母,-
C大寫字母,-s特殊字符
[root@oldboyedu ~]# mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2
mQR1u^=q5Y
lastpass 在線 支持 windows MacOS Iphone 瀏覽器插件 Android
總結(jié):
- 1.為新用戶添加密碼 只有root權(quán)限才可以
- 2.為用戶變更密碼也只有root才可以
- 3.普通用戶只能修改自己的密碼,..無(wú)法修改其他人的密碼
- 4.密碼的修改方式有兩種,交互式和非交互式
4.用戶的創(chuàng)建流程
在用戶創(chuàng)建的過(guò)程需要參考 /etc/login.defs 和/etc/default/useradd 這兩個(gè)文件,默認(rèn)參考.
如果在創(chuàng)建用戶時(shí)指定了參數(shù),則會(huì)覆蓋 (默認(rèn) /etc/login.defs和/etc/default/useradd)
[root@oldboyedu ~]# grep "^[a-Z]" /etc/login.defs
MAIL_DIR /var/spool/mail #創(chuàng)建的郵箱所在的位置
PASS_MAX_DAYS 99999 #密碼最長(zhǎng)使用的天數(shù)
PASS_MIN_DAYS 0 #密碼最短時(shí)間的天數(shù)
PASS_MIN_LEN 5 #密碼的長(zhǎng)度
PASS_WARN_AGE 7 #密碼到期前7天警告
UID_MIN 1000 #uid 從1000開始
UID_MAX 60000 #uid從6w結(jié)束
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
[root@oldboyedu ~]# cat /etc/default/useradd
#useradd defaults file
GROUP=100 #當(dāng)用戶創(chuàng)建用戶時(shí)不指定組,并且/etc/login.defs中USERGROUPS_ENAB為no時(shí), 用戶默認(rèn)創(chuàng)建給分配一個(gè)gid為100的組.
HOME=/home #用戶默認(rèn)的家目錄
INACTIVE=-1 #用戶不失效
EXPIRE= #過(guò)期時(shí)間
SHELL=/bin/bash #默認(rèn)登錄shell
SKEL=/etc/skel #默認(rèn)用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes #創(chuàng)建郵箱
5.用戶組的管理
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@oldboyedu ~]# groupmod -g 7777 gougou
[root@oldboyedu ~]# grep "7777" /etc/group
gougou:x:7777:
-n 修改組名稱
[root@oldboyedu ~]# groupmod gougou -n gg
[root@oldboyedu ~]# grep "7777" /etc/group
gg:x:7777:
3.刪除組 如果要?jiǎng)h除基本組界逛,需要先刪除基本組中的用戶才可以刪除
該組。
[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窗口
su - username屬于登陸式shell括堤,su username屬于非登陸式shell搬葬,區(qū)別在于加載的環(huán)境變量不一樣荷腊。
#su - username 屬于登錄式shell 會(huì)加載全部的環(huán)境變量
#su username 屬于非登錄式shell 會(huì)加載部分環(huán)境變量(很有可能就會(huì)出現(xiàn)錯(cuò)誤清空)
- su 切換有缺點(diǎn)
- 需要知道用戶對(duì)應(yīng)的密碼
- 說(shuō)明不是很安全
- sudo提權(quán)
- 預(yù)先分配好權(quán)限
- 在關(guān)聯(lián)對(duì)應(yīng)的用戶
提升的權(quán)限太大,能否有辦法限制僅開啟某個(gè)命令的使用權(quán)限急凰?其他命令不允許女仰?
第一種方式:使用sudo中自帶的別名操作, 將多個(gè)用戶定義成一個(gè)組
[root@bgx ~]# visudo
1.使用sudo定義分組,這個(gè)系統(tǒng)group沒(méi)什么關(guān)系
User_Alias OPS = oldboy,oldgirl
User_Alias DEV = alex
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/kil
今日總結(jié)
1.系統(tǒng)中的用戶有什么用?
- 程序運(yùn)行需要一個(gè)用戶身份,可以是不能登錄系統(tǒng) (傀儡身份)
- 多個(gè)人操作一個(gè)系統(tǒng)時(shí),需要?jiǎng)?chuàng)建多個(gè)用戶,這樣互相不影響.
(默認(rèn)初始環(huán)境一致)
2.創(chuàng)建用戶,會(huì)操作哪幾個(gè)配置文件?
/etc/passwd 用戶屬性
/etc/shadow 用戶密碼屬性
/etc/group 組
/etc/gshadow 組密碼
3.如何創(chuàng)建用戶 修改用戶 刪除用戶
useradd username
-u UID
-g [GID | GroupName] 基本組
-G [GID | Groupname] 附加組
-c 注釋
-s 指定登錄Shell /bin/bash 正常登陸系統(tǒng) /sbin/nologin 不
允許登錄
-d 指定用戶的家目錄
-M 不指定用戶的家目錄
-r 系統(tǒng)用戶[通常201-999 ] 并且沒(méi)有家目錄
usermod 修改用戶
-l 修改用戶的名稱
userdel 刪除用戶
-r 會(huì)刪除用戶的家目錄,以及用戶的郵箱
4.為用戶添加密碼(復(fù)雜度要高,密碼需要三月一修改)
passwd Username # 只能是root操作
passwd # 修改自己的密碼(普通用戶與root都能操作)
echo "123" | passwd --stdin Username 非交互式設(shè)定密碼(批量設(shè)定密碼)
5.用戶的創(chuàng)建流程
用戶在創(chuàng)建過(guò)程中會(huì)依賴兩個(gè)配置文件 /etc/login.defs
/etc/defaults/useradd
如果在創(chuàng)建用戶 自行指定選項(xiàng),會(huì)覆蓋 /etc/login.defs
/etc/defaults/useradd
-u 2000
-s /bin/bash /sbin/nologin
-d /home /tmp
6.用戶的組
基本組(有且只能有一個(gè)):
用戶的主要組,使用-g指定,前提是該組必須存在
創(chuàng)建用戶時(shí),不指定基本組,默認(rèn)創(chuàng)建一個(gè)與用戶同名的私有組附加組(可以有N個(gè))
當(dāng)基本組無(wú)法滿足授權(quán)需求時(shí),可以添加至附加組. 附加組可以有N個(gè)
7.組的創(chuàng)建 修改 刪除
groupadd -g
groupmod -n -g
groupdel
8.提權(quán)
su 切換用戶身份
- su username 非登錄式shell
- su - usernmae 登錄式shell
- 登錄式與非登錄式shell 區(qū)別在于加載的環(huán)境變量不一樣.
sudo 提權(quán)
- 1.由root用戶事先分配可執(zhí)行的命令權(quán)限
- 2.由root用戶關(guān)聯(lián)某個(gè)普通用戶與對(duì)應(yīng)的權(quán)限
sudo提權(quán)方式一: 使用sudo的內(nèi)置別名創(chuàng)建組,創(chuàng)建命令組,最后將兩者進(jìn)行關(guān)聯(lián)
sudo提權(quán)方式二: 創(chuàng)建系統(tǒng)組,將用戶加入組,然后在sudo對(duì)組配置權(quán)限 %group_n
基本權(quán)限
特殊權(quán)限
ACL訪問(wèn)控制