Linux之用户管理
前言#
用户一般指系统的使用者,系统针对使用其的每一个身份给了一个特定的名称,使用者可以使用该名称用来进行操作计算机,除了使用者之外一些服务也需要特殊的权限才能运行,因此用户管理应运而生,其明确不同的用户拥有不同的权限
GNU/Linux 通过用户和用户组实现访问控制----包括对文件访问、设备使用的控制。
个人可以拥有很多账户,只是彼此名称不同,比如 root 名称已经占用就不能再用了,此外,任意用户可能从属某个用户组,此用户可以加入某些已经存在的特权组用来获取相应的用户权限
GNU/Linux 系统中的每一个文件都有属一个用户(属主)和一个用户组(属组)。另外,还有三种类型的访问权限:读(read),写(write),运行(excute),我们可以针对文件的属主,属组,设置相应的访问权限,我们可以通过ls | stat查询文件的属组,属组,权限等
用户账号 #
用户分类#
Linux用户分为三类
超级用户#
root用户拥有最高的权限 uid=0
普通用户#
系统用户:UID范围:1-999
本地用户:UID范围:1000+
UID:用户唯一的标识符 用户名称给计算机使用者看 UID是给计算机识别的
虚拟用户#
伪用户一般不是用来登录操作系统的 而是用来维持某个服务的运行
用户组关系#
一对一:一个用户可以存在一个组中 一对多:一个用户可以存在多个组中
多对一:多个用户可以存在一个组中 多对多:多个用户可以存在多个组中
配置文件#
名称 |
账号信息 |
文件说明 |
用户配置文件 |
/etc/passwd |
记录了每一个用户的基本属性 每个用户可读 每一行记录对应一个用户 |
用户组文件 |
/etc/group |
用户组信息存放文件 组名不能重复 |
用户密码信息文件 |
/etc/shadow |
用户密码存放文件 因为passwd文件所有用户均可以读取 密码存放不安全 将密码抽取出来 只有root用户可以读取 |
用户配置文件#
配置文件解释
伪用户
一般shell类型为nologin的用户为伪用户改用户不能进行登录
用户组文件#
私有组机制
对于linux来说针对超级用户和普通用户来说UID=GID 当产生一个UID则会产生一个GID且两者数值相等且对应
用户密码信息文件#
无任何权限

root:$6$W7lQkA0N0/tCuT5Q$rAXLO44opshH3skD.gubgAD.Z8Xx6rOuN7NGaK.CavAxQn.whUawXKMcvZbQA5GUtLgbA9mch4Pfkva1j4mSF0::0:99999:7::: root: # 用户名 $6$W7lQkA0N0/tCuT5Q$rAXLO44opshH3skD.gubgAD.Z8Xx6rOuN7NGaK.CavAxQn.whUawXKMcvZbQA5GUtLgbA9mch4Pfkva1j4mSF0 # 用户密码 :16274 # 用户修改密码时间 从unix元年计算 0: # 丌能更改密码的最少天数,最近更改过后几天才可以更改;如果为 0 表示“最短期限要求” 99999: # 密码过期时间,必须更改密码前的最多天数 7 # 密码即将到期的警告期,以天数表示, 0 表示“丌提供警告” : # 宽限天数,密码过了几天之后还能修改 : # 账号过期时间,以距离 unix元年计算 : # 保留字段
用户管理#
useradd#
作用#
用来创建新的用户
useradd 用户名 # 创建用户
参数:-d#
创建用户时候指定用户的家目录
参数:-g#
设置用户初始组的数字ID或者名称 如果未设置 useradd会根据/etc/login.defs文件中的USERGROUPS_ENAB环境变量进行设置,默认USERGROUPS_ENAB yes会用和用户名相同的名字创建群组, GID 等于 UID
参数:-G#
用户加入的附加组列表 用逗号分隔多个组,如果不填加用户仅仅处于初始组,(一个用户只能有一个主组 但是可以有多个附加组)
参数:-s#
用户默认登录 shell 的路径;启劢过程结束后,默认启劢的登录 shell 在此处设定;请确保使用的shell 已经安装,默认是 Bash。有时候需要禁止某些用户执行登录劢作,例如用来执行系统服务的用户。 将 shell 设置成 /sbin/nologin 就可以禁止用户登录
userdel#
作用#
删除创建的用户
userdel + 用户名
参数:-r#
删除的时候会连同用户的家目录以及/var/mail的目录
用户修改密码方式#
方式一#
passwd 用户名
方式二#
echo + 密码 | passwd --stdin + 用户名
usermod#
作用:#
修改用户信息
参数:-u#
修改用户的uid

-d 宿主目录 -g 起始组 #只能有一个 -G 附加组 #可以有多个 -s 登录 shell -L 锁定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!