博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux文件权限和访问模式
阅读量:4184 次
发布时间:2019-05-26

本文共 1531 字,大约阅读时间需要 5 分钟。

一.linux为不同的文件赋予了不同的权限,每个文件都有下面三种权限:
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

你可能感兴趣的文章
在macOS 10.13.6上安装go 1.13.8实录!
查看>>
在macOS 10.13.6下安装Grafana实录
查看>>
使用Go语言遇到的“坑”收集
查看>>
在Mac上设置环境变量并永久生效的方法
查看>>
使用govendor灵活管理Go程序中的依赖包
查看>>
安装vim-go插件之后遇到的gopls警告信息不消失的问题的解决方法
查看>>
在CentOS 7.7 x86_64上安装python3.7.7
查看>>
在CentOS 7.7 x86_64上安装python3的selenium 3模块实录
查看>>
在CentOS 7.7 x86_64上安装InfluxDB 1.8.0实录
查看>>
CentOS 7.5 如何升级Git实录
查看>>
Python中的urllib.quote和Go中的url.QueryEscape关系探讨
查看>>
在Mac上使用pip3安装python的数据统计模块实录
查看>>
在Mac上使用pip3安装交互式环境IPython实录
查看>>
在Mac上使用pip3安装Jupyter Notebook并简单使用
查看>>
在Mac上利用pip3安装pyecharts模块
查看>>
go连接Kafka报错kafka: client has run out of available brokers to talk to
查看>>
在CentOS 7.5上升级SQLite3过程实录
查看>>
Mastering Algorithms with C中文版附带源码说明
查看>>
[综合面试] 计算机面试书籍与求职网站推荐
查看>>
删除链表中的重复项
查看>>