摘要
本文介绍在Linux下对账号和用户权限管理
主要指令有:添加用户账号useradd 设置/更改用户命令passwd 设置权限 chmod usermod
Linux用户和用户组
登录Linux系统需要用户名和密码,为了方便用户的管理,加入了用户组的概念,修改用户组的权限会对用户组内的所有用户生效。
一个用户 必须有一个基本组 附加组可有可无 也可以有多个
Linux把用户的账号信息存在/etc/passwd 文件中
密码存在 /etc/shadow 文件中
用户组信息存在 /etc/group 文件中
我们在登录Linux系统时,Linux首先会做下面三个事情
- 从/etc/passwd中读出用户信息、默认的工作目录、和shell;
- 从/ect/group中读出用户所属用户组信息;
- 从/etc/shadow中验证密码,验证成功后,系统打开默认工作目录,和命令行的shell窗口 下面我们分别介绍下/etc/passwd和/etc/shadow中的内容
用户账号文件
/etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改
字段分析
字段1:用户帐号的名称
字段2:用户密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:备注,描述
字段6:宿主目录
字段7:登录Shell信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
值得注意的是uid的范围是有限的
| centos7 | centos6 | |
|---|---|---|
| 超级管理员 | 0 | 0 |
| 普通用户 | 1000开始 | 500开始 |
| 程序用户 | 1 -999 | 1-499 |
程序用户:
在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用 户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等,
用户账号管理
添加用户账号 useradd
作用
在/etc/passwd文件和/etc/ shadow文件的末尾增加该用户账号的记录。 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/gshadow文件中。
常用选项
-u UID:指定用户的UID号
-d 家目录:指定用户的家目录(当与-M 一起使用时,不生效)只能用绝对路径指定目录,切不需要事先创建目录
-g 组名: 指定用户的初始组
-G 组名: 指定用户的附加组
-s shell:指定用户的登录shell,默认是/bin/bash
-M 不建立家目录
实际操作如下:建立一个用户名为cxk,uid为1314 不让用户登录 不建立家目录
设置更改用户口令
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
普通用户却只能执行单独的“passwd"命令修改自己的密码
语法:passwd [选项] 用户名
如果不加用户名,默认为修改当前用户的密码
选项:
-S 查询用户密码的密码状态,仅root用户可用
-l 暂时锁定用户,仅root用户可用, (操作之后,在shadow中,用户的密码前边会多2个!!)
-u 解锁用户,仅root
实际操作给cxk 这个账户加上密码 为123
修改用户帐号属性 usermod 命令
常用选项
- -l 更改用户账号的登录名称(Login Name)
- -L 锁定用户账户
- -u 修改用户的 UID 号
- -U 解锁锁用户账户
- -d:修改用户的宿主目录位置。
- -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
- -g:修改用户的基本组名(或使用 GID 号)
- -G:修改用户的附加组名(或使用 GID 号)
- -s:指定用户的登录 Shell
实际操作将之前用户cxk 修改成临时用户失效时间为两年半后(2026年10月1日)
图中末尾20727就是失效时间
文件目录的权限归属
访问权限 归属
① 访问权限
✔ 读取r: 允许查看文件内容、显示目录列表
✔ 写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
✔ 可执行x: 允许运行程序、切换目录
② 归属(所有权)
✔ 属主: 拥有该文件或目录的用户帐号
✔ 属组: 拥有该文件或目录的组帐号
权限分为三种
- 读(r,4)
- 写(w,2)
- 执行(x,1程序,脚本)
对文件的权限
- r 可使用文件查看类工具,比如:cat,可以获取其内容
- w 可修改其内容
- x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)
对目录的权限
- r 可以使用ls查看此目录中文件列表
- w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
- x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限
设置权限 chmod
以数字形式设置权限
给文件加读写执行权限(777)
此时就可以运行了
更换文件的属主 属组chown
chown 用户:组名 文件名
实际操作 将 daner这个文件夹的属主 属组改为kunkun
此时kunkun 就可以改这个文件的权限了
三种特殊权限
suid
给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
sgid
此处s表示当使用这个命令程序时,把当前用户当成文件的属组
Sticky 位
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 在目录设置Sticky 位,只有文件的所有者或root可以删除该文件