目录
文件类型和文件权限的表示方法

文件类型
- | 普通文件 |
d | 目录文件 |
b | 块特殊文件 |
c | 字符特殊文件 |
l | 符号链接 |
f | 命名管道 |
s | 套接字文件 |
文件权限
字符权限和数字权限的表示方法表示方法
字符权限 | 数字权限 | 表示意义 |
---|---|---|
r | 4 | 读 |
w | 2 | 写 |
x | 1 | 执行 |
1 2 4可以即为
,
,
第一组 rw-:表示username用户对filename这个文件有读和写的权限。
第二组 r-x:表示groupname用户组对filename这个文件有读和执行的权限。
第三组 r--:表示除用户和用户组之外的用户对filename这个文件有读的权限。
目录权限的表示方法
x | 进入目录 |
rx | 显示目录内的文件名 |
wx | 修改目录内的文件名 |
权限的修改
更改属主、属组 chown
更改属主语法格式:chown 属主名 文件名
更改属组语法格式:chown :属组名 文件名
mkdir test //新建一个演示文件夹test
ls -ld /test //查看test的详细内容
chown user2 /test //将test的属主更改为user2
chown :group1 /test //将test的属组更改为group1
修改权限chmod
添加不同的参数对修改的用户不同:
u(username) 对文件属主权限的修改
g(groupname) 对文件属组权限的修改
o(other) 对其他用户权限的修改
a(all) 对所有用户权限的修改
添加不同的符号代表的意思也不相同:
+ 增加权限
- 减少权限
= 设置权限
cd /test //转入test目录下
touch afile //创建一个名为afile的测试文件
ls -l afile //查看初始时的各部分权限
chmod u+x afile //对属主部分赋予可执行权限
chmod g-r afile //对属组部分减少读取的权限
chmod o=w afile //对其他用户部分设置为写的权限
chmod a+r afile //对所有用户部分增加读取的权限
也可以用数字权限来进行修改
//属主赋予读的权限,属组赋予读的权限,其他部分赋予读和写的权限(6=4+2)
chmod 446 afile
当我们新建一个文件时,会有一个默认权限,我们可以新建一个文件名为bfile,这个文件以数字表示为644,默认权限参考一个usmak的值
umask值为0002,其中第一个0与特殊权限有关,可以暂时不用理会,后三位002则与普通权限(rwx)有关,所以默认权限为(666-022=644).
权限管理
准备演示材料:
1.首先新建一个测试文件夹atest
2.赋予最高权限777(4+2+1,r+w+x)
3.建立测试文件afile
4.修改文件afile的属主为user2,属组为group1
5.修改文件afile的权限为400
6.使用echo 123 > afile 将123写进文件(后面shell会讲到echo)
以属主为例:测试对属主的权限进行修改
cat /atest/afile //读取文件afile
echo 456 > /atest/afile //将456写入文件afile
通过测试发现user2对文件afile只有读取权限,没有写入权限,这时我们返回root用户,赋予写的权限,然后切换回user2进行验证,发现可以写入但是不能读取。
特殊权限
特殊权限种类
SUID 用于二进制可执行文件,执行命令时取得文件属主权限
SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组
SBIT 用于目录,该目录下新建的文件和目录,仅root和自己可以删除
SUID:如 /usr/bin/passwd:
图中s表示不管root用户还是普通用户执行时候,他都会以属主root的身份执行。(普通用户修改密码就是最好的例子,普通用户可以修改自己的密码,root用户也可以修改普通用户的密码)
SGID:多用于文件共享的时候。
SBIT:如/tmp:
图中t表示当创建自己的临时文件时候,只有自己和root用户删除,防止被别的用户删除。
增加特殊权限
语法格式:SUID:chmod 4+原有的数字权限 文件名称
SBIT: chmod 1+原有的数字权限 文件名称
chmod 4755 /atest/bfile //将文件bfile增加特殊权限SUID
chmod 1755 /atest/bfile //将文件bfile增加特殊权限SBIT