从头再来。

1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

答:创建/etc/1abc文件、/etc/2abc-文件,便于说明。

ls -d /etc/[^a-Z][a-Z]* 或 ls -d /etc/[^a-Z][[:alpha:]]* 或 ls -d /etc/[^ [:alpha:]][[:alpha:]]*:显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

注:[^]会出现注脚。

[root@centos8 ~]#touch /etc/1abc
[root@centos8 ~]#touch /etc/2abc-
[root@centos8 ~]#ls -d /etc/[^a-Z][a-Z]*
/etc/1abc  /etc/2abc-
[root@centos8 ~]#ls -d /etc/[^a-Z][[:alpha:]]*
/etc/1abc  /etc/2abc-
[root@centos8 ~]#ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1abc  /etc/2abc-

2、复制/etc目录下,所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

答:① mkdir /tmp/mytest1:创建/tmp/mytest1目录。

② cp -r /etc/p*[^0-9] /tmp/mytest1/:复制/etc目录下,所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

注:[^]会出现注脚。

[root@centos8 ~]#ls -d /etc/p*[^0-9]
/etc/pam.d         /etc/pinforc   /etc/pnm2ppa.conf    /etc/profile
/etc/papersize     /etc/pipewire  /etc/popt.d          /etc/profile.d
/etc/passwd        /etc/pki       /etc/postfix         /etc/protocols
/etc/passwd-       /etc/plymouth  /etc/prelink.conf.d  /etc/pulse
/etc/pbm2ppa.conf  /etc/pm        /etc/printcap
[root@centos8 ~]#mkdir /tmp/mytest1
[root@centos8 ~]#cp -r /etc/p*[^0-9] /tmp/mytest1/
[root@centos8 ~]#ls /tmp/mytest1/
pam.d      pbm2ppa.conf  plymouth      postfix         profile.d
papersize  pinforc       pm            prelink.conf.d  protocols
passwd     pipewire      pnm2ppa.conf  printcap        pulse
passwd-    pki           popt.d        profile

3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中。

答:cat /etc/issue | tr 'a-z' 'A-Z' > /tmp/issue.out:将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中。

[root@centos8 ~]#cat /etc/issue
\S
Kernel \r on an \m

[root@centos8 ~]#cat /etc/issue | tr 'a-z' 'A-Z' > /tmp/issue.out
[root@centos8 ~]#cat /tmp/issue.out
\S
KERNEL \R ON AN \M

[root@centos8 ~]#

4、请总结描述用户和组管理类命令的使用方法并完成以下练习:

(1)、创建组distro,其GID为2019;
(2)、创建用户mandriva,其ID号为1005,基本组为distro;
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期;
(5)、删除用户mandriva,但保留其家目录;
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
(7)、修改用户slackware的默认shell为/bin/tcsh;
(8)、为用户slackware新增附加组admins,并设置不可登陆。

答:① groupadd -g 2019 distro:创建组distro,其GID为2019。

[root@centos8 ~]#groupadd -g 2019 distro
[root@centos8 ~]#getent group distro
distro:x:2019:

② useradd -u 1005 -g distro mandriva:创建用户mandriva,其ID号为1005,基本组为distro。

[root@centos8 ~]#useradd -u 1005 -g distro mandriva
[root@centos8 ~]#getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
[root@centos8 ~]#getent group 2019
distro:x:2019:
[root@centos8 ~]#id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)

③ useradd -u 1100 -d /home/linux mageia:创建用户mageia,其ID号为1100,家目录为/home/linux。

[root@centos8 ~]#useradd -u 1100 -d /home/linux mageia
[root@centos8 ~]#getent passwd mageia
mageia:x:1100:2020::/home/linux:/bin/bash
[root@centos8 ~]#getent group 2020
mageia:x:2020:
[root@centos8 ~]#id mageia
uid=1100(mageia) gid=2020(mageia) groups=2020(mageia)

④ echo mageedu | passwd --stdin mageia:给用户mageia添加密码,密码为mageedu。

[root@centos8 ~]#getent shadow mageia
mageia:!!:18756:0:99999:7:::
[root@centos8 ~]#echo mageedu | passwd --stdin mageia 
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
[root@centos8 ~]#getent shadow mageia
mageia:$6$O/I7PUIJ2cYH2xNb$CYplRMyf2YPqjoEY1SGCL0fkitC/QIQG7OgWc2o3n3EXTQY0VtGqbC9ZjrTVjas6pwYPUqRZ7hRWorTs7QRdE.:18756:0:99999:7:::

⑤ chage -M 7 mageia:给用户mageia设置用户密码7天后过期。

[root@centos8 ~]#chage -l mageia
Last password change					: May 09, 2021
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7
[root@centos8 ~]#chage -M 7 mageia
[root@centos8 ~]#chage -l mageia
Last password change					: May 09, 2021
Password expires					: May 16, 2021
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 7
Number of days of warning before password expires	: 7

⑥ userdel mandriva:删除用户mandriva,但保留其家目录。

[root@centos8 ~]#ll -d /home/mandriva/
drwx------. 3 mandriva distro 78 May  9 23:03 /home/mandriva/
[root@centos8 ~]#userdel mandriva 
[root@centos8 ~]#su mandriva
su: user mandriva does not exist
[root@centos8 ~]#ll -d /home/mandriva/
drwx------. 3 1005 distro 78 May  9 23:03 /home/mandriva/

⑦ groupadd peguin:创建组peguin。

useradd -u 2002 -g distro -G peguin slackware:创建用户slackware,其ID号为2002,基本组为distro,附加组peguin。

[root@centos8 ~]#groupadd peguin
[root@centos8 ~]#getent group peguin 
peguin:x:2021:
[root@centos8 ~]#useradd -u 2002 -g distro -G peguin slackware
[root@centos8 ~]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@centos8 ~]#getent group distro
distro:x:2019:
[root@centos8 ~]#groups slackware
slackware : distro peguin
[root@centos8 ~]#id slackware 
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2021(peguin)

⑧ usermod -s /bin/tcsh slackware:修改用户slackware的默认shell为/bin/tcsh。

[root@centos8 ~]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@centos8 ~]#usermod -s /bin/tcsh slackware
[root@centos8 ~]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh

⑨ groupadd admins:创建组admins。

usermod -aG admins -s /sbin/nologin slackware:为用户slackware新增附加组admins,并设置不可登陆。

[root@centos8 ~]#groupadd admins
[root@centos8 ~]#getent group admins
admins:x:2022:
[root@centos8 ~]#usermod -aG admins -s /sbin/nologin slackware
[root@centos8 ~]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/sbin/nologin
[root@centos8 ~]#groups slackware
slackware : distro peguin admins
[root@centos8 ~]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2021(peguin),2022(admins)

5、创建用户user1、user2、user3,在/data/下创建目录test。

(1)、目录/data/test属主、属组为user1;
(2)、在目录/data/test属主、属组不变的情况下,user2对文件有读写权限;
(3)、user1在/data/test目录下创建文件a1.sh、a2.sh、a3.sh、a4.sh,设置所有用户都不可删除a1.sh、a2.sh文件;除了user1及root之外,所有用户都不可删除a3.sh、a4.sh;
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件;
(5)、清理/data/test目录及其下所有文件的acl权限。

答:① useradd user1 和 useradd user2 和 useradd user3:创建用户user1、user2、user3。

[root@centos8 ~]#useradd user1
[root@centos8 ~]#useradd user2
[root@centos8 ~]#useradd user3
[root@centos8 ~]#getent passwd user1 user2 user3
user1:x:2003:2003::/home/user1:/bin/bash
user2:x:2004:2004::/home/user2:/bin/bash
user3:x:2005:2005::/home/user3:/bin/bash
[root@centos8 ~]#id user1
uid=2003(user1) gid=2003(user1) groups=2003(user1)
[root@centos8 ~]#id user2
uid=2004(user2) gid=2004(user2) groups=2004(user2)
[root@centos8 ~]#id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3)

② mkdir /data/test:在/data/下创建目录test。

[root@centos8 ~]#mkdir /data/test
[root@centos8 ~]#ll -d /data/test
drwxr-xr-x. 2 root root 6 May 10 00:19 /data/test

③ chown user1.user1 /data/test:目录/data/test属主、属组为user1。

[root@centos8 ~]#ll -d /data/test
drwxr-xr-x. 2 root root 6 May 10 00:19 /data/test
[root@centos8 ~]#chown user1.user1 /data/test
[root@centos8 ~]#ll -d /data/test
drwxr-xr-x. 2 user1 user1 6 May 10 00:19 /data/test

④ setfacl -m u:user2:rw /data/test:在目录/data/test属主、属组不变的情况下,user2对文件有读写权限。

[root@centos8 ~]#setfacl -m u:user2:rw /data/test
[root@centos8 ~]#getfacl /data/test
getfacl: Removing leading '/' from absolute path names
# file: data/test
# owner: user1
# group: user1
user::rwx
user:user2:rw-
group::r-x
mask::rwx
other::r-x

[root@centos8 ~]#

⑤ touch a1.sh a2.sh a3.sh a4.sh:user1在/data/test目录下创建文件a1.sh、a2.sh、a3.sh、a4.sh。

[root@centos8 ~]#cd /data/test
[root@centos8 test]#pwd
/data/test
[root@centos8 test]#su user1
[user1@centos8 test]$pwd
/data/test
[user1@centos8 test]$touch a1.sh a2.sh a3.sh a4.sh
[user1@centos8 test]$ll 
total 0
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a1.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a2.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a3.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a4.sh

⑥ chattr +i a1.sh 和 chattr +i a2.sh:设置所有用户都不可删除a1.sh、a2.sh文件。

[user1@centos8 test]$chattr +i a1.sh
chattr: Operation not permitted while setting flags on a1.sh
[user1@centos8 test]$exit
exit
[root@centos8 test]#
[root@centos8 test]#chattr +i a1.sh
[root@centos8 test]#chattr +i a2.sh
[root@centos8 test]#lsattr a1.sh a2.sh
----i--------------- a1.sh
----i--------------- a2.sh
[root@centos8 test]#
[root@centos8 test]#rm -f a1.sh 
rm: cannot remove 'a1.sh': Operation not permitted
[root@centos8 test]#rm -f a2.sh 
rm: cannot remove 'a2.sh': Operation not permitted

⑦ chmod o+t /data/test/:对于/data/test目录增加“Sticky”权限。这样,除了user1及root之外,所有用户都不可删除a3.sh、a4.sh。

[root@centos8 test]#ll -d /data/test/
drwxrwxr-x+ 2 user1 user1 58 May 10 00:36 /data/test/
[root@centos8 test]#chmod o+t /data/test/
[root@centos8 test]#ll -d /data/test/
drwxrwxr-t+ 2 user1 user1 58 May 10 00:36 /data/test/
[root@centos8 test]
[root@centos8 test]#su qian
[qian@centos8 test]$rm -f a3.sh 
rm: cannot remove 'a3.sh': Permission denied
[qian@centos8 test]$rm -f a4.sh 
rm: cannot remove 'a4.sh': Permission denied

⑧ gpasswd -a user3 user1:user3增加附加组user1。

[root@centos8 test]#id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3)
[root@centos8 test]#gpasswd -a user3 user1
Adding user user3 to group user1
[root@centos8 test]#id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3),2003(user1)

⑨ chmod u-x,g-x /data/test/:user1不能访问/data/test目录及其下所有文件。

注:题目中没有明确user1是用户还是组。保险起见,所有者user1和所属组user1都减少“执行”权限。

[root@centos8 test]#ll -d /data/test/
drwxrwxr-t+ 2 user1 user1 58 May 10 00:58 /data/test/
[root@centos8 test]#chmod u-x,g-x /data/test/
[root@centos8 test]#ll -d /data/test/
drw-rw-r-t+ 2 user1 user1 58 May 10 00:58 /data/test/
[root@centos8 test]#
[root@centos8 test]#cd ..
[root@centos8 data]#su user1
[user1@centos8 data]$cd /data/test/
bash: cd: /data/test/: Permission denied
[user1@centos8 data]$ls /data/test/
ls: cannot access '/data/test/a1.sh': Permission denied
ls: cannot access '/data/test/a2.sh': Permission denied
ls: cannot access '/data/test/a3.sh': Permission denied
ls: cannot access '/data/test/a4.sh': Permission denied
a1.sh  a2.sh  a3.sh  a4.sh
[user1@centos8 data]$exit
exit
[root@centos8 data]#
[root@centos8 data]#su user3
[user3@centos8 data]$cd /data/test/
bash: cd: /data/test/: Permission denied
[user3@centos8 data]$ls /data/test/
ls: cannot access '/data/test/a1.sh': Permission denied
ls: cannot access '/data/test/a2.sh': Permission denied
ls: cannot access '/data/test/a3.sh': Permission denied
ls: cannot access '/data/test/a4.sh': Permission denied
a1.sh  a2.sh  a3.sh  a4.sh
[user3@centos8 data]$exit
exit
[root@centos8 data]#
[root@centos8 data]#su qian
[qian@centos8 data]$cd test
[qian@centos8 test]$pwd
/data/test
[qian@centos8 test]$ll
total 0
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a1.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a2.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a3.sh
-rw-rw-r--. 1 user1 user1 0 May 10 00:36 a4.sh

⑩ setfacl -Rb /data/test:清理/data/test目录及其下所有文件的acl权限。

[root@centos8 data]#setfacl -Rb /data/test
[root@centos8 data]#getfacl /data/test
getfacl: Removing leading '/' from absolute path names
# file: data/test
# owner: user1
# group: user1
# flags: --t
user::rw-
group::r--
other::r-x

[root@centos8 data]#
上一篇:2021-05-14


下一篇:第二周作业提交