linux文件访问权限,Linux文件权限和访问模式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限:
所有者权限:文件所有者能够进行的操作
组权限:文件所属用户组能够进行的操作
外部权限(其他权限):其他用户可以进行的操作。
查看文件权限
使用 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-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。
第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。
第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。
文件访问模式
文件权限是Linux系统的第一道安全防线,基本的权限有读取(r)、写入(w)和执行(x):
读取:用户能够读取文件信息,查看文件内容。
写入:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容。
执行:用户可以将文件作为程序来运行。
目录访问模式
目录的访问模式和文件类似,但是稍有不同:
读取:用户可以查看目录中的文件
写入:用户可以在当前目录中删除文件或创建文件
执行:执行权限赋予用户遍历目录的权利,例如执行 cd 和 ls 命令。
改变权限
可以使用 chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。
使用符号表示权限
对于初学者来说最简单的就是使用符号来改变文件或目录的权限,你可以增加(+)和删除(-)权限,也可以指定特定权限。
符号
说明
+
为文件或目录增加权限
-
删除文件或目录的权限
=
设置指定的权限
下面的例子将会修改 testfile 文件的权限:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
也可以同时使用多个符号:
$chmod o+wx,u-x,g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
使用数字表示权限
除了符号,也可以使用八进制数字来指定具体权限,如下表所示:
数字
说明
权限
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
下面的例子,首先使用 ls -1 命令查看 testfile 文件的权限,然后使用 chmod 命令更改权限:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile
更改所有者和用户组
在Linux中,每添加一个新用户,就会为它分配一个用户ID和群组ID,上面提到的文件权限也是基于用户和群组来分配的。
有两个命令可以改变文件的所有者或群组:
chown:chown 命令是"change owner"的缩写,用来改变文件的所有者。
chgrp:chgrp 命令是"change group"的缩写,用来改变文件所在的群组。
chown 命令用来更改文件所有者,其语法如下:
$ chown user filelist
user 可以是用户名或用户ID,例如
$ chown amrood testfile
$
将 testfile 文件的所有者改为 amrood。
注意:超级用户 root 可以不受限制的更改文件的所有者和用户组,但是普通用户只能更改所有者是自己的文件或目录。
chgrp 命令用来改变文件所属群组,其语法为:
$ chgrp group filelist
group可以是群组名或群组ID,例如
$ chgrp special testfile
$
将文件 testfile 的群组改为 special。
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'字母。如下所示:
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
$
上面第一列第四个字符不是'x'或'-',而是's',说明 /usr/bin/passwd 文件设置了SUID位,这时普通用户会以root用户的权限来执行passwd程序。
注意:小写字母's'说明文件所有者有执行权限(x),大写字母'S'说明程序所有者没有执行权限(x)。
如果在表示群组权限的位置上出现SGID位,那么也仅有三类用户可以删除该目录下的文件:目录所有者、文件所有者、超级用户 root。
为一个目录设置SUID和SGID位可以使用下面的命令:
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname
$
linux文件访问权限,Linux文件权限和访问模式相关推荐
- Linux 权限管理: 权限的概念、权限管理、文件访问权限的设置、 粘滞位
Linux下的基本指令 目录: 权限的概念 权限管理 文件访问权限的设置方法 目录的权限 粘滞位 权限的概念 Linux下用户有两种: 超级用户(root).普通用户. 超级用户:具有最高权限,可以在 ...
- linux数字设定法设定权限,Linux chmod命令详解和使用实例(改变文件或目录的访问权限)...
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...
- linux限制组访问权限,linux用户和组管理以及文件权限访问控制ACL策略
01.通配符 文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件. 通配符采用特定的符号,表示特定的含义,此符号称为元 meta 字符. 常见的通配符如下: * 匹配零个或多个字符,但不匹配 ...
- linux修改文件夹的访问权限,linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组...
linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组 我们在创建一个文件夹或者一个文件的时候,希望集成父文件夹的访问权限和组 修改默认访问权限 setfacl 以及 ...
- linux递归访问文件权限,Linux基础管理——文件权限管理(访问控制)
1.文件权限 1.1.三类权限简述 读.写.执行:rwx. 1.2.文件属性操作chown :设置文件的所有者(属主信息): chgrp :设置文件的属组信息: 1.3.修改文件的属主和属组 1.3. ...
- linux 禁止app权限,SELinux文件访问安全策略和app权限配置
SELinux文件访问安全策略和app权限配置 Android开发 基于android6.0版本的SELinux文件访问安全策略 在android6.0以后的版本,google采用了SELinux的文 ...
- linux允许佚名用户访问权限,Linux上的ACL权限文件访问
在 Unix/Linux 系统上沿用了多年的权限机制,由于欠缺灵活性,在现今的信息系统上显得落后和不敷应用.然而一个新的权限机制标准已经诞生出来,本 文将会为大家介绍这个新机制在 Linux 上的操作 ...
- linux查看目录访问权限,Linux文件访问权限
一.设置用户ID和设置组ID 1.实际用户ID和实际组ID标识当前登录的用户. 2.有效用户ID,有效组ID以及附加组ID决定了我们的文件访问权限. 3.通常,有效用户ID等于实际用户ID,有效组ID ...
- linux下判断文件是否存在,文件夹是否存在,是否有访问权限的方法
通常我们判断文件是否存在,就看文件是否能够访问到,如果能访问到,文件存在,访问不到,则文件不存在. 代码判断文件是否存在C++ 方法一: 使用access函数判断文件是否存在,以及文件的权限. acc ...
最新文章
- 点击文字弹出一个DIV层窗口代码
- Linux新手要了解的十个知识点
- abb限位开关已打开drv1_施工升降机上有10个限位器,你都知道了吗?
- 抑郁症自测量表测试软件,快来测测抑郁--抑郁自评量表 (此表是是收费工具,我献给大家)...
- 软件架构引言之项目管理的问题
- 如何将java程序打包成exe文件?
- Google的十个核心技术
- Java实验2 Java语言基础
- windows server下安装SSHD服务
- FTP 简介与 Windows 系统搭建 FTP 服务器
- 【ide】myeclipse项目右键没有configure
- Mac如何取消远程控制?
- iPerf3 局域网性能测试路由器
- Linux之上传文件到服务器上
- NMDS非度量多维尺度分析
- 2018 Google IO大会来了
- 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
- xampp运行不成功或者安装过程中提示找不到文件“-n”,没有安装vcredist_x86的解决方法
- 用ros输出hello,world(c++版)
- 笔记本电脑wifi怎么连接
热门文章
- 如何处理My lead fiori应用的buffer问题
- 在后台查看product的change history
- sendData to ABAP backend via multiple form content type
- SAP UI5对mobile touch事件的支持
- SAP UI5是如何从浏览器读取语言设置并按照优先级排序的
- SAP Fiori应用中事务锁的实现 - Transaction Lock实现机制
- SAP CRM产品主数据的附件信息在搜索时就已经从后台被读取了
- SAP Cloud for Customer和SAP CRM的行业解决方案列表
- docker添加jar包_docker配置容器运行jar包
- python list遍历 间隔_Python 列表(List) 的三种遍历(序号和值)方法