[toc]
简介
- Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
- Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
- Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
- Linux上通常使用chmod命令对文件的权限进行设置和更改
用户身份和群组的记录文件
- 系统所有的账号和一般身份使用者,还有root的相关信息都记录在 /etc/passwd中
- 个人密码记录在 /etc/shadow 目录中
- linux 的所有组名 记录在 /etc/group目录中
如何更改文件的属性和权限
- chgrp: 改变文件所属群组
- chown: 改变文件所属用户
- chmod: 改变文件的权限,SUID等特性
数字权限使用格式
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限,即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5
其中 0 表示无任何权限
若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。
- 775
当前用户,当前用户所属群组可读写运行其他组 可读写不可运行 - 777
所有人都可读写运行 - 600
仅当前用户可读写运行
符号类型改变权限
三种身份分别可用 u(user) g(group) o(other) a(all)
注意: a 所有身份
权限符号
- '+' 表示 加入权限
- '-' 表示 除去权限
- '=' 表示 设定权限
用 chmod 命令进行权限的设定(符号类型权限设定),如下:
# 修改 所属用户有读写执行权限 所属组有读写执行权限 其他组无任何权限
sudo chmod -R u=rwx,g=rwx,o=--- ceshi
Q&A
能否读取到某个文件内容,跟该文件所在的目录权限也有关系 (目录至少需要有 x 的权限)