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