Linux 用户体系详解

1. 概述

在 Linux 系统中用 UID 来标识用户 , 用户是能够登录并使用 Linux 的用户 ; 用户组是用户的分组 , 用 GID 标识 ;
Linux 系统分为 3 种用户 :

  1. root 用户 : Linux系统的超级管理员 , 可以操作任何文件和命令 , 拥有最高的权限 , UID 为 0 ;
  2. 虚拟用户 : 这类用户不具有登录系统的能力 , 但是是系统运行不可缺少的用户 , 例如 bin , daemon , ftp , mail 等 , 这些用户是系统自身拥有的 , UID 为 1~499 ;
  3. 普通真实用户 : 这类用户可以登录系统 , 但是只能操作自己的家目录 , 可以自行添加 , UID 为 500~60000 ;

2. 用户信息相关文件

Linux 的用户信息保存在 /etc/passwd 文件中 , 用户密码信息是保存在 /etc/shadow 文件中 ;

/etc/passwd 文件格式说明如下 :

passwd

文件中每一行是一个用户信息 , 各列以 : 分割 , 各列的含义如下 :
第一个是用户名称 ;
第二个是密码 , 但是这个字段现在已经不用了 , 密码存在在 /etc/shadow 文件中了 , 所以这里固定写x就是了 ;
第三个是 UID , UID 是用户的唯一标示 ;
第四个是 GID , 是指用户所在的首选组的 ID , 和 /etc/group 文件里的组 ID 对应 ;
第五个是用户信息说明信息 , 默认是和用户名一样的值 ;
第六个是用户的 home 目录路径 ;
第七个是用户默认的 Shell 路径 , Linux 的 Shell 类型很多 , 但是大多数是 /bin/bash ;

/etc/shadow 文件格式说明如下 :

shadow

文件中每行是一个用户密码信息 , 每行用 : 分割形成9个列 ; 以下是各个列的说明 :
第一列是用户名 , 用户名与 /etc/passwd 文件中的用户名对应 ;
第二列是密码 ; 密码是经过加密过的 , 系统不同计算规则不同 ;
第三列是最后一次修改密码的日期 , 这里是 16982 , 意思是从 1970-01-01 那天之后 16982 天的日期 ;
第四列是密码不可更新的天数 , 就是在设置密码后 , N天之内不能再次修改 , 防止频繁修改密码 , 如果是 0 , 就是随时可以修改密码 ;
第五列是密码必须修改的天数 , 就是在设置密码后 , N天后必须修改密码 , 不然会变成过期状态 ;这里是一堆九 , 大约是 273 年 ;
第六列是密码更改必须修改前多少天发出警告 , 这里是7天 ;
第七列是密码过期后 N 天内还可以使用 , 不过过期后使用时会强制要去修改密码 , 如果在过期N天后还没有修改密码 , 那账号就不能再使用了 ;
第八列是账号失效时间 , 指定日期之后 , 就无法再使用了 ;
第九个是预留的列 , 暂时没用 ;

3. 用户组信息相关文件

Linux 的用户组信息保存在 /etc/group 文件中 , 另外 /etc/gshadow 文件存放的是用户组密码相关信息

/etc/group 文件格式说明如下 :

group

文件中一行是一个用户组信息 , 每行用 : 分割为四列 :
第一列为组名称 ;
第二列为组密码 , 组密码已经移动到 /etc/gshadow 文件中了 , 所以这个固定是 x ;
第三列是 GID , 是用户组的唯一 ID , /etc/passwd 用户信息中的第四个字段就对应于这里的 GID ;
第四列是这个用户组下的用户名称 , 多个用户名以逗号分割 , 如果想将某个用户添加到一个组中 , 就在目标组这一行 , 添加上这个用户名 ;

/etc/gshadow 文件格式说明如下 :

gshadow

文件中一行是一个用户组密码信息 , 每行用 : 分割为四列 :
第一列为组名称 ;
第二列是密码 ; 密码是经过加密过的 , 系统不同计算规则不同 ;
第三列是用户组管理员的用户名 ;
第四列是组内用户 , 多个用户用逗号分隔 ;

4. 相关命令

useradd   添加用户
userdel   删除用户
usermod   修改用户的属性
passwd   为用户设置密码

useradd
-c 描述信息
-d 家目录
-g 指定主组 可以用 ID 或组名 (组必须先创建)
-G 指定附加组 可以用 ID 或组名 (组必须先创建)
-s 指定登录的 Shell
-u 指定 uid

# useradd -c manager username   // 描述信息
# useradd -d /test/username  username   // home 目录
# useradd -g group username   // 组名 , 主组必须已经存在
# useradd -G group username   // 组名
# useradd -s /bin/csh  username   // 指定 Shell
# useradd -u 600 username   // 指定 uid

userdel
-r 删除用户的同时删除家目录 (将用户和用户相关的所有数据全部删除)

# useradd username
# useradd -r username

usermod
usermod 的参数和 useradd 基本一致 -u -g -G -d -s

# usermod -L username   // 锁定用户 , 无法登录 , lock (也可以直接修改/etc/shadow密码前加了个 ! )
# usermod -U username   // 为用户解锁 , unlock

passwd
root 用户可以修改任何一个用户的密码

# passwd username

作者 Github : tojohnonly , 博客 : EnskDeCode

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值