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


[root@centos84 ~]# ls /etc/[^[alpha]][[:alpha:]]*

ls: cannot access '/etc/[^[alpha]][[:alpha:]]*': No such file or directory

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

[root@centos84 ~]# mkdir -p /tmp/mytest1

[root@centos84 ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@centos84 ~]# ls /tmp/mytest1

pam.d passwd pbm2ppa.conf pipewire plymouth pnm2ppa.conf prelink.conf.d profile protocols

papersize passwd- pinforc pki pm popt.d printcap profile.d pulse

[root@centos84 ~]# mkdir -p /tmp/mytest2

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

[root@centos84 ~]# ls /tmp/mytest2

pam.d passwd pbm2ppa.conf pipewire plymouth pnm2ppa.conf prelink.conf.d profile protocols

papersize passwd- pinforc pki pm popt.d printcap profile.d pulse

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

[root@centos84 ~]# cat /etc/issue

\S

Kernel \r on an \m

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

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

\S

KERNEL \R ON AN \M

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

useradd:

-u UID 指定用户的UID UID 定义再/etc/login.defs

-g GID 指定用户所属的基本组

-c 用户注释信息

-d 指定用户的家目录,从/etc/skel/目录中复制文件到家目录

-s 指定默认的shell,在/etc/shells

-G 附加组,组需存在

-D 显示和修改默认属性

userdel:

userdel username 删除用户,不删除家目录

userdel -rf username 强制删除用户,同时删除家目录

passwd:

passwd username 修改password

-d 删除指定用户password

-l 锁定指定用户

-u 解锁指定账户

-e 强制用户下次登录修改password

-f 强制操作

-n mindays 指定最短使用期限

-x maxdays 指定最长使用期限

-w warndays 提前多少天开始告警

echo "password" | passwd --stdin Username &> /dev/null //--stdin 将前一个指令的结果作为后指令的标准输入内容,Ubuntu无此选项

通用的方法:

echo -e "123456\n123456" | passwd mage &> /dev/null

usermod: 用户属性修改

-u 新的UID

-g 新的主组GID

-G 新的附加组,原来的附加组将会被覆盖;若保留原有,则要同时使-a 用-aG选项

-s 新的默认shell

-c 新的注释信息

-d 新的家目录不会自动创建,若要创建新的家目录并移动原家目录数据,需要和-m 一起使用

-l 新的名字

-L 锁定账户,在/etc/shadow password栏中增加 !

-U 解锁账户,在/etc/shadow password栏中删除 !

-e 知名账户过期日期

-f 设定非活动期限,即宽限期

groupadd

-g GID 指明GID

groupdel

-f 强制删除组

gourpmod

-n 新的Gname

-g 新的GID

(1)、创建组distro,其GID为2019;

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

[root@centos84 ~]# tail -10 /etc/group

flatpak:x:977:

colord:x:976:

rpcuser:x:29:

gdm:x:42:

gnome-initial-setup:x:975:

sshd:x:74:

slocate:x:21:

tcpdump:x:72:

nt:x:1000:

distro:x:2019:

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

[root@centos84 ~]# useradd -u 1005 -g 2019 mandriva

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

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

[root@centos84 ~]# tail -5 /etc/passwd

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

nt:x:1000:1000:nt:/home/nt:/bin/bash

mandriva:x:1005:2019::/home/mandriva:/bin/bash

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

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

[root@centos84 ~]# echo "mageedu" | passwd --st

--status --stdin

[root@centos84 ~]# echo "mageedu" | passwd --stdin mageia

Changing password for user mageia.

passwd: all authentication tokens updated successfully.

[root@centos84 ~]# passwd -x 7 mageia

[root@centos84 ~]# tail -5 /etc/shadow

sshd:!!:18950::::::

tcpdump:!!:18950::::::

nt:$6$.hgqZuLBvPLRBh0a$rTTD1MSZYyYtx46NBeKWtDsw5VA72ZagEiQ9QuV5wsf1iPIIUvAmmJApzZ3GGLM54C3aVG50OT4Kb1AuPzs7B/:18950:0:99999:7:::

mandriva:!!:18954:0:99999:7:::

mageia:$6$3/Oxn3i9hoi4GQZv$RDF//zj2H.MXprMydmLcKu9A6oHh3onLAYPDyFSwNEi7CtdnNX6/ioDddxDspxlaPSK8zjVVYDuu7ZVOXS3iJ0:18954:0:7:7:::

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

[root@centos84 ~]# userdel mandriva

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

[root@centos84 ~]# groupadd peguin

[root@centos84 ~]# useradd -u 2002 -g distro -G peguin slackware

[root@centos84 ~]# id slackware

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

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

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

[root@centos84 ~]#

[root@centos84 ~]# tail -5 /etc/passwd

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

nt:x:1000:1000:nt:/home/nt:/bin/bash

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

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

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

[root@centos84 ~]# usermod -s /sbin/noloin -G admins -a slackware

[root@centos84 ~]#

[root@centos84 ~]#

[root@centos84 ~]# id slackware

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

[root@centos84 ~]# tail -5 /etc/passwd

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

nt:x:1000:1000:nt:/home/nt:/bin/bash

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

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

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

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

[root@centos84 ~]# useradd user1

[root@centos84 ~]# useradd user2

[root@centos84 ~]# useradd user3

或 root@ubuntu1804:~# echo user{1..3} | xargs -n 1 useradd

[root@centos84 ~]# mkdir -p /data/test

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

[root@centos84 ~]# ls -ld /data/test

drwxr-xr-x. 2 user1 user1 6 Nov 23 07:24 /data/test

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

[root@centos84 ~]# setfacl -R -m u:user2:rw- /data/test/

[root@centos84 ~]# 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

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

[root@centos84 ~]# su - user1

[user1@centos84 ~]$ touch /data/test/a{1..4}.sh

[user1@centos84 ~]$ ls -l /data/test/

total 0

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a1.sh

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a2.sh

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a3.sh

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a4.sh

[root@centos84 ~]# chmod o-r /data/test/a1.sh /data/test/a2.sh

[root@centos84 ~]# chattr +i /data/test/a3.sh /data/test/a4.sh

[root@centos84 ~]# ls -l /data/test/

total 0

-rw-rw----. 1 user1 user1 0 Nov 23 07:32 a1.sh

-rw-rw----. 1 user1 user1 0 Nov 23 07:32 a2.sh

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a3.sh

-rw-rw-r--. 1 user1 user1 0 Nov 23 07:32 a4.sh

[root@centos84 ~]# lsattr /data/test/

-------------------- /data/test/a1.sh

-------------------- /data/test/a2.sh

----i--------------- /data/test/a3.sh

----i--------------- /data/test/a4.sh

[root@centos84 ~]# rm -rf /data/test/a3.sh

rm: cannot remove '/data/test/a3.sh': Operation not permitted

[root@centos84 ~]# rm -rf /data/test/a4.sh

rm: cannot remove '/data/test/a4.sh': Operation not permitted

[root@centos84 ~]# su - user2

[user2@centos84 ~]$ rm -rf /data/test/a1.sh

[user1@centos84 ~]$ ls /data/test/

a2.sh a3.sh a4.sh

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

[root@centos84 ~]# usermod -aG user1 user3

[root@centos84 ~]# id user3

uid=2005(user3) gid=2005(user3) groups=2005(user3),2003(user1)

[root@centos84 ~]#

[root@centos84 ~]# setfacl -mR u:user1:--- /data/test/

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

getfacl: Removing leading '/' from absolute path names

# file: data/test/

# owner: user1

# group: user1

user::rwx

user:user1:---

user:user2:rw-

group::r-x

mask::rwx

other::r-x

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

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

[root@centos84 ~]#

[root@centos84 ~]# 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@centos84 ~]# getfacl /data/test/a

a2.sh a3.sh a4.sh

[root@centos84 ~]# getfacl /data/test/a2.sh

getfacl: Removing leading '/' from absolute path names

# file: data/test/a2.sh

# owner: user1

# group: user1

user::rw-

group::rw-

other::---