一、通配符

  1. 练习巩固
显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@Centos8 ~] # ll /etc/[^[:alpha:]]*[:alpha:]*
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@Centos8 ~] # cp -R /etc/p[^[:digit:]] /tmp/mytest1/
将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@Centos8 ~] #tr 'a-z' 'A-Z' /etc/issue </tmp/issue.out

二、用户及用户组

  1. 基本知识

     a) useradd  创建用户

useradd option login

-u 用户ID

-o -u一起使用,不见UID的唯一性

-d 指定家目录

-s 指定用户的shell类型

-c 对用户进行一些注释信息

-g 将用户添加到主组信息

-G 将用户添加到附加组中,且组必须事先存在

-r 创建系统用户,即对进程具备资源权限分配的用户,实际是不需要登录的用户;

-m 系统用户创建家目录,注意是系统用户

-M 不创建家目录,用于非系统用户

-N 不创建私有组做主组,使用uers的组做主组;

-p 给用户加passwd(后面跟的是加密的passwd)

-D 打印或者修改默认的useradd信息(/etc/default/useradd

1useradd -D 打印useradd的默认参数信息

2useradd -D -s SHELL 修改默认的shell类型,例如useradd -D -s /sbin/nologin

3useradd -D -b BASE_DIR 修改默认的家目录路径

4useradd -D -g GROUP 修改默认的组信息

注:useradd默认的是存在/etc/default/useradd文件中,当不输入相应的option时,则会按照这个文件里的进行创建用户的一些属性信息。

b)  usermod  修改用户属性信息

usermod option login

-u 修改用户ID

-d 修改家目录,需要同时使用-m 移除原来的家目录,否则不会自动创建

-s 修改用户的shell类型

-c修改对用户进行的一些注释信息

-g修改用户主组信息

-G 将用户添加到附加组中,且组必须事先存在,若不需要覆盖之前的附加组,需要同时使用-a

-l  修改用户名

-L  锁定用户,在/etc/shadow中的passwd列中增加!

-U  取消锁定用户,在/etc/shadow中的passwd列中删除!

-e  YYYY-MM-DD  指明用户账号过期日期 -f  INACTIVE  设定非活动期限,即宽限期

c)  userdel    删除用户

userdel option login

-f 强制删除用户

-r 删除用户家目录和邮箱

d)  id    查看用户信息

idoption login

-u 显示用户ID

-g 显示用户所在主组ID

-G 显示用户所在附加组ID

-n  显示用户信息,需配合ugG使用,例如id  -n  -u  ql ,查看用户名称。

e)  su   切换用户身份

suoption】【-user

-l 即用户名,和su username是相同的;

-c command,换身份执行命令,例如 su [-] username -c ‘command’

切换用户身份有2种方式

①      su username ,是指非登录式切换,只切换了用户登录身份,并没有切换家目录以及该用户配置文件;

②      su – username,是登录式切换;

注:Aroot登录中切换其它用户不需要passwd,其它用户切换需要passwd;

B、需要退回之前的用户,使用exit即可

f) passwd   可修改用户口令

passwdoptionUserName

-d  删除指定用户passwd

-l  锁定指定用户

-u  解锁指定用户

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

-f  强制操作

-n  mindays,最小使用天数

-x  maxdays,最大使用天数

-i  用户锁定,非活动期限;

-w 提前多少天提示;

--stdin 从标准输入接收passwd,ubuntu无此选项;

passwd的修改分为两种方式

①       Passwd常规使用是交互式修改passwd,执行命令后需要连续输入passwd两次才会修改成功;

②      非交互式修改passwd更通用,例如

A . echo -e ‘12356’ |  passwd  ql 适合各种linux版本

B . echo ‘123456’ | passwd –stdin ql 适合红帽各系列

C . passwd ql <<EOF 回车后输入2遍passwd,再输入EOF结束符;

D . echo  wang:Centos | chpasswd

g)chage 修改用户passwd策略

chageoptionUserName

-d   LAST_DAY     更改passwd的时间 -m  MIN_DAYS    更改passwd最短有效期 -M  MAX_DAYS   更改passwd最大有效期 -W  WARN_DAYS   passwd到期前多久进行提醒 -I  passwd过期后的宽限期 -E  用户的有效期 -l  显示passwd策略

h)  其它用户指令

chfn  指定用户个人信息,例如用户名等

figner 查看用户个人信息

chsh  指定用户的shell类型,使用时加上-s

i) groupadd  创建新组

groupaddoptiongroupName

-g 指明GID

-r 创建系统组(即对进程具备资源权限分配的组,centosID<1000

j) groupmod  修改组属性信息

groupmodoptiongroupName

-n  group_newname  group_oldname 给组起新名字

-g 分配新的gid

k) groupdel    删除组

groupdeloptiongroupName

-f 强制删除、主组也会删除,如果是无主组的用户,则无法登录;

a) gpasswd    更改组passwd&修改附加组的成员关系

gpasswdoptiongroupName

-a user user添加到指定组中

-d user 从附加组中移除用户user

-A user1user2,… 设置有管理权限的用户列表

b) newgrp   临时切换主组,如果用户不属于主组,则需要组passwd(所以需要先对组设置passwd,一般创建的组是没有passwd的)

c) groupmems 管理附加组的成员关系

groupmemsoption】【action

-g 更改指定组,只有root是有权限操作

-a user user添加到指定组中

-d user 组中移除用户user

-p 从组中清除所有成员

-l  显示组中成员列表

d) groups 查看用户组关系

e) 练习

02~文件通配符、用户及用户组_练习2

  1. 练习巩固
创建组distro,其GID为2019;
[root@Centos8 ~] # groupadd -g 2019 distro
创建用户mandriva, 其ID号为1005;基本组为distro;
[root@Centos8 ~] # useradd -r -u 1005 -g distro mandriva
创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@Centos8 ~] # useradd -r -u 1100 -d /home/linux mageia
给用户mageia添加passwd,passwd为mageedu,并设置用户passwd7天后过期
[root@Centos8 ~] # echo 'mageedu' | passwd -x 7 mageia
删除mandriva,但保留其家目录;
[root@Centos8 ~] # userdel mandriva
创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@Centos8 ~] # useradd -r -u 2002 -g distro slackware;
[root@Centos8 ~] # gpasswd -a slackware peguin
修改slackware的默认shell为/bin/tcsh;
[root@Centos8 ~] # usermod -s /bin/tcsh slackware
为用户slackware新增附加组admins,并设置不可登陆。
[root@Centos8 ~] #usermod -G -a admins -s /sbin/nologin slackware
创建用户user1、user2、user3。在/data/下创建目录test
(1)、目录/data/test属主、属组为user1
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件;
除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
(5)、清理/data/test目录及其下所有文件的acl权限
[root@Centos8 ~]# useradd user1; useradd user2; useradd user3
[root@Centos8 ~]# mkdir -p /data/test
[root@Centos8 ~]# chown -R user1:user1 /data/test
[root@Centos8 ~]# chmod -R o=rw /data/test
[root@Centos8 ~]# su user1
[user1@Centos8 ~]$ touch /data/test/a{1..4}.sh
[root@Centos8 ~]# chattr +i /data/test/a1.sh
[root@Centos8 ~]# chattr +i /data/test/a2.sh
[root@Centos8 ~]# groupmems -a user1 -g root
[root@Centos8 ~]# chmod ug=rwx, o-x /data/test/a3.sh
[root@Centos8 ~]# chmod ug=rwx, o-x /data/test/a4.sh
[root@Centos8 ~]# groupmems -a user3 -g user1
[root@Centos8 ~]# chmod ug-rx /data/test
[root@Centos8 ~]# setfacl -R -b /data/test/

三、总结

      用户及用户组管理命令的知识是比较多的,主要是一些命令,可以记忆一些常用的一些命令和选项,其余的可以根据实际需要再man command即可。