一.為用戶添加密碼
添加密碼
交互式設(shè)定密碼:passwd? 加用戶名
非交互式設(shè)定密碼: echo? “初始密碼”? | passwd? --stdin? 用戶名
修改密碼
為自己修改密碼
直接使用passwd,注意:密碼修改需要復(fù)雜一點(diǎn),并且要達(dá)到8位數(shù)以上。
如何設(shè)置復(fù)雜的密碼:
echo $RANDOM :(隨機(jī)生成字符串)
echo $RANDOM | md5sum (隨機(jī)生成復(fù)雜數(shù)字串)
mkpasswd(隨機(jī)生成復(fù)雜密碼命令)
mkpasswd參數(shù):-l(字符數(shù))-d(幾個(gè)數(shù)字)-c(幾個(gè)小寫字母)-C(幾個(gè)大寫字母)-s(幾個(gè)特殊符號(hào))
例如:[root@localhost ~]# mkpasswd -l 8 -d 3 -c 1 -C 2 -s 2
:0MX9b6-
yum install -y expect(mkpasswd安裝包)
lastpass(密碼管理網(wǎng)頁(yè)插件)
為別人修改密碼(只有root才可以修改別人的密碼)
總結(jié):
1.為新用戶添加新密碼只有root權(quán)限才可以。
2.為用戶變更密碼也只有root才可以。
3.普通用戶只可以修改自己的密碼,無(wú)法修改他人密碼。
4.密碼的修改方式有兩種,一種是交互式,一種是非交互式。
二.用戶創(chuàng)建流程(PS:在用戶創(chuàng)建的過(guò)程中需要參考/etc/login.defs和/etc/defaylt/useradd這兩個(gè)文件默認(rèn)參考)
/etc/login.defs
MAIL_DIR /var/spool/mail? ? ? ? ? ? ? 創(chuàng)建的郵箱所在位置
PASS_MAX_DAYS 99999? ? ? ? ? ? ? ? ? 密碼最長(zhǎng)使用的天數(shù)
PASS_MIN_DAYS 0? ? ? ? ? ? ? ? ? ? ? ? ? 密碼最短使用的天數(shù)
PASS_MIN_LEN 5? ? ? ? ? ? ? ? ? ? ? ? ? 密碼的長(zhǎng)度
PASS_WARN_AGE 7? ? ? ? ? ? ? ? ? 密碼到期前7天警告
UID_MIN? ? ? ? ? ? ? ? ? 1000? ? ? ? ? ? ? ? ? ? UID從1000開始
UID_MAX? ? ? ? ? ? ? ? 60000? ? ? ? ? ? ? ? ? UID到6萬(wàn)結(jié)束
SYS_UID_MIN? ? ? ? ? ? ? 201? ? ? ? ? ? ? 系統(tǒng)用戶的UID從201開始
SYS_UID_MAX? ? ? ? ? ? ? 999? ? ? ? ? ? ? 系統(tǒng)用戶的UID到999
GID_MIN? ? ? ? ? ? ? ? ? 1000? ? ? ? ? ? ? ? ? ? GID從1000開始
GID_MAX? ? ? ? ? ? ? ? 60000? ? ? ? ? ? ? ? ? GID到6萬(wàn)結(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? ? ? ? ? ? ? ? 給用戶創(chuàng)建默認(rèn)組
ENCRYPT_METHOD SHA512? ? ? ? ?
/etc/default/useradd
GROUP=100? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當(dāng)用戶創(chuàng)建用戶時(shí)不指定組,并且USERGROUPS_ENAB為no的時(shí)候,用戶默認(rèn)創(chuàng)建分配一個(gè)GID為100的組。
HOME=/home? ? ? ? ? ? ? ? ? ? ? ? ? 用戶默認(rèn)的家目錄
INACTIVE=-1? ? ? ? ? ? ? ? ? ? ? ? ? ? 用戶不失效(-1=不失效)
EXPIRE=? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 過(guò)期時(shí)間
SHELL=/bin/bash? ? ? ? ? ? ? ? ? ? ? 默認(rèn)登錄shell
SKEL=/etc/skel? ? ? ? ? ? ? ? ? ? ? ? ? 默認(rèn)用戶拷貝的環(huán)境變量
CREATE_MAIL_SPOOL=yes? ? 創(chuàng)建郵箱
三.用戶組的管理
沒有指定組:默認(rèn)會(huì)創(chuàng)建一個(gè)與用戶同名的組,簡(jiǎn)稱私有組。
指定組:-g指定一個(gè)基本組(基本組必須先存在)
附加組:-G 指定一個(gè)附加組(基本組或私有組無(wú)法滿足需求時(shí),添加一個(gè)附加組,繼承該組的權(quán)限)
/etc/group
/etc/gshadow
創(chuàng)建:
groupadd? 組名稱
-g參數(shù)? ? 指定用戶組的GID
-r 參數(shù)? ? 創(chuàng)建一個(gè)系統(tǒng)組
修改組:
groupmod? -g? ? 要修改的GID? 用戶組
groupmod? ? 舊的組名稱? ? -n? 新的組名稱
刪除組:(如果要?jiǎng)h除基本組,需要先刪除基本組中的用戶才可以刪除該組)
groupdel? -r(刪除信息)
用戶提權(quán):
su? ? ? ? 切換用戶? 登錄式shell (如果切換用戶需要輸入密碼)
su? -? 用戶名字 非登錄式shell (root切換任何用戶不需要輸入密碼)
基本概念:
1.交互式shell? (等待用戶輸入執(zhí)行指令,有提示)
非交互式shell? (不需要等待用戶輸入執(zhí)行指令,沒有提示shell執(zhí)行結(jié)束會(huì)自動(dòng)退出)
登錄式shell? ? (需要輸入用戶名和密碼才可以進(jìn)入shell)
非登錄式shell (不需要輸入用戶名和密碼就可以進(jìn)入shell,比如運(yùn)行bash會(huì)開啟一個(gè)新的會(huì)話窗口)
2.bash shell配置文件介紹
個(gè)人配置文件:~/.bash_profile和~/.bashrc
全局配置文件:/etc/profile,/etc/profile.d/*.sh,/etc/bashrc
(profile類文件,設(shè)定環(huán)境變量,登錄前的運(yùn)行腳本和命令)
(bashrc類文件,設(shè)定本地變量,定義命令別名)
PS:如果全局配置和個(gè)人配置沖突,以個(gè)人配置為準(zhǔn)
3.登錄后環(huán)境變量配置文件的應(yīng)用順序:(驗(yàn)證:在每個(gè)文件中輸入echo)
登錄式shll配置文件應(yīng)用順序
1. /etc/profile
2. /etc/profile.d/1.sh
3. ~/.bash_profile
4. ~/.bashrc
5. /etc/bashrc
非登錄式shll配置文件應(yīng)用順序
1. ~/.bashrc
2. /etc/bashrc
3. /etc/profile.d/1.sh
PS:su? 用戶名? 和? su? -? 用戶名的區(qū)別就在于加載的環(huán)境變量不一樣。
sudo? ? 提權(quán)(root事先分配好權(quán)限--關(guān)聯(lián)用戶)
當(dāng)普通用戶需要執(zhí)行一些高級(jí)操作的時(shí)候就需要加上sudo。(不加sudo還是普通用戶的權(quán)限)
1.快速提權(quán)
直接將普通用戶切換至wheel組中 (wheel組是默認(rèn)擁有sudo權(quán)限的)
2.手動(dòng)提權(quán) sudo? -l? (查看自己有哪些權(quán)限)
可使用visudo命令或者vim? /etm/sudoers (visudo有語(yǔ)法檢測(cè)功能,輸入錯(cuò)誤無(wú)法保存退出)
%(組)wheel(組名)? ALL(主機(jī)名)=(ALL)(角色名)? ? ? ALL(所有權(quán)限)?
例如:
3.限制權(quán)限
第一種:使用sudo中自帶的別名操作,將多個(gè)用戶定義成一個(gè)組
1.使用sudo定義分組,這個(gè)分組和系統(tǒng)分組沒有關(guān)系
User_Alias? OPS? =? 要分配的系統(tǒng)真實(shí)用戶
User_Alias? DEV? =? 要分配的系統(tǒng)真實(shí)用戶
2.sudo中默認(rèn)別名
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Cmnd_Alias LOCATE = /usr/bin/updatedb
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
Cmnd_Alias DRIVERS = /sbin/modprobe
3.分配權(quán)限
OPS ALL = (ALL)sudo別名:SOFTWARE, LOCATE ,STORAGE
DEV? ALL =? (ALL)sudo別名? :SOFTWARE,LOCATE
第二種:創(chuàng)建好分配組,將用戶添加到創(chuàng)建好的分配組中。
1.添加用戶
2.添加密碼
3.配置規(guī)則
%真實(shí)組? ALL=(ALL) 命令或命令別名
四.sudo執(zhí)行流程
1.普通用戶執(zhí)行sudo命令的時(shí)候會(huì)檢查/var/db/sudo是否錯(cuò)在時(shí)間戳緩存。
2.如果存在就不需要輸入密碼,否則需要輸入用戶名和密碼
3.輸入密碼會(huì)檢測(cè)是否該用戶是否擁有該權(quán)限/etc/sudoers
4.如果有就會(huì)執(zhí)行,沒有就報(bào)錯(cuò)退出