Linux下的文件与目录权限
一、用户(User)、群组(Group)和其他人(Others)
linux是多用户多任务的操作系统,同一时刻可能会有多个用户登录系统,考虑到文件的安全性等问题,所以Linux下的文件都属于一个特定的用户(user),比如我们使用用户名user1登录系统,user1在自己的工作目录下创建了一个文件diary.txt来记录自己的日记,则日记diary.txt的用户为user1,系统中可能有其他用户存在,而user1并不想其他人读自己的日记,这时user1就可以通过设置日记的权限来控制主机上的所有用户对自己日记的访问(设置为自己对日记可读可写,其他用户没有权限)。有了用户为什么还要有组(group)的概念呢?有时对于一个文件,我们想对同组的用户设置一种权限,而对组外的用户设置另一种权限,设想这样一种情况,有一天user1突然想让主机上的另一个用户user2来读自己的日记,但之前设置的权限是只有自己可读可写,其他人没有访问权限,而user1只想增加user2的访问权限,这时通过组就可以轻松解决,方法是将user1和user2添加到同一组group1里,然后给group1添加读权限,这样处在组group1下的用户user2也可以读user1的日记了,不在组里的其他用户(Others)依然不能访问user1的日记。
在linux下,用户被记录在 /etc/passwd 文件中,用户密码被记录在 /etc/shadow 文件中,组名则被记录在 /etc/group 文件中。
二、linux下的文件权限
1、查看文件权限
可以使用命令 ls -al 来查看当前目录下的文件权限, -a表示显示目录下的所有文件,包括以.开始的隐藏文件, -l表示以长列表形式显示。比如我进入下载目录后 ls -al ,如下所示

其中第一列表示了这个文件的类型和权限,拿 -rwxrwxrwx 来说,我们可以将它分成4个部分,如下图:

其中类型指出了文件的类型:
- 当为[ d ]则是目录;
- 当为[ - ]则是普通文件;
- 若是[ l ]则表示为链接(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
[-]后面的字符每3个一组分析其含义,其中r代表可读(read),w代表可写(write),x代表可执行(execute),所以上面的含义就是文件data_format.zip对文件拥有者可读可写可执行(rwx),对文件所属群组中的用户可读可写可执行(rwx),对其他用户可读可写可执行(rwx),也就是对所有用户都可读可写可执行。
第二列表示这个文件的链接(可以理解为windows下的快捷方式)有多少;
第三列表示这个文件的用户;
第四列表示这个文件所在的组;
第五列表示这个文件的大小,默认单位为byte;
第六列表示这个文件的创建日期后者最近的修改日期;
第七列为文件名(或目录名)。
2、修改文件权限
修改文件权限的命令常用的有3个:chgrp修改文件的组,chown修改文件拥有者,chmod修改文件的权限。
2.1、改变文件群组chgrp
可以使用 chgrp [OPTION]... GROUP FILE 来修改文件file的组为group,在上面的例子中文件data_format.zip所处的组为hadoop,下面的命令中,我将data_format.zip的组修改为root
hadoop@sench-pc:~/下载$ sudo chgrp root data_format.zip
hadoop@sench-pc:~/下载$ ls -al data_format.zip
-rwxrwxrwx hadoop root 11月 : data_format.zip
可以看到,data_format.zip的组已经被改为了root。如果要将目录下的文件的组全部修改,则加上选项-r即可。
2.2、改变文件拥有者chown
方法:
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
在下面的命令中,我将data_format.zip的用户修改为root
hadoop@sench-pc:~/下载$ sudo chown root data_format.zip
hadoop@sench-pc:~/下载$ ls -al data_format.zip
-rwxrwxrwx root root 11月 : data_format.zip
2.3、改变文件权限chmod
2.3.1 通过数字方式改变权限
前面提到了文件权限每3为一组来进行分析,比如rwx表示可读可写可执行,我们也可用3为二进制数表示,方法是当有这一权限时,我们将该位置1,否则置0,则
只有读权限r-- = 100 = 4
只有写权限-w- = 010 = 2
只有执行权限--x = 001 = 1
只有读写权限rw- = 110 = 4+2 = 6
此次类推,则有可读可写可执行权限rwx = 111 = 7 ,所以上文中data_formate.zip的权限 - rwx rwx rwx 用二进制表示为 ,也就是 ,假如我们想改变此文件的权限为 - rwx rwx r ,即该用户的拥有者即同组的用户可读可写可执行,其他用户只能读,则可以使用命令 chmod data_format.zip 来实现。
hadoop@sench-pc:~/下载$ sudo chmod data_format.zip
hadoop@sench-pc:~/下载$ ls -l data_format.zip
-rwxrwxr-- root root 11月 : data_format.zip
可以看到data_format.zip的权限已经改变。
2.3.2 通过符号改变文件权限

其中第2列u代表用户user,g代表group,o代表其他用户others,a代表所有用户all。
如果我们想对其他用户增加对data_format.zip文件的写权限(rw_),则使用命令 chmod o=rw data_format.zip 即可,在命令中,我们将其他用户(o)的权限设为rw
hadoop@sench-pc:~/下载$ sudo chmod o=rw data_format.zip
hadoop@sench-pc:~/下载$ ls -l data_format.zip
-rwxrwxrw- root root 11月 : data_format.zip
如果我们想去掉同组用户的执行权限(- rwx rw_ rw_),则使用命令 chmod g-x data_format.zip 即可,g-x表示对同组用户除去执行(x)权限。
hadoop@sench-pc:~/下载$ ls -l data_format.zip
-rwxrwxrw- root root 11月 : data_format.zip
hadoop@sench-pc:~/下载$ sudo chmod g-x data_format.zip
hadoop@sench-pc:~/下载$ ls -l data_format.zip
-rwxrw-rw- root root 11月 : data_format.zip
三、linux下的目录权限
在上面我们通过ls -al显示文件时,有一个目录
drwxr-xr-x root root 4月 : datatimepicker
d表示该文件为目录,rwx对目录的含义如下:
r表示该目录“可读”,也就是我们可以通过命令ls列出该目录下的所有文件;
w表示该目录“可写”,具体体现为:
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限为何!)
- 将已存在的文件或目录进行更名;
- 搬移该目录内的文件、目录位置。
x不是表示该目录可执行,x对于目录的含义是能否进入该目录,如果一个用户对一个目录有x权限,则该用户可以通过命令cd进入该目录,否则不能进入。需要注意目录权限中的r和x的区别。
四、参考
1、http://cn.linux.vbird.org/linux_basic/0210filepermission_1.php
2、http://cn.linux.vbird.org/linux_basic/0210filepermission_2.php
Linux下的文件与目录权限的更多相关文章
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- linux下查看文件及目录个数
linux下查看文件及目录个数1.查看当前文件和目录总数(不包括子目录):ls -l | wc -l 2.查看当前目录下文件个数(不包括子目录):ls -l |grep "^-"| ...
- Linux CentOS7 VMware 文件和目录权限chmod、更改所有者和所属组chown、umask、隐藏权限lsattr/chattr
一.文件和目录权限chmod u User,即文件或目录的拥有者:g Group,即文件或目录的所属群组:o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围:a All,即全部 ...
- linux系统下修改文件夹目录权限-chmod
Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名 ...
- linux下创建文件与目录时默认被赋予了什么样的权限?
当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...
- linux下判断文件和目录是否存在[总结]
1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文 ...
- linux下判断文件和目录是否存在
1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文 ...
- linux下查找文件或目录(which,whereis,locate,find)
命令 查找对象 查找速度 备注 which 可执行文件 根据PATH变量的内容去寻找可执行文件 不同的PATH配置会有不一样的结果 whereis 程序名的搜索 根据数据库来寻找,速度快 ...
- Linux下的文件与目录操作 BY 四喜三顺
文件操作权限: chmod 三个八进制数字 文件名 其中:三个八进制数字,第一个代表本用户的权限,第二个代表同组的权限,第三个代表其他用户的权限4代表可读2代表可写1代表可执行例如:chmod 7 ...
随机推荐
- 离线下载pip包安装
Host-A 不能上网,但是需要在上面安装python-package 通过另外一台能上网的Host-B主机 1. 下载需要离线安装的Packages 在Host-B上执行如下命令: 安装单个Pack ...
- window对象中的一些重要的属性和方法(笔记)
setTimeout()方法用来实现一个函数在指定的毫秒数之后运行:setTimeout()返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行.由于历史原因,setTime ...
- 活学活用,CSS清除浮动的4种方法
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...
- 让页面无刷新的AJAX、ASP.NET核心知识(9)
AJAX简介 1.如果没有AJAX 普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,如果没有ajax,在youku看视频的过程中,就没法提交评论,页面会刷新,视频会被打断. 2.说说AJ ...
- 微服务深入浅出(7)-- 网关路由Zuul
Zuul用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全等方向. 1.Zuul+Ribbon+Eureka结合,可以实现智能路由和负载均衡 2.网关将所有服务的API接口统一聚合统一暴露 ...
- Oracle03--子查询
1. 子查询 子查询也称之为嵌套子句查询. 1.1. 语法 语法上的运行使用规则: l 子查询 (内查询.嵌套子句) 在主查询之前一次执行完成.(子查询先执行) l 子查询的结果被主查询使用 (外查询 ...
- std::max 错误
Today I typed the following: int t = (std::max)(timeout, lagtime); Why did I put parentheses around ...
- 【NOI题解】【bzoj题解】NOI2008 bzoj1063 道路设计
@ACMLCZH学长出的毒瘤题T3.再也不是“善良”的出题人了. 题意:bzoj. 题解: 经典的树形DP题目,屡见不鲜了,然而我还是没有写出来. 这一类的题目有很多,例如这里的C题. 主要套路是把对 ...
- openjudge-NOI 2.5-1756 八皇后
题目链接:http://noi.openjudge.cn/ch0205/1756/ 题解: 上一道题稍作改动…… #include<cstdio> #include<algorith ...
- URL的井号
2010年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/username 改版后,就变 ...