【RHCSA】用户和组管理

目录

Linux中的用户和组的分类

1、Liux下的用户可以分为三类:

2、Liux中的组有以下两类:

3、Linux中用户和用户组的配置文件

(1)用户账号文件 -- /etc/passwd

(2)用户密码文件 -- /etc/shadow

(3)组用户账号文件 -- /etc/group

用户管理

1、添加新用户

2、修改用户信息-- usermod命令

3、为用户账户设置密码 -- passwd命令

4、删除用户账号 -- userdel命令

5、用户间切换 -- su(substitute user)命令

6、控制用户对系统命令的使用权限

用户组管理

1、创建用户组

2、修改用户组属性

3、添加/删除组成员

4、删除组账户

查询用户和组信息

查看用户登录系统的情况

1、users,查看当前登录系统的用户

2、last:

3、laslog

4、w:显示登录到系统的用户信息

5、who:


Linux中的用户和组的分类

1、Liux下的用户可以分为三类:

  • 超级用户 -- 用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等成其他必要情形下才用超级用户登录,以避免系统出现安全问题。
  • 系统用户(伪用户)-- 是Linux系统正常工作所必需的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon,adm,lp等用户,系统用户不能用来登录
  • 普通用户 -- 是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类,

2、Liux中的组有以下两类:

  • 基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,
  • 附加组(公有组):可以容纳多个用户,组中的用户都具有组所用有的权利。

3、Linux中用户和用户组的配置文件

在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。

文件功能

文件名称

用户账号文件

/etc/passwd

用户密码文件

/etc/shadow

用户组账号文件

/etc/group

用户组密码文件

/etc/gshadow

(1)用户账号文件 -- /etc/passwd

        passwd是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。

        root:x:0:0:root:/root:/bin/bash

        【这是root的那一条,文件里没颜色这是俺标的】

        意义解析:

        root:root用户

        x:密码(x表示受shadow保护)

        0:UID(userid)标识用户身份的

        0:GID(groupid)

        root:个人资料

        /root:root用户的家目录

        /bin/bash:shell,表示root用户可登录

        【文档版】

(2)用户密码文件 -- /etc/shadow

        root:$6$nzFjFM1Lb0nIEjJw$MRuFRYutuQSssXIJ9L0g6HNdIMAHHY2/zCCN6fusyOS1fNYm5/84Jnp2MvY4Vfk27.XlaHeECLKNvRVBN/ZhB/::0:99999:7:::

        这么分的,那个绿的是光标搞的

意义解析

        root: -- 登录用户

$6$nzFjFM1Lb0nIEjJw$MRuFRYutuQSssXIJ9L0g6HNdIMAHHY2/zCCN6fusyOS1fNYm5/84Jnp2MvY4Vfk27.XlaHeECLKNvRVBN/ZhB/ -- 加密后的密码

        : -- 那两个冒号之间的内容是最后一次修改的时间,以距离1970年1月1号的天数表示

        :0 -- 密码在多少天内不能被修改

        :99999 -- 密码在多少天以后要修改

        :7 -- 密码到期的告警时间默认7

        : -- 不活动时间,密码过期多少天以后禁用用户

        : -- 密码失效的时间,以距离1970年1月1号的天数表示空着就表示永久可用【1970年1月1日是什么时间】

        保留

【看完了来看看我自己的用户】qiu::18889:0:99999:7:::

【文档版】

(3)组用户账号文件 -- /etc/group

        root:x:0:

        组名:密码受保护:gid组id:列出的成员以改组为附加组用,隔开用户吧

用户管理

1、添加新用户

        命令格式:useradd [选项] <username>

        常用选项:

  -c, --comment

    注释信息——设定用户的相关信息

  -d, --home-dir 

  目录-设定用户的家目录(默认为/home/用户名)

 -e, --expiredate 

YYYY-MM-DD -- 设置用户的失效时间,过时报废

  -f, --inactive

 天数 -- 指定密码到期后多少天账号被禁用,若指定0,到期后立即禁用;指定-1表示账号过期后不被禁用

  -g, --gid

组名或GID - 为用户指定所属的基本组,该组在指定时必须已存在

  -G, --groups

   组名或GID列表-为用户指定所属附加组,附加组可以有多个,用,隔开

  -M, --no-create-home        

不创建用户的家目录

  -N, --no-user-group

不创建与用户同名的基本组

  -o, --non-unique        

允许使用重复的 UID 创建用户

  -p, --password PASSWORD

指定用户的登录密码,这里的是加密后的,具体看下边

  -s, --shell SHELL

shell名 - 指定用户登录后使用的shell,默认是bash

  -u, --uid UID

设置账号的uid,默认是已有的最大uid+1,如果有-o可以重复使用一个uid

        【-p指定新用户密码后,看/etc/shadow加密后的密码是我们指定的,真正的密码不晓得】

2、修改用户信息-- usermod命令

        命令格式:usermod [选项] username

        常用选项:

        -c,-d,-m,-g,-G,-s,-u与useradd命令里选项一样

-l 新用户名

更改账户名称,必须在用户未登录的情况下才能使用

-L

锁定用户账户,让他不能登录使用

-U

解锁用户账户

3、为用户账户设置密码 -- passwd命令

        Linux的账户必须设置密码后,才能登录系统

        命令格式:passwd [账户名]

        常用选项:

选项

功能

-d

清空指定用户的口令,这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的账户可以。

-e

使用户的账号密码立即过期,强迫用户下次登录时必须修改口令

-i

口令过期后多少天停用账户

-l

锁定(停用)用户账户。

-n

指定口令的最短存活期。

-x

指定密码的最长使用期限

-u

解锁用户账户。

        [root@localhost ~]# echo 密码 | passwd --stdin 用户名 【这个也可以改密码】

4、删除用户账号 -- userdel命令

        命令格式:userdel [-r] 账户名

                -r -- 在删除该账户的同时,一并删除该账户对应的主目录

 

5、用户间切换 -- su(substitute user)命令

        命令格式:su [用户名]

                从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。

                su和su-命令区别就是加载的配置文件不一样:

                su切换方式加载的文件:~/.bashrc, /etc/bashrc

                su-切换方式加截的文件:/etc/bashrc, /etc/profile,~/.bashrc, ~/.bash_profile

6、控制用户对系统命令的使用权限

        使用sudo命令可以提高普通用户的操作权限,不过这个权限需要root用户进行配置/etc/sudoers文件才可使用。

        配置/etc/sudoers文件的两种方式

        [root@localhost ~]#vim /etc/sudoers或者[root@localhost ~]# visudo

        root ALL=(ALL)  ALL

        参数代表含义:

                ①、用户账号:系统哪个账号可以使用sudo这个命令

                ②、登录者的来源主机名

                ③、可切换的身份:这个账号可以切换成什么身份来执行后续的命令,默认root可以切换成任何人

                ④、可执行的命令,这个命令最好使用绝对路径编写,默认root可以切换任何身份且进行任何命令

        【ALL是关键字,代表任何身份、主机和命令】

        qiu  ALL=(ALL)      ALL

        sudo cat / etc/shadow之后会再让你验证一次密码

用户组管理

1、创建用户组

        命令格式:groupadd [-r] 用户组名称

        常用选项:

        -g GID -- 指定新用户组的组标识号(GID),默认值是已有的最大的GID+1

        -r -- 建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID

2、修改用户组属性

        命令格式:groupmod 选项 用户组

        常用选项:

        -g GID -- 指定新的组标识号

        -n 新用户组 -- 将用户组的名字改为新名字修改用户组的名称和GID值

3、添加/删除组成员

        命令格式:gpasswd [选项] [用户] [组]

        只有root用户和组管理员才能用这个命令

        选项:

-r

删除组密码

-a

把用户加入组

-d

把用户从组中删除

-M

可同时添加多个用户

-A

给组指派管理员

4、删除组账户

        命令格式:groupdel 用户组名

        被删除的组如果是基本组,则必须先删除引用改基本组的用户再删除

查询用户和组信息

        [root@localhost ~]# id qiu

        uid=1000(qiu) gid=1000(qiu) 组=1000(qiu),10(wheel)

查看用户登录系统的情况

1、users,查看当前登录系统的用户

        [root@localhost ~]# users

        qiu root

        【vmare那登的算,然后如果你是su切换过去的算的是你之前的那个】

2、last:

        列出目前与过去登入系统的用户相关信息,该命令默认会去读取/var/log/wtmp文件,并把该文件记录的登入系统的用户名单全部显示出来

        [root@localhost ~]# last -2 显示最近的两条登录信息

        root     pts/0        192.168.174.1    Sat Oct 15 13:04   still logged in

        qiu      tty2         tty2             Sat Oct 15 13:04   still logged in

        【这个tty2表示计算机串行端口连接的终端设备,我是拿虚拟机直接登的;pts是我拿xshell映射的伪终端】

        [root@localhost ~]# last -f /var/log/wtmp -n 3  显示那个路径文件中最近的两条登录信息

        root     pts/0        192.168.174.1    Sat Oct 15 13:04   still logged in

        qiu      tty2         tty2             Sat Oct 15 13:04   still logged in

        reboot   system boot  4.18.0-193.el8.x Sat Oct 15 13:04   still running

3、laslog

        如果想要知道每个账号的最近登录时间,可以用lastlog查看,该命令会读取/var/log/lastlog文件

4、w:显示登录到系统的用户信息

        [root@localhost ~]# w

         20:24:18 up  7:20,  2 users,  load average: 0.00, 0.00, 0.00

        USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

        qiu      tty2     tty2             13:04    7:20m 28.97s  0.11s /usr/libexec/tracker-miner-fs

        root     pts/0    192.168.174.1    13:04    1.00s  0.14s  0.02s w

5、who:

        显示目前登录到系统的用户,who通常通过/var/run/utmp文件来获取信息。

        [root@localhost ~]# who 【默认的是who -s 只显示名称,终端,时间字段信息和主机名,这是who默认的输出】

        qiu      tty2         2022-10-15 13:04 (tty2)

        root     pts/0        2022-10-15 13:04 (192.168.174.1)

【老师说有兴趣自己研究去】

        [root@localhost ~]# whoami【这俩内容不一样注意嗷】

        root

        [root@localhost ~]# who am i【这个感觉详细点】

        root     pts/0        2022-10-15 13:04 (192.168.174.1)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值