linux用户和组的管理详解

简介: Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。原文地址:[https://www.couragesteak.com/article/81](https://www.couragesteak.com/article/81)

1 简介

用户和用户组管理,顾名思义就是添加用户和用户组、更改密码和设定权限等操作。可能有很多人觉得用户管理没有意义,因为我们在使用个人计算机的时候,不管执行什么操作,都以管理员账户登录,而从来没有添加和使用过其他普通用户。这样做对个人计算机来讲问题不大,但在服务器上是行不通的。

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

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

2 分类

2.1 用户分类

2.1.1 超级用户

用户名 UID
root 0(不重复)

2.2.2 普通用户

系统 UID
CentOS6- 1~499
CentOS7+ 1~999

2.2.3 登录用户

系统 UID
CentOS6- 500+
CentOS7+ 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 这里面删除也行,但是要注意不要失误(不建议)。

参考文章:
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/

相关文章
|
5月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
6月前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
331 0
|
5月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
6月前
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
772 11
|
5月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
5月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
202 1
|
6月前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
62 11
|
5月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
6月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
110 1
|
6月前
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。