練習一

1、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄

[root@localhost etc]# ls -d /etc/[^[:alpha:]][:alpha:]*

2、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/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文件中的內容轉換為大寫后保存至/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]# 

總結描述用戶和組管理類命令的使用方法并完成以下練習:

linux每個用戶是通過UID來區分的也是用戶得唯一標識

管理員:root  0普通用戶:1-60000自動分配系統用戶:1-499 (CentOS 6以前), 1-999 (CentOS 7以后)登錄用戶:500+ (CentOS6以前), 1000+(CentOS7以后)

Linux中可以將一個或多個用戶加入用戶組中,用戶組是通過GID來唯一標識的。

管理員組:root, 0 普通組: 系統組:1-499(CentOS 6以前), 1-999(CentOS7以后)普通組:500+(CentOS 6以前), 1000+(CentOS7以后)

主要配置文件

/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)/etc/shadow:用戶口令及其相關屬性 /etc/group:組及其屬性信息 /etc/gshadow:組口令及其相關屬性### 用戶創建語法```httpuseradd [options] LOGIN

選項

-u UID -o 配合-u 選項,不檢查UID的唯一性-g GID 指明用戶所屬基本組,可為組名,也可以GID-c "COMMENT“ 用戶的注釋信息-d HOME_DIR 以指定的路徑(不存在)為家目錄-s SHELL 指明用戶的默認shell程序,可用列表在/etc/shells文件中-G GROUP1[,GROUP2,...] 為用戶指明附加組,組須事先存在-N 不創建私用組做主組,使用users組做主組-r 創建系統用戶 CentOS 6之前: ID<500,CentOS7 以后: ID<1000-m 創建家目錄,用于系統用戶-M 不創建家目錄,用于非系統用戶-p 指定加密的密碼

useradd -r -u 48 -g http -s /sbin/nologin -d /var/www -c "http" http

用戶屬性修改

語法

usermod [OPTION] login

選項

-u UID: 新UID-g GID: 新主組-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項-s SHELL:新的默認SHELL-c COMMENT:新的注釋信息-d HOME: 新家目錄不會自動創建;若要創建新家目錄并移動原家數據,同時使用-m選項-l login_name: 新的名字-L: lock指定用戶,在/etc/shadow 密碼欄的增加 ! -U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉-e YYYY-MM-DD: 指明用戶賬號過期日期-f INACTIVE: 設定非活動期限,即寬限期

刪除用戶

語法

userdel [OPTION]... Login

選項

-f, --force   強制-r, --remove 刪除用戶家目錄和郵箱

查看用戶ID

id [OPTION]... [USER]

選項

-u: 顯示UID-g: 顯示GID-G: 顯示用戶所屬的組的ID-n: 顯示名稱,需配合ugG使用

切換用戶

su [options...] [-] [user [args...]]

選項

-l  --login   su -l UserName   相當于 su - UserName-c, --command          pass a single command to the shell with -c

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄,即不完 全切換 su - UserName:登錄式切換,會讀取目標用戶的配置文件,切換至自已的家目錄,即完全切換 說明:root su至其他用戶無須密碼;非root用戶切換時需要密碼 

注意:su 切換新用戶后,使用 exit 退回至舊的用戶身份,而不要再用 su 切換至舊用戶,否則會生成很 多的bash子進程,環境可能會混亂。

修改口令

passwd [OPTIONS] UserName

選項

-d:刪除指定用戶口令-l:鎖定指定用戶-u:解鎖指定用戶-e:強制用戶下次登錄修改口令-f:強制操作-n mindays:指定最短使用期限-x maxdays:最大使用期限-w warndays:提前多少天開始警告-i inactivedays:非活動期限--stdin:從標準輸入接收用戶口令,Ubuntu無此選項

修改用戶口令策略

chage [OPTION]... LOGIN

選項

-d LAST_DAY               #更改口令的時間-m --mindays MIN_DAYS-M --maxdays MAX_DAYS-W --warndays WARN_DAYS-I --inactive INACTIVE #口令過期后的寬限期-E --expiredate EXPIRE_DATE #用戶的有效期-l 顯示口令策略

創建組

groupadd [OPTION]... group_name

選項

-g GID 指明GID號;[GID_MIN, GID_MAX]-r 創建系統組,CentOS 6之前: ID<500,CentOS 7以后: ID<1000

修改組

groupmod [OPTION]... group

選項

-n group_name: 新名字-g GID: 新的GID

刪除組

groupdel [options] GROUP

選項

-f, --force 強制刪除,即使是用戶的主組也強制刪除組,但會導致無主組的用戶不可用無法登錄

更改組口令

gpasswd命令,可以更改組口令,也可以修改附加組的成員關系

gpasswd [OPTION] GROUP

選項

-a user 將user添加至指定組中-d user 從指定附加組中移除用戶user-A user1,user2,... 設置有管理權限的用戶列表

更改和查看組成員

groupmems [options] [action]

選項

-g, --group groupname   #更改為指定組 (只有root)-a, --add username     #指定用戶加入組-d, --delete username #從組中刪除用戶-p, --purge               #從組中清除所有成員-l,  --list                 #顯示組成員列表

練習二

(1)、創建組distro,其GID為2019;

root@localhost /]# groupadd -g 2019 distro

(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;

[root@localhost /]# useradd -u 1005 -g 2019 mandriva[root@localhost /]# 

(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;

[root@localhost /]# useradd -u 1100 -d /home/linux mageia

(4)、給用戶mageia添加口令,口令為mageedu,并設置用戶口令7天后過期

[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)、創建用戶slackware,其ID號為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的默認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)、為用戶slackware新增附加組admins,并設置不可登陸。

[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、創建用戶user1、user2、user3。在/data/下創建目錄test
(1)、目錄/data/test屬主、屬組為user1

[root@localhost date]# chown user1:user1 /datetest/

(2)、在目錄屬主、屬組不變的情況下,user2對文件有讀寫權限

[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目錄下創建文件a1.sh, a2.sh, a3.sh, a4.sh,設置所有用戶都不可刪除1.sh,2.sh文件、除了user1及root之外,所有用戶都不可刪除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,同時要求user1不能訪問/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權限

[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]#