教程:4、文件权限和访问方式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限:
- 所有者权限:文件所有者能够进行的操作
- 组权限:文件所属用户组能够进行的操作
- 外部权限(其他权限):其他用户可以进行的操作。
查看文件权限
使用ls -l命令可以查看与文件权限相关的信息:
第一列就包含了文件或目录的权限
第一列和字符分为三组,每一组为三个,每个字符分别代表不同的权限,分别为读取(r)、写入(w)和执行(x);
第一组字符(2-4)表示文件所有者的权限
第二组字符(5-7)表示文件所属用户组的权限
第三组字符(8-10)表示所有其他用户的权限
文件访问模式
文件权限是Linux系统的第一道安全防线,基本的权限有读取(r)、写入(w)和执行(x):
- 读取:用户能够读取文件信息,查看文件内容。
- 写入:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容。
- 执行:用户可以将文件作为程序来运行。
目录访问模式
目录的访问模式和文件类似,但是稍有不同:
- 读取:用户可以查看目录中的文件
- 写入:用户可以在当前目录中删除文件或创建文件
- 执行:执行权限赋予用户遍历目录的权利,例如执行 cd 和 ls 命令。
改变权限
可以使用 chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。
使用符号表示权限
对于初学者来说最简单的就是使用符号来改变文件或目录的权限,你可以增加(+)和删除(-)权限,也可以指定特定权限(=)。使用数字表示权限
除了符号,也可以使用八进制数字来指定具体权限,如下表表示
数字 说明 权限 0 没有任何权限 --- 1 执行权限 --x 2 写入权限 -w- 3 执行权限和写入权限:1 (执行) + 2 (写入) = 3 -wx 4 读取权限 r-- 5 读取和执行权限:4 (读取) + 1 (执行) = 5 r-x 6 读取和写入权限:4 (读取) + 2 (写入) = 6 rw- 7 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 rwx
更改所有者和用户组
在Linux中,每添加一个新用户,就会为它分配一个用户ID和群组ID,上面提到的文件权限也是基于用户和群组来分配的。
有两个命令可以改变文件的所有者或群组:
- chown:chown 命令是"change owner"的缩写,用来改变文件的所有者。
- chgrp:chgrp 命令是"change group"的缩写,用来改变文件所在的群组。
chown命令用来更改文件所有者,其语法如下:
chown user filelist
user可以是用户名或ID
注意:超级用户root可以不受限制的更改文件的所有者和用户组,但是普通用户只能更改的所有者只能是自己的文件或目录。
chgrp命令用来改变文件所属群组,其语法如下:
chgrp group filelist
group可以是群组名或群组ID
SUID和SGID位
在Linux中,一些程序需要特殊权限才能完成用户指定的操作。
例如,用户的密码保存在 /etc/shadow 文件中,出于安全考虑,一般用户没有读取和写入的权限。但是当我们使用 passwd 命令来更改密码时,需要对 /etc/shadow 文件有写入权限。这就意味着,passwd 程序必须要给我们一些特殊权限,才可以向 /etc/shadow 文件写入内容。
Linux 通过给程序设置SUID(Set User ID)和SGID(Set Group ID)位来赋予普通用户特殊权限。当我们运行一个带有SUID位的程序时,就会继承该程序所有者的权限;如果程序不带SUID位,则会根据程序使用者的权限来运行。
SGID也是一样。一般情况下程序会根据你的组权限来运行,但是给程序设置SGID后,就会根据程序所在组的组权限运行。
如果程序设置了SUID位,就会在表示文件所有者可执行权限的位置上出现's'字母;同样,如果设置了SGID,就会在表示文件群组可执行权限的位置上出现's'字母。如下所示:
上面第一列第四个字符不是'x'或'-',而是's',说明 /usr/bin/passwd 文件设置了SUID位,这时普通用户会以root用户的权限来执行passwd程序。
注意:小写字母's'说明文件所有者有执行权限(x),大写字母'S'说明程序所有者没有执行权限(x)。
如果在表示群组权限的位置上出现SGID位,那么也仅有三类用户可以删除该目录下的文件:目录所有者、文件所有者、超级用户 root。
为一个目录设置SUID和SGID位可以使用下面的命令:
教程:4、文件权限和访问方式相关推荐
- linux文件的权限模式,Linux文件权限和访问模式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...
- linux文件访问权限,Linux文件权限和访问模式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...
- Liunx——文件权限操作
第一个字符代表这个文件是『目录.文件或链接文件等等』: o 当为[ d ]则是目录,例如上表档名为『.config』的那一行: o 当为[ - ]则是文件,例如上表档名为『initial-s ...
- Centos7用户,组及文件权限管理
Centos7安装完系统后如果没有创建用户,默认只有root用户,权限最大可以做任何事,但实际生产环境中我们一般不会使用这个用户,因为权限太大所有命令都能执行,很危险,所以在生产环境中会创建一个或者多 ...
- 教程示例:控制存储空间和文件夹的访问权限
本教程示例详细演示了如何控制用户对 OSS 存储空间和文件夹的访问.在示例中,我们首先创建一个存储空间和文件夹,然后使用阿里云主账号创建访问管理 (RAM) 用户,并为这些用户授予对所创建 OSS 存 ...
- php 访问类成员,PHP类成员的访问方式和权限_PHP教程
PHP5的访问方式允许限制对类成员的访问. 这是在PHP5中新增的功能,但在许多面向对象语言中都早已存在. 有了访问方式,才能开发一个可靠的面向对象应用程序,并且构建可重用的面向对象类库. 像C++和 ...
- linux两种方式改变文件权限,Linux更改文件权限的两种方式
今天小编要跟大家分享一篇关于Linux更改文件权限的方式,喜欢Linux的小伙伴来看一看吧. 我们知道·Linux系统最主要的特点之一就是--Linux系统是多用户.多任务的操作系统. 何为多用户?就 ...
- 为什么我共享的文件别人看不到_【零基础学云计算】解析文件共享及访问方式...
各位小伙伴大家好! 我们接上一篇的文件权限操作,接下来和各位小伙伴解析文件共享的操作方法. 我们首先使用管理员身份进入server2016系统,然后对我们之前在E盘中创建的abc的文件夹进行设置,右键 ...
- Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表
一.文件属性 1.文件属性: 文件属性操作 chown : change owner ,设置文件所有者 chgrp : change group ,设置文件的属组 文件属主修改: chown 格式 ...
最新文章
- Java类和对象基础题_java类和对象基础题2
- 计算机视觉算法——图像分类网络总结
- FAGLFLEXA 表和 BSEG 表有什么区别
- 【Java】 大话数据结构(13) 查找算法(4) (散列表(哈希表))
- 玩转oracle 11g(25):手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
- C++中文版本primer 第二章变量和基本类型 学习笔记
- 转载:35岁前成功的12条黄金法则
- 网站直达上线运营,API接口开发中
- rsync linux 教程,rsync 用法教程
- 最流行的十大开源云监控工具
- P1095 [NOIP2007 普及组] 守望者的逃离
- Antd 修改 Table 悬浮颜色、表头背景色
- 什么是ASP .NET?
- 富途证券面试整理--前端
- RationalDMIS 7.1建立工件坐标系的过程:必须尊守321法则
- IT科技行业发展现状,未来发展方向有哪些?
- mysql豹_MySQL创建数据库与创建用户以及授权 小帅豹
- 170 FPS!YolactEdge:边缘设备上的实时实例分割,已开源!
- 基础语法篇_11——坐标空间和转换,图形的保存和重绘,元文件
- 微信小程序自定义分享标题和图片
热门文章
- R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献
- R语言ggplot2可视化:将dataframe和数据列名称传递给函数通过函数进行ggplot2可视化输出
- R语言names函数获取或者设置数据对象名称实战
- limma包分析差异表达基因
- php$SQL时间函数,PHP模拟SQL Server的两个日期处理函数-PHP教程,PHP应用
- R Learnilng 十八讲13-17
- MySql修改 表名
- <笔记2>numpy的生成随机数用法小记
- access mysql字段对应_ACCESS数据库中表与字段名称修改
- google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID