一、通配符
- 练习巩固
显示/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
二、用户及用户组
- 基本知识
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) 1)useradd -D 打印useradd的默认参数信息 2)useradd -D -s SHELL 修改默认的shell类型,例如useradd -D -s /sbin/nologin 3)useradd -D -b BASE_DIR 修改默认的家目录路径 4)useradd -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 查看用户信息
id【option】 login -u 显示用户ID -g 显示用户所在主组ID -G 显示用户所在附加组ID -n 显示用户信息,需配合ugG使用,例如id -n -u ql ,查看用户名称。 |
e) su 切换用户身份
su【option】【-】【user】 -l 即用户名,和su username是相同的; -c command,换身份执行命令,例如 su [-] username -c ‘command’ 切换用户身份有2种方式 ① su username ,是指非登录式切换,只切换了用户登录身份,并没有切换家目录以及该用户配置文件; ② su – username,是登录式切换; 注:A、root登录中切换其它用户不需要passwd,其它用户切换需要passwd; B、需要退回之前的用户,使用exit即可 |
f) passwd 可修改用户口令
passwd【option】UserName -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策略
chage【option】UserName -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 创建新组
groupadd【option】groupName -g 指明GID -r 创建系统组(即对进程具备资源权限分配的组,centos中ID<1000) |
j) groupmod 修改组属性信息
groupmod【option】groupName -n group_newname group_oldname 给组起新名字 -g 分配新的gid |
k) groupdel 删除组
groupdel【option】groupName -f 强制删除、主组也会删除,如果是无主组的用户,则无法登录; |
a) gpasswd 更改组passwd&修改附加组的成员关系
gpasswd【option】groupName -a user 将user添加到指定组中 -d user 从附加组中移除用户user -A user1,user2,… 设置有管理权限的用户列表 |
b) newgrp 临时切换主组,如果用户不属于主组,则需要组passwd(所以需要先对组设置passwd,一般创建的组是没有passwd的)
c) groupmems 管理附加组的成员关系
groupmems【option】【action】 -g 更改指定组,只有root是有权限操作 -a user 将user添加到指定组中 -d user 组中移除用户user -p 从组中清除所有成员 -l 显示组中成员列表 |
d) groups 查看用户组关系
e) 练习
- 练习巩固
创建组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即可。