Linux权限管理
概述
- Linux 将文件可读写的身份分为 3 个类别,为
- 拥有者(Owner)
- 所属群组(Group)
- 其他人(Others)
- Linux中每一个文件都有上述这三种权限
- 账号的相关信息记录在
/etc/passwd
文件中,密码记录在/etc/shadow
中,Linux的所有组名记录在/etc/group
中
Linux文件属性
- 通过
ls -al
命令可以查看当前目录下所有文件及其属性
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
- 权限的表示方式为:
dr-xr-xr-x
。 - 第一个字符表示该文件是目录、文件、或链接文件。是(d)则是目录,是(-)则是文件,是(|)则是链接文件,是(b)则是设备文件里面的可供存储的周边设备,是©则是设备文件里的串行端口设备(鼠标、键盘等)
- 后续三个长度为3的字符串分别表示该文件拥有者、文件所属用户组、其他人的权限,分别为可读®、可写(w)、可执行(x)。仅当目录为(x)时才可进入。
- 第二栏表示有多少文件名链接到此节点(inode)
- 第三栏表示这个文件的拥有者账号
- 第四栏表示这个文件的用户组
- 第五栏为这个文件的容量大小(Byte)
- 第六栏为这个文件的创建日期或最近修改日期
- 第七栏为文件名
文件属性的修改
- 修改所属用户组
chgrp
[root@MiWiFi-R4-srv liu]$ chgrp [filename] [groupname] [-R(是否进行递归更改)]
所属的用户组必须在/etc/group
中有记录
- 修改文件拥有者
chown
[root@MiWiFi-R4-srv liu]$ chown [-R(是否进行递归更改)] [账号名称]:[用户组名称] [文件名]
- 修改权限
chmod
- 使用数字表示法
[root@MiWiFi-R4-srv liu]$ chmod [xyz, (权限的数字表示法)] [文件名]
- 使用字符表示法(用u,g,o代表user, group, others;a代表all(全部权限))
更可以用 +/- 号 增加/减少 权限[root@MiWiFi-R4-srv liu]$ chown u=rwx,go=rx [文件名]
[root@MiWiFi-R4-srv liu]$ chown a-x [文件名]
文件默认权限的修改
- 使用
umask
命令查看当前默认权限 - 默认权限的含义
- 已知文件的默认权限为666
- 目录的默认权限为777
umask
为不包含的权限,即新建立的文件的默认权限是666/777 - [umask]
文件权限的意义
- Linux下文件能否执行是依据该用户对于该文件有无权限
x
进行判断的,与文件后缀名无关 - 目录的
w
权限意味着拥有者可以对目录中的文件进行增、删、改,因此对于公共目录来说这是是一种比较危险的权限 - 开放的目录一般都会具有
rx
权限,w
权限一般较少
文件隐藏属性
- 主要用于提升系统安全性
- 应当使用
chattr
命令进行更改,但chattr
命令只能在ext2, ext3, ext4 的Linux传统文件系统上面完整生效 - 使用
lsattr
命令查看隐藏属性
文件特殊权限:SUID, SGID, SBIT
SUID
- 含义
SUID
仅对二进制程序有效- 执行者对于该程序需要具有
x
的可执行权限 - 本权限仅在程序的执行过程中有效
- 执行者将具有该程序拥有者(o)的权限
- 举例
- 当使用
/usr/bin/passwd
程序对密码进行修改时(程序的权限为-rwsr-xr-x
),普通用户在执行该程序时可以短暂地获得(root)身份,从而可以修改/etc/shadow
文件。 - 当用户想用别的程序如
/bin/cat/
查看shadow
文件时,由于cat
不具备s
即SUID
权限,用户则无法查看该文件