一、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@centos7 ~]# ls /etc/* |grep ^[^[:alpha:]][[:alpha:]].*
二、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
1、创建 /tmp/mytest1目录
[root@centos7 ~]# mkdir -pv /tmp/mytest1
mkdir: created directory ‘/tmp/mytest1’
[root@centos7 ~]#
2、查找符合条件的文件或目录
[root@centos7 ~]# ls /etc | grep ^p.*[^0-9]$
pam.d
passwd
passwd-
pbm2ppa.conf
pinforc
pki
plymouth
pm
pnm2ppa.conf
popt.d
postfix
ppp
prelink.conf.d
printcap
profile
profile.d
protocols
pulse
purple
python
3、复制相应文件到目标目录
[root@centos7 ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
[root@centos7 ~]# ll /tmp/mytest1/
total 48
drwxr-xr-x. 2 root root 4096 Feb 21 17:26 pam.d
-rw-r--r--. 1 root root 2298 Feb 21 17:26 passwd
-rw-r--r--. 1 root root 2298 Feb 21 17:26 passwd-
-rw-r--r--. 1 root root 1362 Jun 10 2014 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jun 10 2014 pinforc
drwxr-xr-x. 12 root root 151 Feb 21 17:18 pki
drwxr-xr-x. 2 root root 28 Feb 21 17:15 plymouth
drwxr-xr-x. 5 root root 52 Feb 21 17:12 pm
-rw-r--r--. 1 root root 6300 Jun 10 2014 pnm2ppa.conf
drwxr-xr-x. 2 root root 6 Jun 10 2014 popt.d
drwxr-xr-x. 2 root root 154 Feb 21 17:18 postfix
drwxr-xr-x. 3 root root 219 Feb 21 17:14 ppp
drwxr-xr-x. 2 root root 105 Feb 21 17:15 prelink.conf.d
-rw-r--r--. 1 root root 233 Jun 7 2013 printcap
-rw-r--r--. 1 root root 1819 Oct 31 2018 profile
drwxr-xr-x. 2 root root 4096 Feb 21 17:18 profile.d
-rw-r--r--. 1 root root 6545 Oct 31 2018 protocols
drwxr-xr-x. 2 root root 79 Feb 21 17:14 pulse
drwxr-xr-x. 2 root root 23 Feb 21 17:15 purple
drwxr-xr-x. 2 root root 35 Feb 21 17:13 python
[root@centos7 ~]#
三、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
方法1:
[root@Centos8 ~]# cat /etc/issue |tr 'a-z' 'A-Z' >/tmp/issue.out
[root@Centos8 ~]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
方法2:
[root@Centos8 ~]# tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out
[root@Centos8 ~]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
四、请总结描述用户和组管理类命令的使用方法并完成以下练习:
1、用户管理类命令
useradd命令
作用:创建新的Linux用户
格式:useradd [options] LOGIN
参数:
-u:指定UID(常用)-g GID:指明用户所属基本组,可为组名,也可以GID。(常用)-G GROUP1[,GROUP2,...[GROUPN]]:指定GID,指明用户的附加组,多个组之间用逗号分隔。(常用)-c COMMENT:注释信息-d HOME_DIR:指定家目录(本质是通过复制/etc/skel目录并重命名实现的),如果目录路径本身就存在,则不会为用户复制/etc/skel下的内容。(常用)-s SHELL: 指定用户的默认shell,可用于所有shell列表存在的shell(shell列表:/etc/shells)(常用)-r:创建系统用户(常用)-D:修改创建用户时候的默认选项(man useradd可以看一下详情,,其实更改的是/etc/default/useradd)-m:创建家目录,用于系统用户-M:不创建家目录,用于非系统用户-N:不创建和用户名同名私用组做主组,使用users组做主组
默认配置文件:useradd 命令默认值设定由/etc/default/useradd定义
与新建用户相关的默认配置文件:
/etc/default/useradd
/etc/skel/***`/etc/login.defs
useradd命令
作用:创建新的Linux用户
格式:useradd [options] LOGIN
参数:
-u:指定UID(常用)-g GID:指明用户所属基本组,可为组名,也可以GID。(常用)-G GROUP1[,GROUP2,...[GROUPN]]:指定GID,指明用户的附加组,多个组之间用逗号分隔。(常用)-c COMMENT:注释信息-d HOME_DIR:指定家目录(本质是通过复制/etc/skel目录并重命名实现的),如果目录路径本身就存在,则不会为用户复制/etc/skel下的内容。(常用)-s SHELL: 指定用户的默认shell,可用于所有shell列表存在的shell(shell列表:/etc/shells)(常用)-r:创建系统用户(常用)-D:修改创建用户时候的默认选项(man useradd可以看一下详情,,其实更改的是/etc/default/useradd)-m:创建家目录,用于系统用户-M:不创建家目录,用于非系统用户-N:不创建和用户名同名私用组做主组,使用users组做主组
默认配置文件:useradd 命令默认值设定由/etc/default/useradd定义
与新建用户相关的默认配置文件:
/etc/default/useradd
/etc/skel/***`/etc/login.defs
passwd命令
**作用:**修改用户密码,不指定用户时修改当前登录用户的密码。
格式:
passwd [OPTIONS] UserName
参数:
-d:删除指定用户密码-l:锁定指定用户,等价于usermod -L,在shadow密码前加上!号-u:解锁指定用户,等价于usermod -U,取消-l命令添加的!号-e:强制用户下次登录修改密码,修改的是shadow文件中第三列内容为0-f:强制操作-n mindays:指定最短使用期限-x maxdays:最大使用期限-w warndays:提前多少天开始警告-i inactivedays:非活动期限--stdin:使用管道从标准输入接收用户密码,常用于shell脚本,Ubuntu无此选项
userdel命令
作用:userdel 可删除Linux 用户
格式:userdel [OPTION]… Login
参数:
-f, --force强制-r, --remove删除用户家目录和邮箱
chage命令
**作用:**修改和查看用户密码策略
**格式:**chage [ options ] username
选项:
-dLAST_DAY #更改密码的时间,修改shadow文件中第三个内容,格式为YYYY-MM-DD-m--mindays MIN_DAYS,修改shadow文件中第四个内容,最早修改密码天数-M--maxdays MAX_DAYS,修改shadow文件中第五个内容,最晚修改密码天数-W--warndays WARN_DAYS,修改shadow文件中第六个内容,密码失效前的提示天数-I--inactive INACTIVE #,修改shadow文件中第七个内容,密码过期后的宽限期-E–expiredate EXPIRE_DATE #用户的有效期,修改shadow文件中第八个内容,格式为YYYY-MM-DD-l显示密码策略
id命令
作用:使用id命令获取用户的UID、GID信息
格式:id [参数] [用户名]
参数:
-g显示用户所属群组的ID-G显示用户所属附加群组的ID-u显示用户ID--help显示帮助--version显示版本信息
finger命令
作用:查看用户的描述信息
格式:finger [参数] [用户名]
参数:
-l列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等-m排除查找用户的真实姓名-s列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话-p列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容
chfn命令
作用:即change finger,修改用户的描述信息(finger命令显示信息)。若不指定任何选项,则chfn命令会进入问答式界面
格式:chfn [options] [username]
参数:
-f设置真实姓名-h设置家中的电话号码-u在线帮助-v显示版本信息
chsh命令
作用:修改用户登录shell,相当于usermod -s
格式:chsh [-s shell] [-l] [-h] [-v] [username]
参数:
-l列出/etc/shells中的所有shell-s指定登录shell
su命令
作用:即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
格式:su [options] [-] [user [argument…]]
2、组管理类命令
groupadd命令
作用:创建组。使用useradd命令时,根据配置文件默认会创建一个与用户同名的组,作为用户的主组,如果想创建新组,使用groupadd命令实现。
格式:group [ options ] 组名
参数:
-g GID指明GID号;[GID_MIN, GID_MAX](常用)-r创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000(常用)-o:允许使用已存在的GID创建新的组-f:当组已经存在是,返回成功,使用此选项将忽略-g选项-h:–help显示帮助
groupmod命令
作用:修改用户属性
格式:groupmod [OPTION] groupname
参数:
-g GID:修改组的GID号(常用)-n,--new-name NET_GROUP:修改组名(常用)-o,--non-unique:允许组的GID不唯一-p:设置组的加密密码
groupdel命令
作用:删除用户组,如果要删除的组是某个用户的主组,则该组不能被删除,使用
-f选项可以删除
格式:groupdel [options] GROUP
参数:
-f, --force 强制删除,即使是用户的主组也强制删除组
gpasswd命令
作用:可以更改组密码,也可以修改附加组的成员关系
不加选项,后直接跟组名表示修改指定组密码
格式:gpasswd [ options ] group_name
参数:
-a user将user添加至指定组中-d user从指定附加组中移除用户user-A user1,user2,...设置组管理员-r:取消组密码-M:设置组成员
groupmems命令
作用:管理指定组成员
格式:groupmems [ options ] [ action ]
参数:
option:-g, --group groupname #指定要操作那个组 (只有root可以操作)
action:-a, --add username #指定用户加入组-d, --delete username #从组中删除用户-p, --purge #从组中清除所有成员-l, --list
groups命令
作用:获取用户组成员关系
格式:groups [参数] [用户]
参数:
--help显示帮助--version显示版本信息
3、示例:
1、创建组distro,其GID为2019;
[root@centos7 ~]# groupadd -g 2019 distro
[root@centos7 ~]# getent group distro
distro:x:2019:
[root@centos7 ~]#
2、创建用户mandriva, 其ID号为1005; 基本组为distro;
[root@centos7 ~]# useradd -u 1005 -g distro mandriva
[root@centos7 ~]# getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
[root@centos7 ~]#
3、创建用户mageia,其ID号为1100,家目录为/ home/linux;
[root@centos7 ~]# useradd -u 1100 -d /home/linux mageia
[root@centos7 ~]# getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
[root@centos7 ~]#
4、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@centos7 ~]# echo "mageedu" |passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
[root@centos7 ~]# passwd -x 7 mageia
Adjusting aging data for user mageia.
passwd: Success
[root@centos7 ~]#
5、册除mandriva, 但保留其家目录;
默认删除保留家目录和邮箱目录,使用-r选项,家目录和邮箱均删除
[root@centos7 ~]# userdel mandriva
[root@centos7 ~]# ls -d /home/mandriva/
/home/mandriva/
[root@centos7 ~]#
6、创建用户slackware, 其D号为2002,基本组为distro, 附加组peguin;
[root@centos7 ~]# useradd -u 2002 -g distro -G peguin slackware
[root@centos7 ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@centos7 ~]# getent group distro
distro:x:2019:
[root@centos7 ~]# getent group peguin
peguin:x:2020:slackware
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
[root@centos7 ~]#
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
[root@centos7 ~]#
8、为用户slackware新增附加组admins,并设置不可登陆。
[root@centos7 ~]# usermod -a -G admins -s /sbin/nologin slackware
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
[root@centos7 ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/sbin/nologin
[root@centos7 ~]#
五、 创建用户user1, user2, user3。在/data/下创建目录test
[root@centos7 ~]# useradd user1
[root@centos7 ~]# useradd user2
[root@centos7 ~]# useradd user3
[root@centos7 ~]# id user1
uid=2003(user1) gid=2003(user1) groups=2003(user1)
[root@centos7 ~]# id user2
uid=2004(user2) gid=2004(user2) groups=2004(user2)
[root@centos7 ~]# id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3)
[root@centos7 ~]# mkdir -p /data/test
[root@centos7 ~]# ls /data/
test
[root@centos7 ~]#
1、目录/data/test属主、属组为user1
[root@centos7 ~]# ll /data/
total 0
drwxr-xr-x 2 root root 6 Mar 1 10:30 test
[root@centos7 ~]# chown user1:user1 /data/test/
[root@centos7 ~]# ll /data/
total 0
drwxr-xr-x 2 user1 user1 6 Mar 1 10:30 test
[root@centos7 ~]#
2、在目录属主、属组不变的情况下, user2对文件有读写权限
[root@centos7 ~]# setfacl -m u:user2:6 /data/test/
[root@centos7 ~]# ll /data/
total 0
drwxrwxr-x+ 2 user1 user1 6 Mar 1 10:30 test
[root@centos7 ~]# 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
[root@centos7 ~]#
3、 user1在/data/test目录下创建文件a1.sh,a2.sh,a3.sh,a4.sh,设置所有用户都不可删除a1.sh, a2.sh文件、除了user1及root之外,所有用户都不可删除 a3.sh. a4.sh
[user1@centos7 ~]$ touch /data/test/a{1..4}.sh
[user1@centos7 ~]$ ll /data/test/
total 0
-rw-rw-r-- 1 user1 user1 0 Mar 1 10:55 a1.sh
-rw-rw-r-- 1 user1 user1 0 Mar 1 10:55 a2.sh
-rw-rw-r-- 1 user1 user1 0 Mar 1 10:55 a3.sh
-rw-rw-r-- 1 user1 user1 0 Mar 1 10:55 a4.sh
[user1@centos7 ~]$
[root@centos7 test]# chattr +i a1.sh a2.sh
[root@centos7 test]# lsattr a1.sh a2.sh
----i----------- a1.sh
----i----------- a2.sh
[root@centos7 test]# rm -f a1.sh
rm: cannot remove ‘a1.sh’: Operation not permitted
[user1@centos7 ~]$ chmod o+x /data/test/a3.sh /data/test/a4.sh
[user1@centos7 ~]$ chmod o+t /data/test/a3.sh /data/test/a4.sh
[user1@centos7 ~]$
[root@centos7 test]# su user3
[user3@centos7 test]$ ls
a1.sh a2.sh a3.sh a4.sh
[user3@centos7 test]$ rm -f a3.sh
rm: cannot remove ‘a3.sh’: Permission denied
[user1@centos7 ~]$ cd /data/test/
[user1@centos7 test]$ ls
a1.sh a2.sh a3.sh a4.sh
[user1@centos7 test]$ rm -f a3.sh
[user1@centos7 test]$ ls
a1.sh a2.sh a4.sh
[user1@centos7 test]$
4、 user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
[root@centos7 ~]# usermod user3 -a -G user1
[root@centos7 ~]# id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3),2003(user1)
[root@centos7 ~]# setfacl -m u:user1:- /data/test/
[root@centos7 ~]#
5、清理/data /test目录及其下所有文件的acl权限
[root@centos7 ~]# setfacl -Rb /data/test/
[root@centos7 ~]# ll /data/
total 0
drwxr-xr-x 2 user1 user1 6 Mar 1 10:30 test
这篇博客主要介绍了如何在Linux中进行用户和组管理。内容包括:使用命令展示非字母开头,以字母加任意字符的文件;复制以p开头非数字结尾的文件到指定目录;将/etc/issue文件内容转为大写;详细解析了用户和组管理的命令,如useradd、passwd、userdel等;并给出了创建用户、设置密码策略、修改用户属性、管理用户组及成员的实例操作。

2590

被折叠的 条评论
为什么被折叠?



