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且两者数值相等且对应
用户密码信息文件
无任何权限
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
-d 宿主目录 -g 起始组 #只能有一个 -G 附加组 #可以有多个 -s 登录 shell -L 锁定