Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36688
  • 博文数量: 12
  • 博客积分: 155
  • 博客等级: 入伍新兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 22:01
文章分类
文章存档

2012年(12)

我的朋友

分类: LINUX

2012-11-29 19:15:55

为了防止忘记,笔者会在觉得自己要忘记所学内容的时候把东西写成笔记来加强记忆方便复习还有请广大网友指出错误。今天的内容是档案的属性和权限~

◇首先,如何查看档案的属性和权限呢?这就要用到ls命令了。只要在ls后加上-l就可以了~下面附上截图一张:
这些都是什么东东呢?
●-rwxrwxr-x 这一串就是档案权限了。下面具体解释下含义:
首先,把一串东东进行分组,变成这样: 
1、(-)
2、(rwx)
3、(rwx)
4、(r-x)
1、档案类型。括号里的东东可以是:
d:目录
-:常规文件
l:连结文件(link-file),可以理解为windows下的快捷方式
b:装置文件中可供储存的接口设备(可随机存取装置)
c:装置文件里的串行端口设备,如键盘鼠标等(一次性读取装置)
        其他类型和每种类型的详细介绍见下一篇:档案种类与扩展名篇
2、拥有者(owner)权限
3、群组(group)权限
4、其他人(ohters)权限
2、3、4中括号里的r表示可读,w表示可写,x表示可执行,-标示无该权限。rwx顺序不改变,如无该权限则用-代替,如普通文件A对onwer有可读可写可执行的权限,对group有可读 可执行的权限,对其他人有可读权限,则应该是: -rwxr-xr--
●数字 权限后面的数字表示连结到这个节点的档案数。linux目录是树嘛,所以肯定需要节点向下分散了。
●数字后面的两个东东就是所属用户和群组了
●再往后分别是档案大小、最后修改日期和档案名。
修改日期如果太过久远就只显示年,如果想显示详细日期输入ls -l --full-time即可

◇接下来,是如何修改权限、更改所属用户和群组了。首先,这个操作需要在root下进行,所以记得切换成root哦(或者su)
●更改档案所属群组
更改群组需要使用chgrp命令(也就是change group的缩写^_^)
命令用法:chgrp [option] group dirname/filename
其中option有好多,需要的童鞋可以自己查阅man,常用的有-R(recursive),递归执行,也就是改变该目录下(如果是目录的话)所有档案的所属群组
命令中group必须是已经存在的记录在/etc/group中的,否则……呵呵,你懂得
●更改档案所属拥有者
更改拥有者五要使用chown(change owner)命令
命令用法:chown [option] user[:group] dirname/filename
同样option有好多,想了解的童鞋可以查阅man,常用的还是-R,意义和上面一样,我就不多说了。
奇怪的是user后面那个[:group]是啥意思呢?原来chwon命令还可以更改档案所属群组,所以后面才会有这个~注意,user和:group之间不能有空格,否则会报错哦
还有,:group中的‘:’可以换成‘.’,不过因为有好些人喜欢在用户名中加‘.’会引起系统无法正常识别,所以后来就改成‘:’了。
同样的,user必须是已经存在的记录在/etc/passwd中的
●更改档案权限
更改权限要出用chmod命令
命令用法:chmod [option] mode dirname/filename
如果有童鞋想知道更多选项请查阅man~这里我还是只说一个,那就是-R……意义同上。
chmod 命令中的mode项有两种写法数字式和字符式。

1、数字式
首先,不同的权限都有对应的数字,对应如下:
r:4
w:2
x:1
而对每一类用户(user、group、other)更改权限时只需要把想给他们的权限数字相加即可。如将A文件的权限改成-r-xr-----
那么就输入 chmod 540 A即可
2、字符式
字符式中u表示user,g表示group,o表示other,a表示all
字符式的符号有=、+、-
符号后可以后r、w、x和空格四种
=把权限改称=后面的内容,如把A文件权限改称-r-xr-----
那么就输入 chmod u=rx,g=r,o= A
注意“u=rx,g=r,o=”中没有空格,而最后一个等号后有一个空格
如果打成chmod u=rx,g=r A后会发生神马呢?那就是o保持原权限不变
-是减去符号后的权限,如A文件原先权限为-r-xr-xr-x,想把他变成-r--r--r--
只需要打 chmod a-x A 即可。
如果g本身就没有x权限会怎么样呢?那就是维持没用x的状态不变啦
+是加上符号后的权限,用法和-相反哦
+-两个符号常用在不知道原权限的情况下(比如你帮朋友解决个问题)
最后附上一个提示,这些符号是可以在一个小句子里多次使用的哦,而且他们遵循从左到右进行操作的原则,比如:
chmod u=rwx,go=rwx-w A
最后结果是-rwxr-xr-x
而 chmod a-w=rwx A
结果就是-rwxrwxrwx

◇最后,也是本文最重要的部分,就是档案权限的意义
档案的权限有神马用呢?要知道,linux是个多用户的操作系统。合理的设置权限可以保证你的数据不被其他用户随意读取更改等。而且这样可以保护系统关键档案不被其他用户乱改乱删。
那么,rwx到底是啥意思呢?对文件和目录是不同的。

文件,r(read)表示这个文件是可以读取的,w(write)表示这个文件是可以写入的,也就是说你可以更改它的内容,x(execute)表示这个文件是可执行的。linux下系统判断一个文档是否可执行靠的就是这个x权限!这点和windows下依靠文件名来判断是十分不同的。这就意味着,如果你建立了一个档案叫做abc.out,但它的权限是不可执行的,那么它仍然不可以被系统执行。可如果一个档案名字叫abc,但权限是可执行的,那么它就,可以被系统执行。这也是为什么用gcc编译时-o后的文件名可以随便起而不是必须加上特定后缀的原因了。当然,一般我们会加上一些后缀来表示文件的类型,如*.sh表示批处理文件,*.html表示网页等等。

对于目录,r(read contents in directory)表示这个目录的内容是可以显示的,也就是说你可以通过ls命令显示目录档案的内容也就是其下的文件名(强调下,目录也是一种档案哦)。w(modify contents of directory)表示这个目录是可修改的,也就是说可以在此目录中进行创建/删除目录,创建/删除档案,重命名等工作。最后是x。目录的执行?显然目录是不可以执行的,那它的执行权限是干啥的呢?英文是access directory,就是进入此目录,学术点的说法叫做进入此目录让它成为工作目录(work directory),也就是当前打开的目录。这就意味着,如果一个目录对你没有x权限那你就不能进入这个目录!
注意:档案的权限只能限制对其内容进行的操作,而对档案本身的操作并不受限制。比如A档案对你只读,但你仍然可以删掉它(前提是存放A档案的目录对你有写的权限)。但有一种情况你是无法删除他人的档案的。你就无法删除对你没有写权限但其中还存有文件的目录,因为你如果删除目录和其中的档案相当于修改目录的内容,所以是不会成功的!如果你不删除里面的档案,那么又因为目录非空所以删不了。因此想保护你的档案不遭他人毒手就要建立一个自己的目录然后不给other写的权限,这样他们就不能删除你的东西了~除非他们请出root,那你认命吧-_-!

正文到此结束。最后感谢下无私的鸟哥写书让我有好书用来参考(同时也是他激励我写好自己的学习笔记的哦)~最后说一句:学习Linux,动手是十分重要的!
本人尚属菜鸟一只,如果有什么说的不对不好请广大网友指出哦~
阅读(1594) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~