1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
ls -a /etc/[^[:alpha:]][[:alpha:]]*
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@centos7 ~]# mkdir /tmp/mytest1
[root@centos7 ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
[root@centos7 ~]# ls /tmp/mytest1
pam.d pbm2ppa.conf pm ppp profile.d python
papersize pinforc pnm2ppa.conf prelink.conf.d protocols
passwd pki popt.d printcap pulse
passwd- plymouth postfix profile purple
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@centos7 ~]# cat /etc/issue
\S
Kernel \r on an \m
[root@centos7 ~]# cat /etc/issue | tr 'a-z' 'A-Z' > /tmp/issue.out
[root@centos7 ~]# cat /tmp/mytest1
\S
KERNEL \R ON AN \M
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
-
用户管理命令
-
useradd
useradd [options] LOGIN
-
-u UID
# 创建user1用户,并指定uid为2000 [root@centos7 ~]# useradd -u 2000 user1 [root@centos7 ~]# id user1 uid=2000(user1) gid=2000(user1) groups=2000(user1)
-
-o 配合-u 选项,不检查UID的唯一性
# 创建一个uid为0的用户router,因为系统已经存在uid为0的用户root,所以不让创建 [root@centos7 ~]# useradd -u 0 rooter useradd: UID 0 is not unique # 使用“-o”选项,不检查UID的唯一性,创建rooter成功 [root@centos7 ~]# useradd -u 0 -o rooter [root@centos7 ~]# id rooter uid=0(root) gid=0(root) groups=0(root)
-
-g GID 指明用户所属基本组,可为组名,也可以GID
# 创建一个组“admins” [root@centos7 ~]# groupadd admins # 创建一个新用户“alice”,可以看到如果不指定组,则会新创建一个“alice组”,“alice用户”也属于“alice组” [root@centos7 ~]# useradd alice [root@centos7 ~]# id alice uid=1004(alice) gid=1006(alice) groups=1006(alice) # 新添加一个用户“tom”,并指定主组为“admins” [root@centos7 ~]# useradd tom -g admins [root@centos7 ~]# id tom uid=1005(tom) gid=1005(admins) groups=1005(admins)
-
-c "COMMENT“ 用户的注释信息
[root@centos7 ~]# useradd -c 'test' test [root@centos7 ~]# getent passwd test test:x:1010:1012:test:/home/test:/bin/bash
-
-d HOME_DIR 以指定的路径(不存在)为家目录
# 新建用户jerry,并指定/data/jerryhome为家目录 [root@centos7 ~]# useradd -d /data/jerryhome jerry [root@centos7 ~]# getent passwd jerry jerry:x:1008:1010::/data/jerryhome:/bin/bash [root@centos7 ~]# ll -d /data/jerryhome drwx------ 3 jerry jerry 78 May 2 12:19 /data/jerryhome
-
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
# 创建“http”系统用户,并指定shell为/sbin/nologin [root@centos7 ~]# useradd -r -s /sbin/nologin http [root@centos7 ~]# getent passwd http http:x:987:981::/home/http:/sbin/nologin
-
-G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
# 创建两个组“g1”,“g2” [root@centos7 ~]# groupadd g1 [root@centos7 ~]# groupadd g2 # 创建用户“jack”,并指定主组为“admins”,附加组为“g1”和“g2”组 [root@centos7 ~]# useradd -g admins -G g1,g2 jack [root@centos7 ~]# id jack uid=1006(jack) gid=1005(admins) groups=1005(admins),1007(g1),1008(g2)
-
-N 不创建私用组做主组,使用users组做主组,users组系统默认存在,类似于windows的用法
# 在创建“rose”用户时,不创建和用户同名的组,此时“rose”用户就属于“users”组 [root@centos7 ~]# useradd rose -N [root@centos7 ~]# id rose uid=1007(rose) gid=100(users) groups=100(users)
-
-r 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000,不会创建用户家目录
# 创建系统账户dog,可以看到uid是985,小于1000,并且默认不会创建家目录 [root@centos7 ~]# useradd -r dog [root@centos7 ~]# getent passwd dog dog:x:985:979::/home/dog:/bin/bash [root@centos7 ~]# ll -d /home/dog ls: cannot access /home/dog: No such file or directory
-
-m 创建家目录,用于系统用户
# 创建系统账户默认不会创建家目录,使用-m参数强制创建 [root@centos7 ~]# useradd -r -m kat [root@centos7 ~]# getent passwd kat kat:x:986:980::/home/kat:/bin/bash [root@centos7 ~]# ll -d /home/kat drwx------ 3 kat kat 78 May 2 12:25 /home/kat
-
-M 不创建家目录,用于非系统用户
# 创建xiaoming用户,指定小明的家目录为/data/xiaoming,但是不实际创建家目录 [root@centos7 ~]# useradd -d /data/xiaoming -M xiaoming # 可以看到passwd中xiaoming用户显示家目录为/data/xiaoming,但是并没有实际创建 [root@centos7 ~]# getent passwd xiaoming xiaoming:x:1009:1011::/data/xiaoming:/bin/bash [root@centos7 ~]# ll -d /data/xiaoming ls: cannot access /data/xiaoming: No such file or directory
-
默认值设定:/etc/default/useradd
# 创建用户时的默认设置在/etc/default/useradd文件中 [root@centos7 ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 # 100就是users组,不创建用户组时默认属于users组 HOME=/home # 新用户家目录默认在/home目录下 INACTIVE=-1 # 密码失效日,在shadow内的第7栏,-1代表永久不会失效 EXPIRE= # 账号失效日,在shadow内的第8栏,默认为空代表永不过期 SHELL=/bin/bash # 新用户默认使用的shell类型是/bin/bash SKEL=/etc/skel # 在新建用户时会把/etc/skel目录下的文件拷贝到新用户的家目录 CREATE_MAIL_SPOOL=yes # 是否在/var/spool/mail/目录下创建一个同名的邮件目录
-
显示或更改默认设置
- useradd -D
- useradd –D -s SHELL
- useradd –D –b BASE_DIR
- useradd –D –g GROUP
# 修改默认的shell为/sbin/nologin [root@centos7 ~]# useradd -D -s /sbin/nologin # 修改默认的家目录为/data [root@centos7 ~]# useradd -D -b /data # 修改默认用户组为1000 [root@centos7 ~]# useradd -D -g 1000 # 使用useradd -D查看所有默认的内容,文件/etc/default/useradd也已经被修改了 [root@centos7 ~]# useradd -D GROUP=1000 HOME=/data INACTIVE=-1 EXPIRE= SHELL=/sbin/nologin SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
-
-
usermod
-
usermod [OPTION] login
-
-u UID: 新UID
-
-g GID: 新主组
# 修改jack用户的主组,从admins组,修改为wang组 [root@centos7 ~]# id jack uid=1006(jack) gid=1005(admins) groups=1005(admins),1007(g1),1008(g2) [root@centos7 ~]# usermod -g wang jack [root@centos7 ~]# id jack uid=1006(jack) gid=2001(wang) groups=2001(wang),1007(g1),1008(g2)
-
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
[root@centos7 ~]# id jack uid=1006(jack) gid=2001(wang) groups=2001(wang),1007(g1),1008(g2) # 直接使用-G参数,是替换了原来的所有附加组 [root@centos7 ~]# usermod -G root jack [root@centos7 ~]# id jack uid=1006(jack) gid=2001(wang) groups=2001(wang),0(root) # 使用-a参数配合G,在原有的基础上添加附加组 [root@centos7 ~]# usermod -aG g1,g2 jack [root@centos7 ~]# id jack uid=1006(jack) gid=2001(wang) groups=2001(wang),0(root),1007(g1),1008(g2)
-
-s SHELL:新的默认SHELL
# 把jack用户的shell更改为/sbin/nologin [root@centos7 ~]# getent passwd jack jack:x:1006:2001::/home/jack:/bin/bash [root@centos7 ~]# usermod -s /sbin/nologin jack [root@centos7 ~]# getent passwd jack jack:x:1006:2001::/home/jack:/sbin/nologin
-
-c 'COMMENT':新的注释信息
-
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
# 更改www用户的主目录为/data/www,并移动原家目录的数据 # m必须写在d的前面 [root@centos7 ~]# usermod -md /data/www www [root@centos7 ~]# ll -d /data/www drwx------ 3 www www 78 May 2 17:45 /data/www [root@centos7 ~]# ll -d /home/www ls: cannot access /home/www: No such file or directory
-
-l login_name: 新的名字
-
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
# 锁定mage用户,在shadow中查看mage,在密码前多了!,此时mage用户不能登录 [root@centos7 ~]# usermod -L mage [root@centos7 ~]# getent shadow mage mage:!$6$0T9u5gTE$iRMx5y5F9SHODShIt8a.i4y3GpUEqW8Y12GgcxCNkhzWIQPMcOKiMtVonvWlqXg1CmWoG4AXB6fjM8ZoN/gEt.:18384:0:60:7:10:18555: # 解锁之后,可以看到密码前没有了! [root@centos7 ~]# usermod -U mage [root@centos7 ~]# getent shadow mage mage:$6$0T9u5gTE$iRMx5y5F9SHODShIt8a.i4y3GpUEqW8Y12GgcxCNkhzWIQPMcOKiMtVonvWlqXg1CmWoG4AXB6fjM8ZoN/gEt.:18384:0:60:7:10:18555:
-
-e YYYY-MM-DD: 指明用户账号过期日期
-
-f INACTIVE: 设定非活动期限
-
-
userdel
- userdel [OPTION]... login
- -r: 删除用户家目录
# 使用userdel删除用户,只会删除用户和对应的组,但是家目录和邮箱目录等不会被删除 [root@centos7 ~]# id test uid=1010(test) gid=1012(test) groups=1012(test) [root@centos7 ~]# userdel test [root@centos7 ~]# ll -d /home/test drwx------ 3 1010 1012 78 May 2 12:31 /home/test # 使用-r参数,可以把家目录和邮箱目录也一起删除 [root@centos7 ~]# userdel -r alice [root@centos7 ~]# ll -d /home/alice ls: cannot access /home/alice: No such file or directory
-
passwd
passwd [OPTIONS] UserName: 修改指定用户的密码
常用选项:
-
-d:删除指定用户密码
[root@centos7 ~]# passwd -d mage Removing password for user mage.z passwd: Success
-
-l:锁定指定用户
-
-u:解锁指定用户
-
-e:强制用户下次登录修改密码
-
-f:强制操作
-
-n mindays:指定最短使用期限
-
-x maxdays:最大使用期限
-
-w warndays:提前多少天开始警告
-
-i inactivedays:非活动期限
# 设置mage用户60天内必须修改密码,密码有效期10天 [root@centos7 ~]# passwd -x 60 -i 10 mage Adjusting aging data for user mage. passwd: Success [root@centos7 ~]# getent shadow mage mage::18384:0:60:7:10:18555:
-
--stdin:从标准输入接收用户密码
[root@centos7 ~]# echo magedu | passwd --stdin mage Changing password for user mage. passwd: all authentication tokens updated successfully.
-
-
-
组帐号维护命令
-
groupadd
groupadd [OPTION]... group_name
-
-g GID 指明GID号;[GID_MIN, GID_MAX]
-
-r 创建系统组 CentOS 6: ID<500 CentOS 7: ID<1000
# 创建普通组group1和系统组group2 [root@centos7 ~]# groupadd group1 [root@centos7 ~]# groupadd -r group2 # group1的gid为2022,group2的gid为978 [root@centos7 ~]# getent group group1 group2 group1:x:2022: group2:x:978:
-
-
groupmod
组属性修改:groupmod
groupmod [OPTION]... group
-
-n group_name: 新名字
-
-g GID: 新的GID
# 把group1改名为newgroup [root@centos7 ~]# groupmod -n newgroup group1 [root@centos7 ~]# getent group newgroup group1 newgroup:x:2022:
-
-
groupdel
- groupdel GROUP
-
(1)、创建组distro,其GID为2019;
[root@centos7 ~]# groupadd -g 2019 distro
[root@centos7 ~]# getent group distro
distro:x:2019:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@centos7 ~]# useradd -u 1005 -g distro mandriva
[root@centos7 ~]# id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@centos7 ~]#
[root@centos7 ~]# useradd -u 1100 -d /home/linux mageia
[root@centos7 ~]# getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@centos7 ~]# echo mageedu | passwd mageia --stdin
[root@centos7 ~]# passwd -x 7 mageia
[root@centos7 ~]# getent shadow mageia
mageia:$6$uvbwtHRv$I.Z9VrCCBzQCFlicGFhnPg0/ucUes7StUFe.to1gde38wROxY3SQ2AdoojCYt4/7ylT.DTFkd.ePX6OzRTACU0:18384:0:7:7:::
(5)、删除mandriva,但保留其家目录;
[root@centos7 ~]# userdel mandriva
[root@centos7 ~]# ll -d /home/mandriva
drwx------ 3 1005 distro 78 May 2 14:38 /home/mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@centos7 ~]# groupadd peguin
[root@centos7 ~]# useradd -u 2002 -g distro -G peguin slackware
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
[root@centos7 ~]# usermod -s /bin/tcsh slackware
[root@centos7 ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
(8)、为用户slackware新增附加组admins;
[root@centos7 ~]# groupadd admins
[root@centos7 ~]# usermod -aG admins slackware
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)