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

   

[root@centos79 etc]# ls /etc/[^[:alpha:][a-z]* -dl

-rw-r--r--. 1 root root 0 Nov 28 09:44 /etc/66

drwxr-xr-x. 2 root root 6 Nov 28 09:45 /etc/666dir

-rw-r--r--. 1 root root 0 Nov 28 09:44 /etc/666hao

问题:etc目录下的66后面未跟字母,不符合要求但依然匹配到了。

   

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

[root@centos79 ~]# mkdir /tmp/mytest1

[root@centos79 ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/

cp -r /etc/p*[^0-9] /tmp/mytest1/

[root@centos79 ~]# ll /tmp/mytest1/

   

   

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

[root@centos79 ~]# cat /etc/issue | tr 'a-z' 'A-Z' > /tmp/issue.out

tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out

[root@centos79 ~]# cat /tmp/issue.out

\S

KERNEL \R ON AN \M

   

   

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

    用户创建:useradd

    用户属性修改:usermod

    删除用户:userdel 保留用户数据;完全删除

    查看用户相关的ID信息:id

    切换用户或以其他用户身份执行命令:su不完全切换 su - 完全切换

    设置密码:passwd

    修改用户密码策略:chage

   

  • 创建组:groupadd

    修改组:groupmod

    删除组:groupdel

    更改组密码:gpasswd

    更改和查看组成员:groupmems

   

   

   

(1)、创建组distro,其GID2019

[root@centos79 ~]# groupadd -g 2019 distro

[root@centos79 ~]# cat /etc/group |grep distro

distro:x:2019:

问题:有更快捷查询用户组ID的命令和方法吗?

   

(2)、创建用户mandriva, ID号为1005;基本组为distro

[root@centos79 ~]# useradd -u 1005 -g distro mandriva

[root@centos79 ~]# id mandriva

uid=1005(mandriva) gid=2019(distro) groups=2019(distro)

   

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

[root@centos79 ~]# useradd -u 1100 -d -m /home/linux/ mageia

[root@centos79 ~]# cat /etc/passwd |grep mageia

mageia:x:1100:1100::/home/linux/:/bin/bash

问题:有更快捷查询用户家目录的命令和方法吗?

   

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期

[root@centos79 ~]# echo "mageedu" |passwd --stdin mageia && passwd -x 7 mageia

Changing password for user mageia.

passwd: all authentication tokens updated successfully.

Adjusting aging data for user mageia.

passwd: Success

[root@centos79 ~]# cat /etc/shadow |grep mageia

mageia:$6$aQyYsMJp$YhW2TNMQ6xf2DDq1Tozv5SN3ldNDN7yZuz3LwQ2aE.epE7WZhtXyoI2cX0WLNds7E3rWWLL5gWIdRUyox9YPU1:18959:0:7:7:::

问题:有更快捷查询用户密码有效期的命令和方法吗?

   

(5)、删除mandriva,但保留其家目录;

   

[root@centos79 ~]# userdel mageia

[root@centos79 ~]# ll /home |grep 1100

drwx------. 2 1100 1100 62 Nov 28 11:34 linux

[root@centos79 ~]# ll /var/mail/ |grep 1100

-rw-rw----. 1 1100 mail 0 Nov 28 11:34 mageia6

备注:用户被删除后,文件属主和属组的位置将显示用户的ID不再显示用户名和组名。

userdel -r LOGIN 在删除用户时,将删除用户的home directory and mail spool

   

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin

[root@centos79 ~]# groupadd peguin && useradd -u 2002 -g distro -G peguin slackware

[root@centos79 ~]# id slackware

uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)

   

   

(7)、修改slackware的默认shell/bin/tcsh

[root@centos79 ~]# usermod -s /bin/tcsh slackware

[root@centos79 ~]# cat /etc/passwd |grep slackware

slackware:x:2002:2019::/home/slackware:/bin/tcsh

问题:有更快捷查询用户shell的命令和方法吗?

   

(8)、为用户slackware新增附加组admins,并设置不可登陆。

[root@centos79 ~]# groupadd admins && usermod -aG admins -s /sbin/nologin slackware

[root@centos79 ~]# id slackware

uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)

[root@centos79 ~]# cat /etc/passwd |grep slackware

slackware:x:2002:2019::/home/slackware:/sbin/nologin

   

5、创建用户user1user2user3。在/data/下创建目录test

[root@centos79 ~]# useradd user1;useradd user2;useradd user3;mkdir -p /data/test

[root@centos79 ~]# id user1;id user2;id user3;ll -d /data/test

uid=2022(user1) gid=2022(user1) groups=2022(user1)

uid=2023(user2) gid=2023(user2) groups=2023(user2)

uid=2024(user3) gid=2024(user3) groups=2024(user3)

drwxr-xr-x. 2 root root 6 Nov 28 15:18 /data/test

问题:有更快捷一次新建多个账号的命令或方法吗(shell脚步)

(1)、目录/data/test属主、属组为user1

[root@centos79 ~]# chown user1:user1 /data/test

[root@centos79 ~]# ll -d /data/test

drwxr-xr-x. 2 user1 user1 6 Nov 28 15:18 /data/test

   

(2)、在目录属主、属组不变的情况下,user2对文件有读写权限

[root@centos79 ~]# setfacl -m u:user2:rwx /data/test

[root@centos79 ~]# ll -d /data/test

drwxrwxr-x+ 2 user1 user1 6 Nov 28 15:18 /data/test

[root@centos79 ~]# getfacl /data/test

getfacl: Removing leading '/' from absolute path names

# file: data/test

# owner: user1

# group: user1

user::rwx

user:user2:rwx

group::r-x

mask::rwx

other::r-x

   

(3)user1/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh2.sh文件、除了user1root之外,所有用户都不可删除a3.sh, a4.sh

[root@centos79 ~]# touch /data/test/{1..4}.sh

[root@centos79 ~]# ll /data/test

total 0

-rw-r--r--. 1 root root 0 Nov 28 15:37 1.sh

-rw-r--r--. 1 root root 0 Nov 28 15:37 2.sh

-rw-r--r--. 1 root root 0 Nov 28 15:37 3.sh

-rw-r--r--. 1 root root 0 Nov 28 15:37 4.sh

   

[root@centos79 ~]# cd /data/test/

[root@centos79 test]# chattr +a {1..2}.sh

[root@centos79 test]# lsattr

-----a---------- ./1.sh

-----a---------- ./2.sh

---------------- ./3.sh

---------------- ./4.sh

[root@centos79 test]# chmod 700 {3..4}.sh

[root@centos79 test]# setfacl -m u:user1:rwx {3..4}.sh

[root@centos79 test]# getfacl {3..4}.sh

# file: 3.sh

# owner: root

# group: root

user::rwx

user:user1:rwx

group::---

mask::rwx

other::---

   

# file: 4.sh

# owner: root

# group: root

user::rwx

user:user1:rwx

group::---

mask::rwx

other::---

问题:除了user1root之外,所有用户都不可删除a3.sh, a4.sh,这个问题还有更好的实现方式吗?

   

(4)user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件

[root@centos79 test]# usermod -G user1 user3

[root@centos79 test]# id user3

uid=2024(user3) gid=2024(user3) groups=2024(user3),2022(user1)

   

[root@centos79 test]# chown user2:user2 /data/test

[root@centos79 test]# setfacl -m u:user1:--- /data/test

[root@centos79 test]# getfacl /data/test

getfacl: Removing leading '/' from absolute path names

# file: data/test

# owner: user2

# group: user2

user::rwx

user:user1:---

group::r-x

mask::r-x

other::r-x

   

(5)、清理/data/test目录及其下所有文件的acl权限

   

[root@centos79 test]# setfacl -R -b /data/test

[root@centos79 test]# 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