Linux最优秀的地方之一就在于他的多用户多任务环境,在系统可建立多个用户,而多个用户可以在同时登录同执行各自不同的任务而互不影响,而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。也正是通过对于权限的划分与管理,实现了多用户多任务的运行机制
用户分类
- 超级用户:默认root用户,拥有对系统管理最高权限,权限设置对其不起作用(UID:0,GID:0)
- 普通用户:具有登录系统的权限,受相应权限约束(UID/GID:500-60000 [centos7:1000-60000])
- 系统用户:不能登录系统,用于系统管理来满足相应的系统进程对文件属主的要求(UID/GID:1-499 [7:1-999])
用户组
用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,就可以将用户加入相应组中,同时设置该组拥有某些权限,这样该组下的用户就同时具有相关权限,以简化用户管理
。根据功能组可有3种分类方式:
- 普通用户组和管理员组
- 基本组和附加组
- 私有组和公共组
新建用户时默认建立一个同名的组作为其私有组
文件权限
Linux一般将文件可存取的身份分为三个类别:owner(所有者)、group(所属组)和others(其它),且三种身份各有read(读)、write(写)和execute(执行) 等权限。当一个用户发起一个进程时,此进程将继承用户的属主、属组的权限,再以进程继承的权限来控制文件的访问权限
通过ls -l
命令可以用来查看文件权限
文件类型:
-
:一般文件d
:directory 目录c
:character 字符设备b
:block 块设备l
:link 链接文件p
:pipe 管道s
:socket 套节字
用户权限:
前3位:属主(u)权限
中3位:属组(g)权限
后3位:其它(o)权限
- r:读,内核用4表示
- w:写,2
- x:执行,1
目录和文件的权限区别
读(read) | 写(write) | 执行(execute) | |
---|---|---|---|
对文件 | cat,more,head.. | vi,echo.. | ./**执行 |
对目录 | ls | touch,cp,mv,rm | cd |
相关文件及配置
1. /etc/passwd:记录用户的详细信息
1 | # 用户名:密码:UID:GID:注释信息:家目录:默认Shell |
每个用冒号隔开的字段含义:
- 用户名:用户的名称
- 密码:X表示占位符,密码信息保存在/etc/shadow
- UID:用户识别码
- GID:用户所属组的GID(基本组)
- 注释信息:备注用户的基本信息,如用户的住址、电话、姓名等
- 家目录:系统登录用户后的工作目录
- 默认shell:定义用户登录系统所使用的shell,指定的shell需要在/etc/shells中出现
2. /etc/shadow:用户的密码信息,只有root才有读写权限
1 | # 用户名:密码:上一次修改密码的时间:密码最短使用期限:最长使用期限:警告时间:帐号禁用期限:帐户过期时间:保留字段 |
- 用户名: 对应/etc/passwd文件
- 密码: 加密的密码
- 上一次修改密码的时间: 指用户上次修改密码的时间(时间戳)
- 密码最短使用期限: 指用户修改密码后,需要到多少天后方可更改密码,0表示禁用
- 密码最长使用期限: 指用户的密码到多少天后需要修改密码
- 警告时间: 指用户密码到期前多少天提示用户修改密码,0和空字段表示禁用此功能
- 帐号禁用期限:过期后不可用时间
- 帐户过期时间: 批帐户在密码过期后多少天还未修改密码,将被停用
- 保留字段:保留将来使用
3. /etc/group:用户组信息
1 | # 组名:密码:GID:用户列表 |
- 组名:组的名称,默认同名用户名
- 密码:组的密码占位符
- GID:组ID
- 用户列表:隶属此组的用户(附加组)
4. /etc/gshadow:用户组密码信息
1 | # 组名:密码:组管理者:用户列表 |
- 组名:组的名称,同步/etc/group文件中
- 密码:第一个$后面表示加密算法,第二个$后面表示加密的密码
- 组管理者:可以对此组成员有操作权限
- 用户列表: 用户的列表
5. /etc/login.defs:定义创建用户时的默认设置,如UID和GID的范围,用户的过期时间、是否需要创建用户主目录等
1 | MAIL_DIR /var/spool/mail # 创建用户的同时在/var/spool/mail中创建同名邮件文件 |
6. /etc/default/useradd:添加用户默认选项
1 | GROUP=100 # |
相关命令
useradd
、chown
、chmod
、usermod
、userdel
、groupadd
、groupmod
、groupdel
、passwd
、gpasswd
、su
、id
、newgrp
、chage
、chfn
、chsh
等,见常用命令–用户管理
最后:作为上帝般的root来说,任何权限都对其无效,谨慎使用