1.所有者权限:文件所有者能够进行的操作
2.组权限:文件所属用户组能够进行的操作
3.外部权限:其他用户能够进行的操作
二.查看文件权限
使用 ls -l 命令来查看与文件权限相关的信息,如下:
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
第一列就包含了文件或目录的权限 ,每个字符代表不同的权限,分别为 读取(r),写入(w),执行(x)
第一组字符(2-4)表示文件所有者的权限,-rwxr-xrw- 表示所有者拥有 读取 写入 执行的权限
第二组字符(5-7)表示文件所属用户组的权限,-rwxrw---x 表示该组拥有 读取 写入的权限
第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取文件
三.文件访问模式
文件权限是linux系统的第一道防线,基本的权限有 r w x
1.r:用户能读取文件,获取文件内容
2.w:用户可以编辑文件,删除或添加内容
3.x:用户可将文件作为程序来执行
目录访问模式类似,稍有不同
四.使用 chmod 来改变权限
权限可用数字或符号来表示
1.使用符号表示权限
+ 增加权限
- 删除权限
= 设置指定特权
o:8-10列
g:5-7列
u:2-4列
例: $chmod o=rw,u+w,g-r test //为test文件 修改权限
多个符号之间用逗号隔开
2.使用数字表示权限
使用八进制数字来指定具体权限 如下:
数字 说明 权限
0 没有任何权限 ---
1 执行权限 --x
2 写入权限 -w-
3 执行+写入:1+2=3 -wx
4 读取权限 r--
5 读取+执行:4+1=5 r-x
6 读取+写入:4+2=6 rw-
7 读取+写入+执行 rwx
r w x
4 2 1
例: chmod 755 test 修改test权限为 -rwxr-xr-x
五.更改所有者和用户组
在linux中每添加一个新用户,就会为他分配一个用户ID和群组ID,文件权限也是基于用户和群组来分配的。
有两个命令可以改变文件的所有者或群组:
1.chown(change owner) :用来改变文件的所有者
2.chgrp(change group) :用来改变文件所在的群组
语法:
$chown user filelist //user 是用户名或者是用户ID
注意:超级用户不收权限限制的更改文件的所有者和用户组,但普通用户只能更改所有者是自己的目录或文件。
chgrp 同理。
六.SUID和SGID位
在 linux 中,一些程序需要特殊的权限才能完成用户指定的操作。
linux 通过给程序设置SUID(Set User ID)和SGID(Set Group ID)位来赋予普通用户特殊权限。
当我们使用SUID位的程序时,就会继承该程序所有者的权限了;如果程序不带SUID位,则会根据程序使用者的权限来运行。普通用户以root的权限来执行程。
如果程序设置了SUID位,就会在表示文件所有者可执行权限的位置上显示's'字母,同样如果设置了SGID位,就会在表示文件组所有者可执行权限的位置上显示's'字母。
注意:小写字母's'说明文件所有者具有执行(x)权限,大写字母'S'说明文件所有者不具有。
为一个目录设置SUID和SGID位 可使用如下命令:
$chmod ug+s sirname