Linux的文件权限(简单易懂)
学习这个章节,必须明白以下三个概念:
1.所有者
2.所属组
3.其他人
明白这三个概念后,接下来就学习文件的属性,那么文件的属性有什么呢?如何查看文件的属性?
在命令行下,执行 ls -l
可以得到以下的信息(仅已一条信息来分析)
-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
...
解释:
第一列代表文件的类型和权限
第一个字符是"-":表示文件为普通文件。
Linux下的文件类型有如下几种:
-:普通文件,包括文件文件和二进制文件
d:目录文件
c:字符设备文件
b:块设备文件
s:套接字文件(socket)
l:链接文件
p:管道文件(FIFO,pipe)
或许还有其他文件类型,以后学习到再补充
接下来的9个字符,3个为一组,分别表示所有者,所属组和其他人的权限
权限有三种 r(read)读,w(write)写,x(execute)执行
第二列表示有多少文件名链接到此节点(i-node),即文件的硬链接数,以后详细介绍
第三列表示这个文件的所有者
第四列表示这个文件的所属组
第五列表示这个文件的容量大小,单位是B
第六列表示这个文件的创建日期或者最近修改如期
第七列表示文件名
------------------------------------------------------------------------------------------
改变文件属性和权限
需要用到的命令有
chgrp:修改文件的所属组
chown:修改文件的所有者
chmod:修改文件的权限
改变用户所属组chgrp命令的介绍
用以下的文件为例子
-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
由上述知道install.log文件所有者是root,所属组是root,权限为rw-r--r--
若想要修改这个文件所属组,可以这么做
假设在/etc/group下已经定义了一个组super
#chgrp super install.log 修改所属组
#ls -l
-rw-r--r--. 1 root super 41312 Dec 10 02:48 install.log 文件的所属组被改变为super
---------------------------------------------------------------------------------
改变文件的所有者chown命令
假设在/etc/passwd已经存在用户hello
当要修改上述的install.log这个文件所有者,可以这么做
#chown hello install.log 修改文件的所有者为hello
#ls -l
-rw-r--r--. 1 hello super 41312 Dec 10 02:48 install.log 文件的所有者被修改为hello
chown命令还能修改文件的所属组
比如要把文件的所有者和所属组修改为原来的root,可以这么做
#chown root:root install.log
#ls -l
-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
文件的所有者和所属组都修改了
chown命令也可以只修改所属组
#chown :super install.log
#ls -l
-rw-r--r--. 1 root super 41312 Dec 10 02:48 install.log
大多情况下用冒号“:”分隔所有者和所属组,也可以用小数点“.”分隔。
什么情况下需要修改文件的所有者或所属组?
比如,我们用cp命令复制一个文件到另一个用户的家目录,但是文件的属性并没有
修改,也就是说,另一个用户就算得到了文件,也无法操作文件。这时候就需要修改文件的属性
------------------------------------------------------------------------------------
修改文件的权限chmod命令
还是用上述的文件为例子
-rw-r--r--. 1 root root 41312 Dec 10 02:48 install.log
分析:
文件所有者对文件具有rw的权限,即读和写,不能够执行
文件所属组的用户对文件具有r的权限,即只有读的权限
其他人对文件具有r的权限,即只有读的权限
修改文件的权限有两种方法:
1.数字类型修改文件权限
r(4)
w(2)
x(1)
可以有这么多种表示方法
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7
命令使用示例
若想把文件的权限修改为
rwx r-x r-x
7 5 5
#chmod 755 install.log
#ls -l
可以得到如下的结果
-rwxr-xr-x. 1 root root 41312 Dec 10 02:48 install.log
这种方式不是很直观,需要转换,个人比较喜欢用字符类型修改文件权限
字符类型修改文件权限
命令使用如下
----------------------------------------------------------
u + (加入) r
chmod g -(除去) w 文件或目录
o =(设置) x
a
----------------------------------------------------------
u(user):表示所有者
g(group):表示所属组
o(others):表示其他人
a(all):表示上述三者
使用示例
-rwxr-xr-x. 1 root root 41312 Dec 10 02:48 install.log
若要修改上述的文件权限为rw-r-xr-x,即所有者除去执行(x)权限,可以这么做
#chmod u-x install.log
若要修改上述的文件权限为rw-rwxr-x,即所属组加上写(w)权限,可以这么做
#chmod g+w install.log
若要修改上述的文件权限为rw-rwxrw-,即其他人有读写(rw)权限,可以这么做
#chmod o=rw install.log
若要修改上述的文件权限为rwxrwxrwx,可以这么做
#chmod a+x install.log
当然,也可以这么使用
#chmod u-x,g-x,o-r install.log
不知道我是否说清楚了。。
---------------------------------------------------------------------------------
目录与文件的权限意义
权限对文件的重要性
r(read):可读取此文件的实际内容,比如可以用cat等命令查看文件内容
w(write):可以编辑、新增或者是修改文件的内容,但是不能删除该文件
x(execute):该文件具有可以被系统执行的权限。
顺便说说扩展名。在LInux中是没有扩展名的概念的,与windows不同。所以文件是否
可以执行,是靠权限x来决定的,但是要清楚一点,可以执行,不代表可以成功执行,
这要取决于文件的内容。
总结:对于文件来说,rwx主要都是文件内容的的权限,而跟文件名是灭有绝对的关系
权限对目录的重要性
r(read contents in directory)
表示具有读取目录结构列表的权限,也就是说可以用ls查看目录里有哪些文件
w(modify contents of directory)
表示具有更改该目录结构列表的权限,也就是说可以
1.创建文件或者目录
2.删除已经存在的文件或目录(不论该文件的权限为何)
3.对文件或目录进行重命名
4.转移该目录内的文件、目录位置
总之,目录的w权限就与该目录下面的文件名变动有关
x(access directory)
表示用户能否进入该目录成为工作目录
额外补充,查看当前目录下文件(tree)
root@wuheng-virtual-machine:/home/wuheng/public# tree -p
.
├── [-rw-r--r--] a.txt
├── [-rw-rw-r--] b.html
└── [drwxrwxr-x] demo
├── [-rw-r--r--] aa.txt
└── [-rw-r--r--] b.html
1 directory, 4 file
Linux的文件权限(简单易懂)的更多相关文章
- 第六章、Linux 的文件权限与目录配置
第六章.Linux 的文件权限与目录配置 1. 使用者与群组 2. Linux文件权限概念 2.1 Linux文件属性 2.2 如何改变文件属性与权限: chgrp, chown, chmod 2.3 ...
- linux初学者-文件权限
linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ...
- 全面解析Linux数字文件权限
全面解析Linux数字文件权限 来源: 时间:2013-09-04 20:35:13 阅读数:11433 分享到:0 [导读] 在刚开始接触Linux时对于文件权限的理解并不是很透彻,这里详细 ...
- [转]Linux中文件权限目录权限的意义及权限对文件目录的意义
转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...
- Linux的文件权限
1 文件权限的表示 (1)字母表示法 Linux中所有文件(普通文件.目录文件.字符特殊文件.块特殊文件.管道或FIFO.符号链接.套接字)都有9个权限,如下图所示: -rw-rw-r--就是文件a的 ...
- 第六章Linux的文件权限与目录配置
一.Linux用户分类 1.Linux用户分为:(文件|目录)所有者(OWN),(同组内的)用户组,其他人; 2.一个天神:root;,几乎能完成任何事.... 二.目录权限的意义 目录的权限和文件的 ...
- 初窥Linux 之 文件权限
一.用户与用户组 为了更好地理解文件权限,我们需要先有用户和用户组的概念.因为在Linux里面,任何一个文件都具有“User(用户).Group(用户组)及Others(其他用户)”3种身份的个别权限 ...
- Linux下文件权限(一)用户ID和用户组ID
最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...
- 【转】第六章、Linux 的文件权限与目录配置
原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...
随机推荐
- git commit 出现 changes not staged for commit 错误
git commit 出现 changes not staged for commit 错误 修复: 参考:http://stackoverflow.com/questions/8488887/git ...
- vue -model
1. v-model:监听表单(input,textarea,selector)value. 2. label不知道你有没有这样的体验,我明明没有点用户名输入框,而仅仅是点了“用户名”三个字,然后就直 ...
- ubuntu14.04使用root用户登录桌面,ubuntu14.04root 转
ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...
- js Array.prototype.join.call(arguments,",") 理解
prototype 属性使您有能力向对象添加属性和方法. join() 方法:把数组的所有元素放入一个字符串.元素通过指定的分隔符进行分隔. call() 方法可以用来代替另一个对象调用一个方法. A ...
- 设置mvc路由映射
routes.MapRoute( "chapter", "{action}/{bookId}/{pageindex}", new { controller = ...
- Mongodb - TTL(time to live)特性
TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储,比如机器产生的 ...
- Navicat for MySQL再谈之无奈之下还是去安装Navicat Premium
不多说,直接上干货! 首先,Navicat for MySQL没有查看数据库属性. 其次,没有这个功能多和强大,在走过一段弯路之后,果断放弃Navicat for MySQL,而使用Navicat P ...
- iPhone6 和 iPhone 6 plus的适配
苹果每出一款产品,都会引起广大IOS程序猿们的深深关注!是不是又该做适配了?是不是又该学习新东西了?种种的操心挂在心头. 以下我谈谈我对iPhone6 和 iPhone 6 plus适配问题的理解: ...
- NGUI ScrollView中MoveRelative,Scroll的区别
Scroll会计算边界,和直接拖拽的效果类似 MoveRelative不计算边界,超出边界了也不会管,也不会应用缓动效果
- DDR3内存详解,存储器结构+时序+初始化过程
DDR3内存详解,存储器结构+时序+初始化过程 标签: DDR3存储器博客 2017-06-17 16:10 1943人阅读 评论(1) 收藏 举报 分类: 硬件开发基础(2) 转自:http:/ ...