Linux用户管理

目录

1.用户管理

1.1 用户类型

1.2 用户UID

1.3 配置文件

1.3.1 /etc/passwd

1.3.2 /etc/shadow

1.4 新增用户

1.5 设置密码

1.6 删除用户

1.7 切换用户

1.8 添加sudo用户

2. 用户组管理

2.1 用户组类型

2.2 用户组GID

2.3 配置文件

2.4 新增用户组

2.5 删除用户组


Linux是一个多用户多任务操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

Linux系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响,为了能够让用户更加合理、安全地使用系统资源,从而产生了一套用户管理功能

Linux下的用户管理分为两类——用户管理和用户组管理

1.用户管理

1.1 用户类型

在Linux下,用户被分为三类

  1. 超级用户(root):用户在系统上有完全权限:可以修改和删除任何文件;可以运行任何命令;可以取消任何进程。根用户负责增加和保留其他用户、配置硬件、添加系统软件。虽然根用户可以在系统上的任何地方创建文件,通常使用/root作为主目录
  2. 普通用户:普通用户是使用系统的真实用户人群。普通用户通常把/bin/bash作为登录Shell和/home的子目录作为主目录。一般情况下,普通用户只在自己的主目录和系统范围内的临时目录里(如/tmp和/var/tmp)创建文件
  3. 系统用户:系统用户不代表人,而代表系统的组成部分,是用于服务,进程运行使用的用户。例如,处理电子邮件的进程经常以用户名mail来运行;运行Apache网络服务器的进程经常作为用户apache来运行。系统用户通常没有登录Shell,因为它们不代表实际登录的用户。同样,系统用户的主目录很少在/home中,而通常在属于相关应用的系统目录中

1.2 用户UID

Linux中的用户是通过UID(uesr ID)进行标记的,UID类似于身份证号,与用户名一一对应,能唯一标识系统上的一个用户,三种用户类型的UID分别为

  • 超级用户:UID = 0
  • 普通用户:UID ≥ 1000
  • 系统用户:UID < 1000

使用 id -u 命令可以查看当前登录用户的ID,如

注意到,root用户的提示符是#,而普通用户的提示符是$

修改用户的UID有两种方式

1. 使用 usermod -u 命令

请在root权限下修改,修改时可能出现usermod: user temp is currently used by process xxxxx,可在登陆时直接选择root登录

2. 修改 /etc/passwd配置文件

使用vim打开 /etc/passwd ,然后修改对应用户的uid保存退出即可,上一种方法本质上也是如此

1.3 配置文件

对于用户管理来说,会涉及到两个配置文件,分别是:/etc/passwd /etc/shadow。其中,/etc/passwd文件用于存储用户信息,/etc/shadow用于存储密码信息

1.3.1 /etc/passwd

/etc/passwd中的内容如上一小节所示,每一行代表一个用户信息,由 : 划分成7个部分

temp:x:1050:1002::/home/temp:/bin/bash
  1. 第一列的temp表示用户名,通常长度不超过8个字符,需要注意的是,用户名中不能包含“:”号。为了兼容,用户名中最好不要包括“.”,此外尽量避免使用“-”作为连字符和以“+”号打头
  2. 第二列的x表示密码,在某些系统中会存放密码。尽管该字段存储的密码不是明文但由于该文件对所有用户均可读,因此依然存在一定的风险。所以,很多Linux系统会在这里用x表示,而将真正的密码保存到/etc/shadow中
  3. 第三列的1050表示UID
  4. 第四列的1002表示GID,对应/etc/group配置文件中的一条记录(用户组的唯一标识)
  5. 第五列的为描述信息,解释该用户是做什么用的,即图中的蓝色部分,一般普通用户这个部分默认为空
  6. 第六列的/home/temp表示当前用户的主目录,对于root用户而言,其家目录就是/root;对于普通用户而言,其家目录就是/home/$username
  7. 第七列的/bin/bash为登录之后执行的shell,这里的/bin/bash就是运行bash控制台

1.3.2 /etc/shadow

对于/etc/shadow配置文件来说,默认情况下只有根用户才有读取的权限,其他用户对此文件没有任何权限。我们使用根用户登录系统后,执行如下命令来查看shadow配置文件的信息

cat /etc/shadow vim /etc/shadow

每一行代表一个用户信息,由 : 划分成9个部分

  1. 第一列表示用户名,与/etc/passwd中的用户名相对应
  2. 第二列的一长串字符表示用户对应的密码。如果该列为“!!”或“*”,表示未设置密码,无法进行登录
  3. 第三列的表示最近修改的天数,使用时间戳进行表示,也就是距离时间原点(1970年1月1日)的天数,这里为空表示最近为进行过修改
  4. 第四列表示两次修改的时间间隔,此处为0表示随时可以修改
  5. 第五列表示密码的有效天数,默认为99999,也就是273年,可认为是永久有效
  6. 第六列表示失效前多少天进行告警,一般默认为7
  7. 第七列表示密码失效后能够宽限的天数,也就是用户仍能在多少天内使用之前的失效密码登录系统。如果值为0,表示立即失效,如果是-1则表示永远不会失效;如果为10,则表示过期后10天依然能够登录系统
  8. 第八列表示账号失效的日期,账号失效时,即使密码有效,也无法登录系统
  9. 第九列为保留字段,暂未开始使用

1.4 新增用户

命令

useradd 用户名 -选项

选项

  • -u 指定用户uid
  • -d 指定用户登入时的主目录,替换系统默认值/home/<用户名>
  • -s 指定用户登入后所使用的shell 解释器,默认/bin/bash,如果不想让其登录,则可以设置为/sbin/nologin
  • -g 指定用户所属的用户组
  • -m 指定不创建家目录

示例

输入useradd <用户名>之后,不带选项时系统会默认帮我们做如下动作

    1. 在 /etc/passwd 文件中创建一行关于temp1用户的数据

    2.在 /etc/shadow 文件中新增了一行关于temp1用户密码的数据

    3. 在 /etc/group 文件中创建一行与用户名相同的组

    4. 在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息,一般没有密码

    5. 自动创建用户的家目录,默认在/home下,与用户名同名

    6. 将/etc/skel下的文件拷贝到主目录下

1.5 设置密码

命令

passwd 用户名 -选项

选项

  • -l 锁定密码,用户不能更改密码
  • -u 密码解锁
  • -d 删除密码

示例

如果不带用户名,则默认给当前登录的用户修改密码,root用户可以给其他用户设置密码,普通用户只能给自己设置密码,设置完密码后,查看/etc/shadow文件

由 !! 变成了字符串,代表密码设置成功,用户可以使用该密码登录

1.6 删除用户

命令

userdel 用户名 -选项

选项

  • -r 删除用户及家目录

示例

注意,如果不带 -r选项,用户的家目录不会被删除

删除完成后,查看/etc/passwd 和/etc/shadow文件,发现temp1用户相应信息已删除

1.7 切换用户

命令

su 用户名 -选项

选项

  • -l 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
  • -m -p 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
  • -s 指定要执行的shell

从普通用户切换成root用户

// 方法一:su
[hqs@VM-8-2-centos ~]$ su
 
// 方法二:su -
[hqs@VM-8-2-centos ~]$ su -
 
// 方法三: su root
[hqs@VM-8-2-centos ~]$ su root

输入命令之后按回车会提示你输入密码,注意此时的密码是root用户的密码,输入root密码后,就由普通用户切换成了root用户

[hqs@VM-8-2-centos ~]$ su 
Password: 
[root@VM-8-2-centos hqs]# whoami
root

从root用户切换成普通用户

// 方法一:su + 用户名 ———— 可以从root直接切换成任一用户
[root@VM-8-2-centos hqs]# su hqs
[hqs@VM-8-2-centos ~]$ whoami
hqs
 
// 方法二:直接按ctrl + d
[root@VM-8-2-centos ~]# whoami
root
[root@VM-8-2-centos ~]# logout  // ctrl + d
[hqs@VM-8-2-centos ~]$ whoami
hqs
 
// 方法三:logout
[root@VM-8-2-centos ~]# logout
[hqs@VM-8-2-centos ~]$ whoami
hqs

超级用户切换成普通用户不需要输入密码

1.8 添加sudo用户

一个没有经过配置的普通用户是无法使用 sudo命令来提升自己的权限的

Linux下,将普通用户添加至sudo用户需要修改配置文件 /etc/sudoers/ ,要想完成这一操作首先需要我们切换成root用户

打开之后的文件如下

直接往下滑,或者输入“:”(shift+;)进入命令行模式,再输入反斜杠/,进行文本搜索关键字ALL=(ALL),按回车直接定位到要修改的位置

再图上位置添加下面的语句即可,注意退出保存时使用 wq!

用户名 ALL=(ALL) ALL

为temp用户添加sudo权限成功

2. 用户组管理

2.1 用户组类型

Linux下的用户组主要分为两类

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

在Linux中,一个组不能属于另一个组,即Linux里不允许嵌套组的存在

2.2 用户组GID

GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的 GID

root用户的 UID = 0, GID = 0,在创建普通用户时,可以使用-g选项指定所属的组,否则默认的 GID = UID

修改用户的GID可以用如下命令

groupmod -g 新的组ID 用户名

将已经存在的用户添加到已经存在的组中可以使用如下命令

uesrmod -a -G 要添加的组 用户名

Linux下一个用户可以属于多个组,这里将temp2用户添加到GID = 1002的组中,查看/etc/group文件

2.3 配置文件

对于用户组管理而言,其配置文件为:/etc/group/etc/gshadow

使用vim打开/etc/group

和/etc/passwd一样,每一行代表一个组信息,每一行又通过:隔开,分为四部分

  1. 第一列表示用户组名
  2. 第二列为密码,与/etc/passwd类似,用x进行占位
  3. 第三列为用户组的唯一标识GID
  4. 第四列表示组成元

2.4 新增用户组

命令

groupadd 新增用户组名

示例

groupadd test

打开/etc/group查看,用户组添加成功

2.5 删除用户组

命令

groupdel 删除的用户组名

示例

groupdel test

打开/etc/group查看,用户组删除成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值