練習(xí)一
1、顯示/etc目錄下,以非字母開(kāi)頭,后面跟了一個(gè)字母以及其它任意長(zhǎng)度任意字符的文件或目錄
[root@localhost etc]# ls -d /etc/[^[:alpha:]][:alpha:]*
2、復(fù)制/etc目錄下所有以p開(kāi)頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost etc]# mkdir /tmp/mytest1;cp -r /etc/p*[^0-9] /tmp/mytest1[root@localhost etc]# ls /tmp/mytest1/pam.d passwd passwd- pki plymouth pm popt.d prelink.conf.d printcap profile profile.d protocols[root@localhost etc]#
3、將/etc/issue文件中的內(nèi)容轉(zhuǎn)換為大寫(xiě)后保存至/tmp/issue.out文件中
[root@localhost etc]# cat /etc/issue | tr "[a-z]" "[A-Z]" > /tmp/issue.out[root@localhost etc]# cat /tmp/issue.out /SKERNEL /R ON AN /M[root@localhost etc]#
總結(jié)描述用戶(hù)和組管理類(lèi)命令的使用方法并完成以下練習(xí):
linux每個(gè)用戶(hù)是通過(guò)UID來(lái)區(qū)分的也是用戶(hù)得唯一標(biāo)識(shí)
管理員:root 0普通用戶(hù):1-60000自動(dòng)分配系統(tǒng)用戶(hù):1-499 (CentOS 6以前), 1-999 (CentOS 7以后)登錄用戶(hù):500+ (CentOS6以前), 1000+(CentOS7以后)
Linux中可以將一個(gè)或多個(gè)用戶(hù)加入用戶(hù)組中,用戶(hù)組是通過(guò)GID來(lái)唯一標(biāo)識(shí)的。
管理員組:root, 0 普通組: 系統(tǒng)組:1-499(CentOS 6以前), 1-999(CentOS7以后)普通組:500+(CentOS 6以前), 1000+(CentOS7以后)
主要配置文件
/etc/passwd:用戶(hù)及其屬性信息(名稱(chēng)、UID、主組ID等)/etc/shadow:用戶(hù)口令及其相關(guān)屬性 /etc/group:組及其屬性信息 /etc/gshadow:組口令及其相關(guān)屬性### 用戶(hù)創(chuàng)建語(yǔ)法```httpuseradd [options] LOGIN
選項(xiàng)
-u UID -o 配合-u 選項(xiàng),不檢查UID的唯一性-g GID 指明用戶(hù)所屬基本組,可為組名,也可以GID-c "COMMENT“ 用戶(hù)的注釋信息-d HOME_DIR 以指定的路徑(不存在)為家目錄-s SHELL 指明用戶(hù)的默認(rèn)shell程序,可用列表在/etc/shells文件中-G GROUP1[,GROUP2,...] 為用戶(hù)指明附加組,組須事先存在-N 不創(chuàng)建私用組做主組,使用users組做主組-r 創(chuàng)建系統(tǒng)用戶(hù) CentOS 6之前: ID<500,CentOS7 以后: ID<1000-m 創(chuàng)建家目錄,用于系統(tǒng)用戶(hù)-M 不創(chuàng)建家目錄,用于非系統(tǒng)用戶(hù)-p 指定加密的密碼
例
useradd -r -u 48 -g http -s /sbin/nologin -d /var/www -c "http" http
用戶(hù)屬性修改
語(yǔ)法
usermod [OPTION] login
選項(xiàng)
-u UID: 新UID-g GID: 新主組-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來(lái)的附加組將會(huì)被覆蓋;若保留原有,則要同時(shí)使用-a選項(xiàng)-s SHELL:新的默認(rèn)SHELL-c COMMENT:新的注釋信息-d HOME: 新家目錄不會(huì)自動(dòng)創(chuàng)建;若要?jiǎng)?chuàng)建新家目錄并移動(dòng)原家數(shù)據(jù),同時(shí)使用-m選項(xiàng)-l login_name: 新的名字-L: lock指定用戶(hù),在/etc/shadow 密碼欄的增加 ! -U: unlock指定用戶(hù),將 /etc/shadow 密碼欄的 ! 拿掉-e YYYY-MM-DD: 指明用戶(hù)賬號(hào)過(guò)期日期-f INACTIVE: 設(shè)定非活動(dòng)期限,即寬限期
刪除用戶(hù)
語(yǔ)法
userdel [OPTION]... Login
選項(xiàng)
-f, --force 強(qiáng)制-r, --remove 刪除用戶(hù)家目錄和郵箱
查看用戶(hù)ID
id [OPTION]... [USER]
選項(xiàng)
-u: 顯示UID-g: 顯示GID-G: 顯示用戶(hù)所屬的組的ID-n: 顯示名稱(chēng),需配合ugG使用
切換用戶(hù)
su [options...] [-] [user [args...]]
選項(xiàng)
-l --login su -l UserName 相當(dāng)于 su - UserName-c, --command pass a single command to the shell with -c
切換用戶(hù)的方式:
su UserName:非登錄式切換,即不會(huì)讀取目標(biāo)用戶(hù)的配置文件,不改變當(dāng)前工作目錄,即不完 全切換 su - UserName:登錄式切換,會(huì)讀取目標(biāo)用戶(hù)的配置文件,切換至自已的家目錄,即完全切換 說(shuō)明:root su至其他用戶(hù)無(wú)須密碼;非root用戶(hù)切換時(shí)需要密碼
注意:su 切換新用戶(hù)后,使用 exit 退回至舊的用戶(hù)身份,而不要再用 su 切換至舊用戶(hù),否則會(huì)生成很 多的bash子進(jìn)程,環(huán)境可能會(huì)混亂。
修改口令
passwd [OPTIONS] UserName
選項(xiàng)
-d:刪除指定用戶(hù)口令-l:鎖定指定用戶(hù)-u:解鎖指定用戶(hù)-e:強(qiáng)制用戶(hù)下次登錄修改口令-f:強(qiáng)制操作-n mindays:指定最短使用期限-x maxdays:最大使用期限-w warndays:提前多少天開(kāi)始警告-i inactivedays:非活動(dòng)期限--stdin:從標(biāo)準(zhǔn)輸入接收用戶(hù)口令,Ubuntu無(wú)此選項(xiàng)
修改用戶(hù)口令策略
chage [OPTION]... LOGIN
選項(xiàng)
-d LAST_DAY #更改口令的時(shí)間-m --mindays MIN_DAYS-M --maxdays MAX_DAYS-W --warndays WARN_DAYS-I --inactive INACTIVE #口令過(guò)期后的寬限期-E --expiredate EXPIRE_DATE #用戶(hù)的有效期-l 顯示口令策略
創(chuàng)建組
groupadd [OPTION]... group_name
選項(xiàng)
-g GID 指明GID號(hào);[GID_MIN, GID_MAX]-r 創(chuàng)建系統(tǒng)組,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
修改組
groupmod [OPTION]... group
選項(xiàng)
-n group_name: 新名字-g GID: 新的GID
刪除組
groupdel [options] GROUP
選項(xiàng)
-f, --force 強(qiáng)制刪除,即使是用戶(hù)的主組也強(qiáng)制刪除組,但會(huì)導(dǎo)致無(wú)主組的用戶(hù)不可用無(wú)法登錄
更改組口令
gpasswd命令,可以更改組口令,也可以修改附加組的成員關(guān)系
gpasswd [OPTION] GROUP
選項(xiàng)
-a user 將user添加至指定組中-d user 從指定附加組中移除用戶(hù)user-A user1,user2,... 設(shè)置有管理權(quán)限的用戶(hù)列表
更改和查看組成員
groupmems [options] [action]
選項(xiàng)
-g, --group groupname #更改為指定組 (只有root)-a, --add username #指定用戶(hù)加入組-d, --delete username #從組中刪除用戶(hù)-p, --purge #從組中清除所有成員-l, --list #顯示組成員列表
練習(xí)二
(1)、創(chuàng)建組distro,其GID為2019;
root@localhost /]# groupadd -g 2019 distro
(2)、創(chuàng)建用戶(hù)mandriva, 其ID號(hào)為1005;基本組為distro;
[root@localhost /]# useradd -u 1005 -g 2019 mandriva[root@localhost /]#
(3)、創(chuàng)建用戶(hù)mageia,其ID號(hào)為1100,家目錄為/home/linux;
[root@localhost /]# useradd -u 1100 -d /home/linux mageia
(4)、給用戶(hù)mageia添加口令,口令為mageedu,并設(shè)置用戶(hù)口令7天后過(guò)期
[root@localhost /]# passwd -x 7 mageiaAdjusting aging data for user mageia.passwd: Success[root@localhost /]# echo mageedu | passwd --stdin mageiaChanging password for user mageia.passwd: all authentication tokens updated successfully.[root@localhost /]#
(5)、刪除mandriva,但保留其家目錄;
[root@localhost home]# userdel mandriva[root@localhost home]# lslinux mandriva shi
(6)、創(chuàng)建用戶(hù)slackware,其ID號(hào)為2002,基本組為distro,附加組peguin;
[root@localhost home]# groupadd peguin;useradd -u 2002 -g distro -G peguin slackware [root@localhost home]# id slackwareuid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)[root@localhost home]#
(7)、修改slackware的默認(rèn)shell為/bin/tcsh;
[root@localhost home]# usermod -s /bin/tcsh slackware[root@localhost home]# cat /etc/passwd | tail -1slackware:x:2002:2019::/home/slackware:/bin/tcsh[root@localhost home]#
(8)、為用戶(hù)slackware新增附加組admins,并設(shè)置不可登陸。
[root@localhost home]# groupadd admins;usermod -G admins -s /bin/nologin slackware[root@localhost home]# id slackwareuid=2002(slackware) gid=2019(distro) groups=2019(distro),2021(admins)[root@localhost home]# cat /etc/passwd | tail -1slackware:x:2002:2019::/home/slackware:/bin/nologin[root@localhost home]#
5、創(chuàng)建用戶(hù)user1、user2、user3。在/data/下創(chuàng)建目錄test
(1)、目錄/data/test屬主、屬組為user1
[root@localhost date]# chown user1:user1 /datetest/
(2)、在目錄屬主、屬組不變的情況下,user2對(duì)文件有讀寫(xiě)權(quán)限
[root@localhost date]# setfacl -m u:user2:6 test/[root@localhost date]# getfacl test/# file: test/# owner: user1# group: user1user::rwxuser:user2:rw-group::r-xmask::rwxother::r-x[root@localhost date]# lltotal 0drwxrwxr-x+ 2 user1 user1 6 Nov 28 06:10 test[root@localhost date]#
(3)、user1在/data/test目錄下創(chuàng)建文件a1.sh, a2.sh, a3.sh, a4.sh,設(shè)置所有用戶(hù)都不可刪除1.sh,2.sh文件、除了user1及root之外,所有用戶(hù)都不可刪除a3.sh, a4.sh
[user1@localhost test]$ touch a{1..4}.sh[user1@localhost test]$ lsa1.sh a2.sh a3.sh a4.sh[root@localhost test]# chattr +i a[1..2].sh [root@localhost test]# lsattr ----i--------------- ./a2.sh-------------------- ./a3.sh-------------------- ./a4.sh----i--------------- ./a1.sh[root@localhost test]# rm -rf a1.sh rm: cannot remove a1.sh: Operation not permitted[root@localhost test]# su - user1Last login: Sun Nov 28 06:32:45 EST 2021 on pts/0[user1@localhost ~]$ cd /date/test[user1@localhost test]$ rm -rf a1.sh rm: cannot remove a1.sh: Operation not permitted[root@localhost test]# chmod o+t a[3-4].sh[root@localhost test]# su - user3[user3@localhost ~]$ cd /date/test[user3@localhost test]$ rm -rf a3.sh rm: cannot remove a3.sh: Permission denied[user3@localhost test]$ rm -rf a4.sh rm: cannot remove a4.sh: Permission denied
(4)、user3增加附加組user1,同時(shí)要求user1不能訪(fǎng)問(wèn)/data/test目錄及其下所有文件
[root@localhost test]# usermod -G user1 user3[root@localhost test]# id user3uid=2005(user3) gid=2005(user3) groups=2005(user3),2003(user1)[root@localhost test]# setfacl -m g::0 /date/test[root@localhost test]#
(5)、清理/data/test目錄及其下所有文件的acl權(quán)限
[root@localhost test]# setfacl -b /date/test[root@localhost test]# getfacl /date/testgetfacl: Removing leading / from absolute path names# file: date/test# owner: user1# group: user1user::rwxgroup::---other::r-x[root@localhost test]#