第二周作业
1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
root@node02 etc]# touch 1.txt
[root@node02 etc]# touch 12.txt
[root@node02 etc]# touch 1a.txt
[root@node02 etc]# touch 1abc.txt
[root@node02 etc]# ls -d [^[:alpha:]][:alpha:]* #解释 [:alpha:] 任意字母,不区分大小写, ^ 是取非 -d 显示目录本身信息,不包括目录里边的信息
1abc.txt 1a.txt
[root@node02 etc]#
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@node02 /]# mkdir /tmp/mytest1
[root@node02 /]# cp /etc/p*[^0-9] /tmp/mytest1
cp: omitting directory ‘/etc/pam.d’
cp: omitting directory ‘/etc/pki’
cp: omitting directory ‘/etc/plymouth’
cp: omitting directory ‘/etc/pm’
cp: omitting directory ‘/etc/popt.d’
cp: omitting directory ‘/etc/postfix’
cp: omitting directory ‘/etc/ppp’
cp: omitting directory ‘/etc/prelink.conf.d’
cp: omitting directory ‘/etc/profile.d’
cp: omitting directory ‘/etc/python’
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@node02 /]# cat /etc/issue | tr 'a-z' 'A-Z' > /tmp/issue.out
[root@node02 /]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
[root@node02 /]# cat /etc/issue
\S
Kernel \r on an \m
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
用户组:
增groupadd 删 groupdel 改 groupmod 查 groups 可查看用户组关系
groupadd [选项] group-name 选项:-g(指明GID号) 和-r(创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000)
groupdel [选项] group 选项:-f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录
groupmod [选项] group 选项:-n group_name: 新名字 和 -g GID: 新的GID
groups [OPTION].[USERNAME]...
更改组密码 gpasswd
临时切换组:newgrp 命令可以临时切换主组, 如果用户本不属于此组,则需要组密码
(1)、创建组distro,其GID为2019;
[root@node02 /]# groupadd -g 2019 distro
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@node02 /]# useradd -u 1005 -g distro mandriva
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@node02 /]# useradd -u 1100 -d /home/linux mageia
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@node02 /]# passwd mageia #更改密码,密码需要输入两遍
Changing password for user mageia.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node02 /]# chage -E 2022-3-16 mageia #设置有效期到7天后
[root@node02 /]# chage -l mageia #显示密码策略
Last password change : Mar 09, 2022
Password expires : never
Password inactive : never
Account expires : Mar 16, 2022
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@node02 /]#
(5)、删除mandriva,但保留其家目录;
[root@node02 /]# userdel mandriva
[root@node02 /]# ls /home
linux mandriva
[root@node02 /]#
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@node02 /]# groupadd peguin
[root@node02 /]# useradd -u 2002 -g distro -G peguin slackware
[root@node02 /]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
[root@node02 /]#
(7)、修改slackware的默认shell为/bin/tcsh;
[root@node02 /]# usermod -s /bin/tcsh slackware
[root@node02 /]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[root@node02 /]#
(8)、为用户slackware新增附加组admins,并设置不可登陆。
[root@node02 /]# groupadd admins
[root@node02 /]# gpasswd -a slackware admins #添加用户到组
Adding user slackware to group admins
[root@node02 /]# usermod -s /bin/nologin slackware #建立的用户禁止ssh 登录,恢复的话用 usermod -s /bin/bash slackware ( slackware 是用户名)
[root@node02 /]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
[root@node02 /]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/nologin
[root@node02 /]#
5、创建用户user1、user2、user3。在/data/下创建目录test
[root@node02 /]# useradd user1;useradd user2;useradd user3;
[root@node02 /]# id user1;id user2;id user3;
uid=2003(user1) gid=2003(user1) groups=2003(user1)
uid=2004(user2) gid=2004(user2) groups=2004(user2)
uid=2005(user3) gid=2005(user3) groups=2005(user3)
[root@node02 /]# mkdir /data/test
(1)、目录/data/test属主、属组为user1
[root@node02 data]# chown user1:user1 /data/test
[root@node02 data]# ll
total 0
drwxr-xr-x. 2 user1 user1 6 Mar 9 22:31 test
[root@node02 data]#
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
[root@node02 data]# getfacl /data/test
getfacl: Removing leading '/' from absolute path names
# file: data/test
# owner: user1
# group: user1
user::rwx
group::r-x
other::r-x
[root@node02 data]# setfacl -m u:user2:rw /data/test
[root@node02 data]# 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@node02 data]#
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
[root@node02 /]# su user1
[user1@node02 /]$ touch /data/test/a{1..4}.sh
[user1@node02 /]$ ls /data/test/
a1.sh a2.sh a3.sh a4.sh
[user1@node02 /]$ exit
exit
[root@node02 /]# chattr +i /data/test/a{1..2}.sh
[root@node02 /]# lsattr /data/test/
----i----------- /data/test/a1.sh
----i----------- /data/test/a2.sh
---------------- /data/test/a3.sh
---------------- /data/test/a4.sh
[root@node02 /]# chmod o+t /data/test/a{3..4}.sh
[root@node02 /]# ll /data/test/
total 0
-rw-rw-r--. 1 user1 user1 0 Mar 9 22:58 a1.sh
-rw-rw-r--. 1 user1 user1 0 Mar 9 22:58 a2.sh
-rw-rw-r-T. 1 user1 user1 0 Mar 9 22:58 a3.sh
-rw-rw-r-T. 1 user1 user1 0 Mar 9 22:58 a4.sh
[root@node02 /]#
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
[root@node02 /]# gpasswd -a user3 user1
Adding user user3 to group user1
[root@node02 /]# id user3
[root@node02 /]# chmod -R o=--- /data/test
chmod: changing permissions of ‘/data/test/a1.sh’: Operation not permitted
chmod: changing permissions of ‘/data/test/a2.sh’: Operation not permitted
[root@node02 /]#
(5)、清理/data/test目录及其下所有文件的acl权限
[root@node02 /]# setfacl -R -b /data/test
[root@node02 /]# getfacl /data/test/
getfacl: Removing leading '/' from absolute path names
# file: data/test/
# owner: user1
# group: user1
user::rwx
group::r-x
other::---
[root@node02 /]#