linux用户和组的管理详解

浏览 12 次     时间 2021-08-26 21:57:34     作者 有勇气的牛排    标签 linux

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 在这里插入代码片

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

参数介绍:

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

4.1.1 用户test密码操作

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

在这里插入图片描述 当用户不存在的时候后报错

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

在这里插入图片描述

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

在这里插入图片描述

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

注意:密码清除后,无需密码,即可登录。 在这里插入图片描述

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

在这里插入图片描述

4.2 用户影子文件 shadow

cat /etc/shadow

在这里插入图片描述

4.3 用户组账号文件 groun和gshadow

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

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

查看组文件

cat /etc/group

在这里插入图片描述

cat /etc/gshadow

在这里插入图片描述

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/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。