Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 教程 > Linux教程 > 正文

Linux基础知识十八 改变文件的权限

时间:2014-05-31 00:12 来源:未知 作者:www.51ou.com 阅读:

一、权限的分类

Linux中,文件的权限主要有三类:

r:读权限(read)

   w:写权限(write),创建新文件也属于w权限

x:执行权限(excute),如果文件具有x权限,则表示文件可以发起进程;若目录具有x权限,表示目录可以使用ls-l查看,可以使用cd切换至该目录中。

 

针对具体的文件,权限一共有9位,前三位属主,用u表示(user);中间三位属组,用g表示(group),最后三位属于其他,用o表示(other)。因此所有的权限如下表:

 

字母表示

二进制表示

八进制表示

描述

---

000

0

无权限

--x

001

1

执行权限

-w-

010

2

写权限

-wx

011

3

写和执行权限

r--

100

4

只读权限

r-x

101

5

读和执行权限

rw-

110

6

读写权限

rwx

111

7

读、写和执行权限

 

三位2进制数可以表示一个八进制数,因此在实际操作中,我们可以用阿拉伯数字数字来表示三类用户对文件的权限。例如:

777: rwxrwxrwx   // 属主u:读、写和执行;属组g:读、写和执行;其他o:读、写和执行

755: rwxr-xr-x  // 属主u:读、写和执行;属组g:读和执行;其他o:读和执行

750: rwxr-x---// 属主u:读、写和执行;属组g:读和执行;其他o:无权限

700: rwx------// 属主u:读、写和执行;属组g:无权限;其他o:无权限

644: rw-r--r--// 属主u:读写;属组g:读;其他o:读

640: rw-r-----   // 属主u:读写;属组g:读;其他o:无权限

600: rw-------// 属主u:读、写;属组g:无权限;其他o:无权限

440: r--r-----// 属主u:只读;属组g:只读;其他o:无权限

400: r--------// 属主u:只读;属组g:无权限;其他o:无权限

 

二、改变文件权限(mode):

在Linux中,改变文件权限的常用命令如下所示:

 

# chmod [option] MODE FILE_NAME

 

权限定义的方式主要有如下两种:

1.同时修改三类用户的权限:采用8进制数字方式

 

2.修改某一类或某些类用户的权限:u,g,o, a

采用的形式可以是:

u=rw

u=rwx,g=r--

ug=r---wx

ugo=-w-r----x

a=rwx

 

如改变文件message的其他权限为只读:

# chmod o=r message

 

改变文件message的属组权限为读写:

# chmod g=rw message

 

改变文件message三类用户的权限为只读权限:

# chmod ugo=r message

 

改变文件message 属主属组为读写权限:

# chmod ug=rw message

 

同时改变三类用户的权限,可以用 a(All)来表示 ugo,如改变文件message 三类用户为读写权限:

# chmod a=rw message

 

可以用逗号分隔,来同时改变多类用户的不同权限,如改变文件message的属组为只读权限,其他用户没有任何权限:

# chmod g=r,o=--- message

 

wKioL1NfwA7jL9vCAAHvCJcol0g542.jpg

 

3.只操作某类用户的某位权限或某些权限

可以使用u,g,o,a 和 +/-等符号来进行此项操作:

如给message的属组加上写权限:

# chmod g+w message

 

如给message的所有用户都加上/去掉执行权限,注意 a 可以省略:

# chmod +x message

# chmod -x message

 

如去掉message属主用户的读写权限:

# chmod u-rw message

 

wKioL1NfwDmzs4qtAAMtwkpOjJw528.jpg

 

注意以上的权限修改改的是文件本身的权限,如果文件是目录,那么修改的就是目录的权限,而非目录里的文件权限。

如进行以下操作:

# ls /var/log

# cp /etc/inittab /var/log/cups

# cp /var/log/cups ./ -r

# ls -l

# ls -l cups

就会发现目录 cups 和cups里的文件各类用户的权限是不一样的

wKiom1NfwImQ16niAAGuzQt4hTA572.jpg

下面我们可以分别对目录cups 和其中的文件进行权限修改:

# chmod o=--- cups/

# ls -l

此时可以看到cups目录的权限已经被修改了,但是输入以下命令:

    # ls -l cups

则会发现其中的文件权限没有受到影响

wKiom1Nfwnix3sEGAAEo2lIgog0138.jpg

 

如果想要修改目录权限的同时也修改目录中文件的权限,则可以使用-R 选项进行递归修改:

如同时去掉目录cups 和其中的文件inittab的全部属组权限,可以进行如下操作:

# chmod -R g=--- cups/

#ls -l

#ls -l cups

wKioL1NfwKXRHj6tAADNbcyG698677.jpg

 

改变文件权限时可以使用 --reference 选项。此选项的使用格式为:

# chmod --reference=[PATH]/FILE_NAME1 FILE_NAME2

它的作用是将 FILE_NAME2 的权限改为 FILE_NAME1 的权限,例如:

# ls -ld /etc   // -ld 选项是用来查看目录本身的权限的,这里查看的是目录 /etc的权限

# ls -l       // 查看当前目录下cups的目录权限,可以发现cups和/etc的权限不一致

# chmod --reference=/etc cups   //将 cups的权限改为etc的权限

# ls -l      // 此时可以看到 cups 和 /etc 的权限一致了

wKioL1NfwoOgF6NxAAFVAHpL_a0156.jpg

-R 和 --reference 两个选项可以一起使用,但这种情况并不常见,因为多数时候文件的权限并不相同。

 

本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1404818

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux基础知识十八 改变文件的权限》技术文章,《Linux基础知识十八 改变文件的权限》详细使用和说明,有时《Linux基础知识十八 改变文件的权限》可能不完善、敬请谅解!如果《Linux基础知识十八 改变文件的权限》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片