有勇气的牛排博客

linux用户和组的管理详解

有勇气的牛排 1131 linux 2021-08-26 21:57:34

1 简介

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户和用户组管理,顾名思义就是添加用户和用户组、更改密码和设定权限等操作。可能有很多人觉得用户管理没有意义,因为我们在使用个人计算机的时候,不管执行什么操作,都以管理员账户登录,而从来没有添加和使用过其他普通用户。这样做对个人计算机来讲问题不大,但在服务器上是行不通的。

大家想象一下,我们是一个管理团队,共同维护一组服务器,难道每个人都能够被赋予管理员权限吗?显然是不行的,因为不是所有的数据都可以对每位管理员公开,而且如果在运维团队中有某位管理员对 Linux 不熟悉,那么赋予他管理员权限的后果可能是灾难性的。

因此,越是对安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。

2 分类

2.1 用户分类

2.1.1 超级用户

用户名:root

UID:0(不重复)

2.2.2 普通用户

CentOS6-

UID:1~499

CentOS7+

UID:1~999

2.2.3 登录用户

CentOS6-

UID:500+

CentOS7+

UID:1000+

注意:60000+的UID通常需要用户自定义标识。

3 名字解释

名称解释:系统将用户的名称和UID进行识别。

4 文件介绍

4.1 用户账号文件 passwd

存放用户信息,每项用 : 隔开

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

用户名:root
x:口令、密码
第一个0:用户
第二个0:所在组
第二个root:密码
::描述
/root:用户主目录
/bin/bash:用户缺省Shell

faa25e58a55041bb8f7b674693023300.png

  1. passwd命令用于设置用户的认证信息,包括用户密码,密码过期时间等。
  2. 只有管理员可以指定用户名称。
  3. 一般用户只能变更自己的密码。

参数介绍:

-d:删除密码,仅有系统管理者才能使用; -f:强制执行; -k:设置只有在密码过期失效后,方能更新; -l:锁住密码,不让修改。 -s:列出密码的相关信息,仅有系统管理者才能使用; -u:解开已上锁的帐号。

4.1.1 用户test密码操作

4.1.1.1 更改or创建用户test用户的密码
passwd test

5721c3b302844b399155bae9b8a6f962.png

当用户不存在的时候后报错

4.1.1.2 当前用户修改自己的密码
passwd

a13c5d8f910d41c7bc643b8eab5179d1.png

4.1.1.3 禁止test用户修改密码
passwd -l test

563c62b77fa1421bbe6f96740f08ca94.png

4.1.1.4 清除test用户密码
passwd -d test

注意:密码清除后,无需密码,即可登录。

abdc99929d444b89962588a9df542a19.png

4.1.1.5 查询test用户密码
passwd -S test

4536551cd8294be7ba100926aa887813.png

4.2 用户影子文件 shadow

cat /etc/shadow

7eb755f60baf487197882c3098786ea7.png

4.3 用户组账号文件 groun和gshadow

jack:$!$:???:13801:0:99999:7:*:*:

组名:jack
$!$:被加密的口令
13801:创建日期与今天相隔的天数
0:口令最短位数
99999:用户口令
7:到7天时提醒
*:禁用天数
*:过期天数

查看组文件

cat /etc/group

201f32c05a534e54ab02532cda5920a0.png

cat /etc/gshadow

750af8a90dc64fc5bc0a04f12a8452ca.png

5 创建用户 useradd

创建好的用户保存在/etc/passwd文件中

5.1 参数

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; -d<登入目录>:指定用户登入时的启始目录; -D:变更预设值; -e<有效期限>:指定帐号的有效期限; -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; -g<群组>:指定用户所属的群组; -G<群组>:指定用户所属的附加群组; -m:自动建立用户的登入目录; -M:不要自动建立用户的登入目录; -n:取消建立以用户名称为名的群组; -r:建立系统帐号; -s<shell>:指定用户登入后所使用的shell; -u<uid>:指定用户

5.2 实战演练

5.2.1 创建用户并加入组

在这里插入代码片

5.2.2 创建用户and设置ID

useradd charles -u 520

注:设定ID值时尽量大于500,避免冲突,因为linux安装后会建立一些特殊用户,一般 0~499 之间的值留给bin、mail这样的系统账号。

5.3 实例

创建一个用户 tom,并设置uid为556,主目录为/usr/tom,属于users组:

useradd -u 544 -d /usr/tom -g users -m tom

-m:如果主目录不存在则自动创建

6 修改用户信息 usermod

-c<备注>:修改用户帐号的备注文字; -d<登入目录>:修改用户登入时的目录; -e<有效期限>:修改帐号的有效期限; -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号; -g<群组>:修改用户所属的群组; -G<群组>;修改用户所属的附加群组; -l<帐号名称>:修改用户帐号名称; -L:锁定用户密码,使密码无效; -s<shell>:修改用户登入后所使用的shell; -u<uid>:修改用户ID; -U:解除密码锁定。

6.1 将tom用户添加到staff中

usermod -G staff tom

6.2 修改tom用户名为tom1

usermod -l tom1 tom

6.3 锁定账号tom1

usermod -L tom1

6.3 解除tom1用户锁定

usermod -U tom1

7 删除用户 userdel

-f:强制删除用户,即使用户当前已登录; -r:删除用户的同时,删除与用户相关的所有文件。

7.1 删除用户 不删目录and文件

userdel linuxde

7.2 删除用户 目录文件一起删

记得提前备份

userdel -r linuxde

如果在 /etc/passwd 这里面删除也行,但是要注意不要失误(不建议)。

8 ubuntu 添加新普通用户

8.1 创建用户

useradd -m charles -s /bin/bash
passwd charles
adduser charles sudo
su charles
  • 创建charles用户,使用/bin/bash作为shell

  • 设置密码

  • 添加管理员权限

  • 切换登录用户charles

8.2 给用户授权

groups charles
usermod -aG sudo charles 
visudo
  • 查看charles所在的组。

  • 设置charles权限为superuser。

-查看sudoer的文本文件,可以添加charles ALL=(ALL:ALL) ALL为charles设置superuser权限。

8.3 删除用户

deluser --remove-home charles

参考文章:

https://www.cnblogs.com/ruanni/p/13922064.html

https://blog.csdn.net/thq0201/article/details/7195152

https://www.huaweicloud.com/articles/116bf3e57ee2a75bd74b121f146b5337.html

https://www.runoob.com/linux/linux-user-manage.html

http://c.biancheng.net/linux_tutorial/60/


留言

专栏
文章
加入群聊