一、怎樣為用戶添加密碼
- 為新用戶添加密碼{只能是root浓恳,即超級管理員刹缝,且密碼要盡可能的復(fù)雜,數(shù)字[0-
9]/字母[a-Z]/字符都要用到}例如: # 交互式設(shè)定密碼 [root@wyw ~]# passwd yw Changing password for user yw. New password: BAD PASSWORD: The password is a palindrome Retype new password: passwd: all authentication tokens updated successfully. # passwd --stdin 非交互式設(shè)定密碼 [root@wyw ~]# echo "1" | passwd --stdin yw Changing password for user yw. passwd: all authentication tokens updated successfully. # 批量創(chuàng)建用戶時(shí)颈将,并設(shè)定固定密碼 [root@wyw ~]# vim user.sh [root@wyw ~]# cat user.sh for i in {1..100} do useradd test$i echo "123" | passwd --stdin test$i done
二梢夯、為用戶變更密碼
- 為用戶變更密碼
1. 自己修改自己的密碼,可以直接使用passwd進(jìn)行修改晴圾,修改的密碼要盡量復(fù)雜颂砸,并且要達(dá)到8位
2.為別人修稿密碼時(shí),需要使用root權(quán)限死姚,普通用戶是沒有權(quán)限的人乓,要想要進(jìn)行修改時(shí),需要切換到root用戶上都毒,或者獲取root權(quán)限色罚。
三、密碼怎樣才算復(fù)雜
例如:
1.用/dev/random温鸽,生成隨機(jī)數(shù)的密碼
[root@wyw ~]# echo $RANDOM |md5sum |cut -c 5-20
fb7433635f0a88c1
2.mkpasswd 生成隨機(jī)字符串保屯,
-l 設(shè)定密碼長度
-d 代表數(shù)字
-c 代表小寫字母
-C 代表大寫字母
-s 代表特殊字符
[root@wyw ~]# mkpasswd -l 8 -d 2 -c 2 -C 2 -s 2
'^5DEab4
總結(jié)
- 1.為新用戶添加密碼時(shí),只有root權(quán)限才能修改
- 2.為用戶變更密碼時(shí)涤垫,只有root權(quán)限才能修改
- 3.普通用戶只能修改自己的密碼姑尺,無權(quán)修改其他用戶的密碼
- 4.密碼的修改方式有兩種,一種是交互式設(shè)定蝠猬,另一種是非交互式設(shè)定
四切蟋、用戶的創(chuàng)建流程
useradd創(chuàng)建用戶時(shí)的過程需要參考/etc/login.defs和/etc/default/useradd這兩個(gè)配置文件,如果在創(chuàng)建用戶時(shí)指定了參數(shù)則會覆蓋/etc/login.defs榆芦、/etc/default/useradd這兩個(gè)文件的默認(rèn)配置柄粹,如果沒有指定,則使用默認(rèn)匆绣。
[root@wyw ~]# grep -Ev "^#|^$" /etc/login.defs
MAIL_DIR /var/spool/mail #創(chuàng)建的郵箱所在的位置
PASS_MAX_DAYS 99999 #密碼最長使用的天數(shù)
PASS_MIN_DAYS 0 #密碼最短時(shí)間的天數(shù)
PASS_MIN_LEN 5 #密碼的長度
PASS_WARN_AGE 7 #密碼到期前7天警告
UID_MIN 1000 #密碼到期前7天警告
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@wyw ~]# 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= #過期時(shí)間
SHELL=/bin/bash #默認(rèn)登錄shell
SKEL=/etc/skel #默認(rèn)用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes/no #創(chuàng)建郵箱/不創(chuàng)建郵箱
五驻右、用戶組的管理
- 1./etc/group配置文件解釋如下:
[root@wyw ~]# head -1 /etc/group
root:x:0: 以:為分隔符,總共4列
root | x | 0 | |
---|---|---|---|
組的名稱 | 組的密碼 | 組GID | 顯示附加組成員崎淳,不顯示基本成員 |
- /etc/gshadow配置問價(jià)如下:
[root@wyw ~]# head -1 /etc/gshadow
root:::
root | |||
---|---|---|---|
組的名稱 | 組的密碼 | 組管理員 | 顯示附加組成員堪夭,不顯示基本基本組成員 |
創(chuàng)建組[groupadd]
創(chuàng)建普通組
[root@wyw ~]# groupadd zjr
[root@wyw ~]# groupadd -g 5555 dpp
[root@wyw ~]# grep "5555" /etc/group
dpp:x:5555:
創(chuàng)建系統(tǒng)組
[root@wyw ~]# groupadd -r dp
[root@wyw ~]# grep "dp" /etc/group
dp:x:995:
修改組
-g 修改組gid
[root@wyw ~]# grep "3333" /etc/group
zjr:x:3333:
-n 修改組名稱
[root@wyw ~]# groupmod dpp -n pp
[root@wyw ~]# grep "5555" /etc/group
pp:x:5555:
刪除組
如果要?jiǎng)h除組基本組,需要先刪除基本組中的用戶才可以刪除該組
[root@wyw ~]#groupadd dawang
[root@wyw ~]# groupadd laowang
[root@wyw ~]# useradd xiaowang
[root@wyw ~]# useradd gb -g laowang
[root@wyw ~]# 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
六拣凹、用戶提權(quán)
- su 切換目錄森爽,使用普通用戶登錄,然后使用su命令切換到root嚣镜。優(yōu)點(diǎn):較簡單爬迟,缺點(diǎn):需要知道root的密碼,也不安全菊匿。
- sudo提權(quán)付呕,當(dāng)需要使用root權(quán)限時(shí)進(jìn)行提權(quán)就無須進(jìn)行root切換,優(yōu)點(diǎn):安全捧请、方便凡涩,缺點(diǎn):復(fù)雜
1.su身份切換
Linux shell的主要分類: - 交互式 需要不停的交互
- 非交互式
- 登錄式shell 需要用戶名以及密碼開啟bash窗口
- 非登錄式shell 不需要用戶名和密碼即可開啟bash窗口
su - username屬于登陸式shell,su username屬于非登陸式shell疹蛉,區(qū)別 在于加載的環(huán)境變量不一樣活箕。 - su - username 屬于登錄式shell 會加載全部的環(huán)境變量
- su username 屬于非登錄式shell 會加載部分環(huán)境變量(很有 可能就會出現(xiàn)錯(cuò)誤清空)
2.sudo提權(quán) - 預(yù)先分配好權(quán)限
- 在關(guān)聯(lián)對應(yīng)的用戶
PS:是否有辦法限制僅開啟某個(gè)命令的使用權(quán)限,使用其他命令則不可被允許
* 使用sudo中自帶的別名操作, 將多個(gè)用戶定義成一個(gè)組
[root@bgx ~]# visudo
# 1.使用sudo定義分組,這個(gè)系統(tǒng)group沒什么關(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,PROCES SES
DEV ALL=(ALL) SOFTWARE,PROCESSES
#4.登陸對應(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