1、显示/etc/目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
ls -dl /etc/^[^[:alpha:]][[:alpha:]]*
2、复制/etc/目录下所有以p开头,以非数字结尾的文件或目录到/tmp/test1目录中
mkdir -p /tmp/test1
cp -a /etc/p*[^[:digit:]] /tmp/test1
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue | tr [[:lower:]] [[:upper:]] > /tmp/issue.out
cat /tmp/issue.out
4、请总结描述用户和组管理类的命令使用方法并完成以下练习:
用户名的创建、修改和删除
- useradd
- usermod
- userdel
创建用户相关文件涉及保存配置文件:
相关文件:
/etc/default/useradd
/etc/skel/*(创建家目录中默认的隐藏文件)
/etc/login.def(默认邮箱及密码创建的相关配置)
保存配置文件:
/etc/passwd
/etc/shadow
useradd | usermod |
---|---|
-u:UID | -u:新的UID |
-g:GID指明用户基本所属组 | -g:新的GID |
-G:指明附加组 | -G:新的附加组,同时-a保留原附加组 |
-c:用户的注释信息 | -c:新的用户注释信息 |
-d:创建新的家目录 | -md:创建新家目录并移动原家目录数据 |
-s:指明默认shell程序(可用列表在/etc/shell) | -s:新的默认shell |
-N:不创建私用组做主组 | / |
-r:创建系统用户 | / |
-m:系统用户创建家目录 | / |
-M:非系统用户不创建家目录 | / |
/ | -l:新的登录名 |
/ | -L:锁定指定用户,效果是在etc/shadow密码栏增加! |
/ | -U:取消锁定指定用户 |
/ | -e YYYY-MM-DD:指明用户账号过期时间 |
/ | -f INACTIVE:设定非活动期限 |
userdel | 作用 |
---|---|
-f | 强制删除用户 |
-r | 删除用户家目录和邮箱 |
passwd | chage |
---|---|
-d删除指定用户密码 | / |
-l:锁定指定用户 | / |
-u:解除锁定指定用户 | / |
-e:强制用户下次登录修改密码 | / |
-f:强制操作 | / |
-n mindays:最短使用期限 | -m mindays:最短使用期限 |
-x maxdays:最长使用期限 | -M maxdays:最长使用期限 |
-w warndays:提前多少天开始告警 | -W warndays:提前多少天开始告警 |
-i inactivedays:非活动期限 | -I inactivedays:密码过期后的宽限期限 |
–stdin:从标准输入接收密码 | / |
/ | -d last day:修改最后一次更改密码的时间 |
/ | -l:显示密码策略 |
举例:
/etc/passwd
gentoo:x:1002:1003:Gentoo Distribution:/home/gentoo:/bin/csh
gentoo:用户名
x:密码
1002:UID
1003:GID
Gentoo Distribution:用户的注释信息
/home/gentoo:用户家目录
/bin/csh:默认shell
/etc/shadow
test:!$6$JZaCK4kBQVirtHfY$.hN1mlk8RhJI7r/qpi3iDaRz3e2SnqSRaLWsqlz1aY4k/uk9E0H6eaH2x1Zw66j8UlpYE6K88F4h3WhpM.2Lw1:18553:7:14:6:3:18554:
test:用户名
$6$...:密码(!$6$...:用户锁定)
18553:最后一次修改密码时间,1970年计算
7:再过几天密码可以变更
14:再过几天密码必须变更
6:提前多少天开始告警
3:密码过期后多久账号会被锁定
18554:账号失效时间
chage -l test
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : Oct 19, 2020
Minimum number of days between password change : 7
Maximum number of days between password change : 14
Number of days of warning before password expires : 6
用户组的创建、修改和删除
- groupadd
- groupmod
- groupdel
- gpasswd更改组密码
创建用户组涉及到的相关配置文件:
/etc/group
etc/gshadow
练习:
- 创建组distro,其GID为2019
[root@centos8 data ]#groupadd -g 2019 distro
[root@centos8 data ]#getent group distro
distro:x:2019:
- 创建用户mandriva,其ID号为1005;基本组为distro
[root@centos8 data ]#useradd -u 1005 -g distro mandriva
[root@centos8 data ]#getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
[root@centos8 data ]#id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
- 创建用户mageia,其ID号为1100,家目录为/home/linux
[root@centos8 data ]#useradd -u 1100 -d /home/linux mageia
[root@centos8 data ]#getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
- 给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@centos8 data ]#echo "mageedu" | passwd --stdin > /dev/null
passwd: This option requires a user name.
[root@centos8 data ]#echo "mageedu" | passwd --stdin mageia > /dev/null
[root@centos8 data ]#passwd -x 7 mageia
Adjusting aging data for user mageia.
passwd: Success
[root@centos8 data ]#getent shadow mageia
mageia:$6$3wibG8dj1zj/wKWR$n8BwhIcU3xV1Zez8z/o7B/XFBievehJmy55FtrAvYBgZv7Dl6tQCRrRyvpI5YvzgOMFkxy.xhQ1RGFPeFiER60:18553:0:7:7:::
- 删除mandriva,但保留其家目录
[root@centos8 data ]#userdel mandriva
[root@centos8 data ]#ll /home/
total 0
drwx------. 2 1005 distro 62 Oct 18 23:14 mandriva
- 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin
[root@centos8 data ]#groupadd peguin
[root@centos8 data ]#useradd -u 2002 -g distro -G peguin slackware
[root@centos8 data ]#id 2002
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
- 修改slackware的默认shell为/bin/tcsh
[root@centos8 data ]#usermod -s /bin/tcsh slackware
[root@centos8 data ]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
- 为用户slackware新增附加组admins;
[root@centos8 data ]#groups admins
groups: ‘admins’: no such user
[root@centos8 data ]#groupadd admins
[root@centos8 data ]#usermod -aG admins slackware
[root@centos8 data ]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)