linux 用户、组和文件权限

时间:2022-07-18 15:22:14

用户、组

在linux系统上,用户管理是基于用户名和密码的方式进行资源的分配,linux上的用户即username/UID分为以下类别:

管理员:root,UID:0

普通用户:1-65535

普通用户又分为:系统用户和登录用户两种:

系统用户:1-499(centos6)1-999(centos7)对守护进程获取资源进行权限分配;

登录用户:500+(centos6)1000+(centos7)通过交互式方式登录

linux组:groupname/GID

管理员组:root,GID:0

普通组:1-65535

普通组分为系统组和非系统组,通常把非系统组称为普通组

系统组:1-499(centos6)1-999(centos7)

非系统组:500+(centos6)1000+(centos7)

对于一个用户而言可以有多个组,分别称为用户的主组和附加组;主组组名与用户名相同,且只包含一个用户,也叫私有组。主组以外的组属于用户的附加组。

linux用户和组相关的配置文件为/etc/passwd,该文件记录了用户及其属性信息

其他配置文件:

/etc/group:组及其属性信息

/etc/shadow:用户密码及其相关属性

/etc/gshadow:组密码及其相关属性

文件权限

文件

r   w   x

当仅r权限作用在文件上的时候 ,用户可以读取该文件的内容
* 当仅w权限作用在文件上的时候,用户可以修改该文件的内容
当仅x权限作用在文件上的时候,没有意义
当 r w 同时作用在文件上的时候,用户可以读写修改
当 r x 同时作用在文件上的时候,用户可读可执行该文件
当w x 同时作用在文件上的时候 ,与仅w相同
当 r w x 同时作用在文件上时 ,可读 可执行 可修改、
目录
r w x
当仅r权限作用在目录上的时候,表示用户可以短列出查看目录下的文件名
当仅w权限作用在目录上的时候,没有意义
* 当仅x权限作用在目录上的时候,表示用户可以进入且可以访问目录下的文件,但不能列出文件名
当仅rw权限同时作用在目录上的时候,权限等同于仅r权限作用在目录
当仅rx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,同时可以长列出文件
* 当仅wx权限同时作用在目录上的时候,表示用户可以进入,可以访问子文件,可以创建及删除,但不能列出
当rwx权限同时作用在目录上的时候,表示用户有完整权限

用数字表示:

r 4  w2  x1

7:rwx                            3:wx

6:   rw                             2:w

5:   rx                              1:x

4:   r

默认权限

umask
表示用户创建文件的默认权限,目录最高777 ,文件最高666
umask xxx 设置umask
umask 查看umask
~/.bashrc 将umask设定保存,下次登录时仍然有效
umask - S 显示创建目录的默认权限
文件下默认权限 逢偶数减 奇数不减
复制文件时新文件权限由原文件权限减umask
特殊权限位
suid:对于可执行的二进制文件作用了suid之后,任 何人在执行该文件时,可临时拥有其所属人的权限
suid :对于可执行的二进制文件作用了sgid之后,任何人在执行该文件时,可临时拥有其所属组 的权限
对于目录作用了sgid之后,任何人在该目录下创建的文件的所属组继承目录的所属组
sticky:对于目录作用了sticky 之后,该目录下的文件及子目录,仅其所属人和目录的所属人及root才能删除
小写时有x权限 大写没有x权限
增加特殊权限位 删除特殊权限位
chmod u+s u-s
chmod g+s g-s
chmod o+t 0-t
数字方式
chmod 4777 suid
chmod 2777 sgid
chmod 1777 sticky
chattr +a 不可修改,可以追加,不能删除
- a 取消
chattr +i 什么也能不做,只能读
-i 取消

ACL

ACL 生效顺序
owner > acl user > group acl group 谁多谁优先 > other
设置ACL
setfacl -m u | g :username|groupname:rwx filename|dirname
用户 | 组 用户名 | 组名 权限 文件名 | 目录名
删除ACL
setfacl -x u | g : username|groupname filename|dirname
删除所有ACL
setfacl -b filename |dirname
设置mack值 权限上限
setfacl -m m:r-x filename|dirname 或 chmod g=rx filename |dirname