linux 用户和组管理

https://zhuanlan.zhihu.com/p/30252309

https://wenku.baidu.com/view/a2d3503bf9d6195f312b3169a45177232f60e41d.html

https://www.cnblogs.com/sxdcgaq8080/p/7498906.html (详细)

一、前言

Linux 的安全性很高,它完善的用户和权限管理机制功不可没。

妥善管理好 Linux 系统上的用户和组是 Linux 系统管理员的义务。

本文以 CentOS 7.4.1708 为例,其他 Linux 发行版部分内容可能会有所不同。

===============================================================

读取r:允许查看⽂件内容、显⽰⽬录列表
写⼊w:允许修改⽂件内容,允许在⽬录中新建、移动、删除⽂件或⼦⽬录
可执⾏x: 允许运⾏程序、切换⽬录
===============================================================

二、用户管理

2.1 用户的类型

在 Linux 系统中,有三种用户。

2.1.1 超级用户

用户名为 root,用户 ID 为 0。有着至高无上的权限,可执行所有任务,可访问所有文件,可管理所有用户。

在服务器配置工作完毕后,为了安全,不应该直接使用超级用户。

2.1.2 普通用户

用户 ID 默认从 1000 开始。供普通用户使用。

2.1.3 系统服务用户

用户 ID 默认为 1-499。仅供系统服务使用,默认不可登录(即默认 SHELL 为 /sbin/nologin)。

 

2.2 查看本机用户信息

2.2.1 /etc/passwd

文件的格式如下:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

该文件以 : 作为字段分隔符,保存了本机所有用户的基本信息。以下详细说明其含义。

在早期的 Linux 系统中,密码是保存在这个文件里的。但是该文件默认所有用户都可读,会对系统安全造成威胁。现在,密码都以散列的形式存储在了 /etc/shadow 中了。

2.2.2 /etc/shadow

文件的格式如下:

root:$6$3Cprk6.h$Ied2v...:17438:0:99999:7:::
bin:*:17110:0:99999:7:::
...

该文件默认的权限为 000,也就是所有用户都不可访问(root 肯定可以访问,但是不建议直接修改此文件)。

该文件同样以 : 作为字段分隔符,保存了本机所有用户有关密码以及安全的信息。以下详细说明其含义。

2.3 添加用户

命令用法

useradd [选项] <用户名>

2.4 删除用户

命令用法

userdel [选项] <用户名>

2.5 修改用户参数

命令用法

usermod [选项] <用户名>

2.6 用户密码及安全管理

命令用法

passwd [选项] <用户名>

2.7 切换到某一用户执行命令

命令用法

sudo [选项] <命令>

三、组管理

3.1 组的概述

组是一类特殊账户,指具有相同或者相似特性的用户集合。

一个用户可以同时属于多个组,其中某个组为该用户的主要组,其他组为该用户的附加组。

而主要组是在用户登录时默认使用的组身份。在创建文件或目录时,若不指定属主,默认使用该组身份。

组的分类以及组 ID 的分布情况与用户基本一致。

每一个组可以由 `root` 指定一个或多个组管理员。

管理员可以添加或删除组中的成员。所有组管理员共用一个管理员密码。

组管理员可以是系统中的任意账户,可以不是组中的成员。

3.2 查看本机组信息

3.2.1 /etc/group

文件的格式如下:

root:x:0:
bin:x:1:
...

该文件以 : 作为字段分隔符,保存了本机组的基本信息。以下详细说明其含义。

在早期的 Linux 系统中,组管理员密码是保存在这个文件里的。但是该文件默认所有用户都可读,会对系统安全造成威胁。现在,密码都以散列的形式存储在了 /etc/gshadow 中了。

3.2.2 /etc/gshadow

文件的格式如下:

root:::
bin:::
...

该文件默认的权限为 200,也就是只有 root 有写权限(root 也肯定可以读)。

该文件同样以 : 作为字段分隔符,保存了本机所有组的组管理员以及管理员密码。以下详细说明其含义。

3.3 添加组

命令用法

groupadd [选项] <组名>

3.4 删除组

命令用法

groupdel <组名>

3.5 修改组参数

命令用法

groupmod [选项] <组名>

 

3.6 组成员管理

3.6.1 添加一个成员到组中

命令用法

gpasswd -a <用户名> <组名>

3.6.2 从组中删除一个成员

命令用法

gpasswd -d <用户名> <组名>

3.6.3 设置组成员列表

命令用法

gpasswd -M <用户名1>[,<用户名2>,...] <组名>

3.6.4 设置组管理员列表

命令用法

gpasswd -A <用户名1>[,<用户名2>,...] <组名>

3.6.5 设置组管理员密码

命令用法

gpasswd <组名>

3.6.6 删除组管理员密码

命令用法

gpasswd -r <组名>

3.6.7 查看用户加入的组

命令用法

groups [用户名]

若不指定用户名,则查看当前用户加入的组。

3.7 切换用户当前的组身份

命令用法

newgrp <组名>
posted @   大道至简,各有其道。  阅读(691)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示