第三周博客作业

这篇博客主要介绍了如何在Linux中进行用户和组管理。内容包括:使用命令展示非字母开头,以字母加任意字符的文件;复制以p开头非数字结尾的文件到指定目录;将/etc/issue文件内容转为大写;详细解析了用户和组管理的命令,如useradd、passwd、userdel等;并给出了创建用户、设置密码策略、修改用户属性、管理用户组及成员的实例操作。

一、显示/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

选项:

  • -d LAST_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值