《黑客防线》↑在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!

设为首页
收藏本站
联系我们
网站导航


软件下载 - 专题资源 - 高级Linux网管培训班 - 浏览软件 - [第11课]文件与目录的默认权限与隐藏权限
[第11课]文件与目录的默认权限与隐藏权限
授权类型:
运行环境:
软件分类: 高级Linux网管培训班
文件大小: 46.25MB
星级评定:
官方网站: http://
发 布 人:
发布时间: 2008-1-4 8:27:08
下载权限:
下载次数: 4 人次
下载计费: 0 分, 0 金币 链接报错 收藏本页
下载地址: 下载地址1
特别说明: 1.本站非VIP资料均从网上收集,仅供网络安全爱好者学习、研究所用,请勿用于非法用途,违者责任自负。
2.本站VIP资料专为VIP会员提供,至2008年2月1日起,所有VIP软件、课程均设置有压缩包密码,此密码一月一更新。获取当月VIP压缩密码请到“VIP论坛”、“服务版”查看置顶贴,或在登陆VIP会员帐户后,点击如下连接进入:VIP资料每月密码公布
3.本站VIP资料专署于所有VIP会员共同所有,任何个人、团体共享、发布、盗连均视为侵权,一经发现,严惩不怠!
                黑客防线2007年 linux班
           http://www.hacker.com.cn



第11讲:文件与目录的默认权限与隐藏权限


1 umask
2 隐藏属性


-----------------------------
在Linux文件属性一节的内容中,我们知道了一个文件可以有若干个属性,包括 ( r, w, x ) 等基本属性,
及是否为目录 (d) 与文件 (-) 或者是连结文件 (l) 等等的属性
及修改属性的方法,这节呢?我们再加强补充一下

此外,由于 Linux 还可以设置其它的系统安全属性,
使用 chattr 来设置 == change attrib
而以 lsattr 来查看 == ls attrib
最重要的属性就是可以设置其不可修改的特性。让文件的拥有者都不能进行修改。
这个属性可是相当重要的,尤其是在安全方面 ( security )

首先,先来复习一下前面谈到的权限概念,先看看例子

例1:你的系统有个一般身份使用者pliori,他的群组为pliori,他的家目录在
/home/pliori,你想将你的 ~/.bashrc 复制给他(假设你是 root),可以怎么做?
------
        cp ~/.bashrc ~pliori/bashrc
        chown pliori:pliori ~pliori/bashrc
在上面这个范例当中,我为了怕覆盖掉pliori自己的 ~pliori/.bashrc ,所以将档名更名了~ 而复制
给他后,还要修改这个文件的拥有者与群组才行

例2:我想在 /tmp 底下建立一个目录,这个目录名称为test1 ,并且,这个目录拥
有者为pliori,群组为pliori,此外,任何人都可以进入该目录浏览文件,不过除了pliori
之外,其它人都不能修改该目录下的文件。
答:
        因为所有人都可以查看该目录下的文件,此外,pliori可以修改,
        所以整个目录的权限应该是 drwxr-xr-x 才对。因此
        mkdir /tmp/test1
        chown -R pliori:pliori /tmp/test1
        chmod -R 755 /tmp/test1
在这个例子中,如果你不知道 755 那个数是怎么计算出来的,那么.....赶快去复习下前面看看吧
这部分很重要的。。

注意:如果用ls来查看一个文件夹 要加上参数-d


下面呢?我们来看下新建一个文件或目录时,默认的权限是什么?

文件默认权限:umask
现在我们知道如何建立或者是改变一个目录或文件的属性了,不过,新建一个文件或目录时,默认的权限是什么?
这里就要用到umask了
基本上, umask 就是指定 目前使用者在建立文件或目录时候的属性默认值,
那么如何知道或设置 umask 呢?
他的指定条件以底下的方式来指定:
[root@localhost ~]# umask
0022   == 0 022
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
查阅的方式有两种,
一种可以直接输入 umask ,就可以看到数字型态的权限
一种则是加入 -S这个参数,就会以符号类型的方式来显示出权限了

大家会觉得奇怪,怎么 umask 会有四个数字呢?不是只有三组吗?
没错~ 第一组是特殊权限用的,我们先不要管他,所以先看后面三组即可。
在默认权限的属性上,目录与文件是不一样的。由于文件我们不希望他具有可执行的权力, 默认情况中,
文件是没有可执行 (x) 权限的。因此:
        若使用者建立为 [文件] 则默认没有 可执行 ( x ) 项目,亦即只有 rw 这两个项目,也就是
        最大为 666 ,默认属性如下:
        -rw-rw-rw-
        若使用者建立为 [目录],则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,
        亦即为 777 ,默认属性如下:
        drwxrwxrwx
那么 umask 指定的是(该默认值需要减掉的权限)因为 r、w、x 分别是 4、2、1 ,所以,也就是
说,当要拿掉能写的权限,就是输入 2 ,而如果要拿掉能读的权限,也就是 4 ,那么要拿掉读与写
的权限,也就是 6 ,而要拿掉执行与写入的权限,也就是 3 ,这样了解了吧?
如果以上面的例子来说明的话,因为 umask 为 022 ,所以 user 并没有
被拿掉属性,不过 group 与 others 的属性被拿掉了 2 ( 也就是 w 这个属性 ),那么由于当使用者:

        建立文件时:(-rw-rw-rw-) – (-----w--w-) == -rw-r--r--
        建立目录时:(drwxrwxrwx) – (d----w--w-) == drwxr-xr-x
我们来实践测试下,多动手
[root@localhost ~]# umask
0022
[root@localhost ~]# touch test1
[root@localhost ~]# mkdir test2
[root@localhost ~]# ll
-rw-rw-r--  1 root root    0 07-19 00:36 test1
drwxrwxr-x  2 root root 4096 07-19 00:36 test2

好了,假如我们想要让与使用者同群组的人也可以存取文件呢?
也就是说,pliori 是 pliori这个群组的人,而 pliori 做的文件希望让pliori 同群组的人也可以
存取, 这也是常常被用在团队开发计划时,常常会考虑到的权限问题。在这样的情况下, 我们的 umask 自
然不能取消 group 的 w 权限,也就是说,我们希望制作出来的文件应该是 -rw-rw-r-- 的模样,所以啰
umask 应该是要 002才好 (仅拿掉 others 的 w 权限)。那么如何设置 umask 呢? 简单的很,直接在
umask 后面输入 002 就好了!
[root@localhost ~]# umask 002
[root@localhost ~]# touch test3
[root@localhost ~]# mkdir test4
[root@localhost ~]# ll
-rw-r--r--  1 root root    0 07-19 00:41 test3
drwxr-xr-x  2 root root 4096 07-19 00:41 test4
所以说,这个 umask 对于文件与目录的默认权限是很有关系的!这个概念可以用在任何服务器上面,
尤其以后在架设文件服务器 (file server)上面 ,举例来说, SAMBA Server 或者是 FTP server 时,
权限方面很重要

例3:假设您的 umask 为 003 ,请问该 umask 情况下,建立的文件与目录权限为?
答:
        umask 为 003 ,所以拿掉的属性为 --------wx,因此:
        文件: (-rw-rw-r--) - (--------wx) = -rw-rw-r--
        目录: (drwxrwxrwx) - (--------wx) = drwxrwxr--

这里注意了:
        关于 umask 与权限的计算方式中,有的书籍或者是
        BBS 上面的帖子,有的人喜欢使用文件默认属性 666 与目录默认
        属性 777 来与 umask 进行相减的计算
        以上面例3的案例来看, 如果使用默认属性相加减,则文件变成:
        666-003=663,亦即是 -rw-rw--wx ,这是完全不对的
        想想看,原本文件就已经去除 x 的默认属性了,但是这里还保留x

在默认的情况中, root 的 umask 会拿掉比较多的属性,root 的 umask 默认是 022 , 这是基于安全的
考虑啦~至于一般身份使用者,通常他们的 umask 为 002 ,即保留同群组的写入权力。

关于默认 umask 的设置可以参考 /etc/bashrc 这个文件的内容,
具体呢我们会在后面讲到,大家有兴趣的话可以less /etc/bashrc看看
当然目前只是看看好了,不要改里面的东西
如果真要改的话,等我们学完shell脚本后再来```````



---------------------
文件隐藏属性:
什么?文件还有隐藏属性?光是那九个权限就快要疯掉了,竟然还有隐藏属性,真是要命~ 但是没办法,
就是有文件的隐藏属性存在啊!不过,这些隐藏的属性对于系统有很大的帮助~ 尤其是在系统安全
(Security) 上面,非常重要。下面我们就来看下如何设置与检查这些隐藏的属性

chattr (设置文件隐藏属性)
[root@localhost ~]# chattr [+-=][ASacdistu] 文件或目录名称
参数:
+   :增加某一个特殊参数,其它原本存在参数则不动。
-   :移除某一个特殊参数,其它原本存在参数则不动。
=   :设置一个属性,仅有后面接的参数
A  :当设置了 A 这个属性时,这个文件(或目录)的存取时间 atime (access)
     将不可被修改,可避免例如笔记本计算机容易有磁盘 I/O 错误的情况发生!
S  :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!
     可以有效的避免数据流失!
a  :当设置 a 之后,这个文件将只能增加数据,而不能删除,只有 root
     才能设置这个属性。
c  :这个属性设置之后,将会自动的将此文件[压缩],在读取的时候将会自动解压缩,
     但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的)
d  :当 dump(备份)程序被执行的时候,设置 d 属性将可使该文件(或目录)不具有 dump 功能
i  :这个 i 超级有用。他可以让一个文件[不能被删除、改名、设置连结也无法写入
     或新增资料] 对于系统安全性有相当大的帮助
j  :当使用 ext3 这个文件系统格式时,设置 j 属性将会使文件在写入时先记录在
     journal 中。但是当 filesystem 设置参数为 data=journalled 时,由于已经设置了
     日志了,所以这个属性无效!
s  :当文件设置了 s 参数时,他将会被完全的移除出这个硬盘空间。
u  :与 s 相反的,当使用 u 来设置文件时,则数据内容其实还存在磁盘中,
     可以使用来 undeletion.
注意:这个属性设置上面,比较常见的是 a 与 i 的设置值,而且很多设置值必须要身为
root 才能够设置的喔!
例:
[root@localhost ~]# cd /tmp
[root@localhost tmp]# touch test1
[root@localhost tmp]# chattr +i test1
[root@localhost tmp]# rm test1
提示我们无法删除,也不能写
那我们去图形界面看看

[root@localhost tmp]# chattr -i test1
这个指令是重要的,尤其是在系统的安全性上面!由于这些属性是隐藏的性质,所以需要以 lsattr 才
能看到该属性。其中,我个人认为最重要的就是 +i 这个属性了,因为他可以让一个文件无法被更动,
对于需要强烈的系统安全的人来说, 真是相当的重要。

此外,如果是 log file 这种的登录日志,就更需要 +a 这个可以增加,但是不能修改旧有的数据与删除的
参数了。 怎样?很棒吧!以后提到登录日志的问题时,我们再来看看如何设置他。

lsattr (显示文件隐藏属性)
[root@localhost ~]# lsattr [-aR] 文件或目录
参数:
-a :将隐藏文件的属性也秀出来;
-R :连同子目录的数据也一并列出来!

[root@localhost tmp]# chattr +ai test1
[root@localhost tmp]# lsattr test1

使用 chattr 设置后,可以利用 lsattr 来查阅隐藏的属性。
不过, 这两个指令在使用上必须要特别小心,
否则会造成很大的困扰。比如说如果你哪天心情好,突然将 /etc/shadow 这个重要的密码记录文件给他设置成
为具有 i 的属性
那么过了若干天之后,你突然要新增使用者,却一直无法新增。
别怀疑,赶快去将 i 的属性拿掉吧。



------------------------------------
下一节

我们知道账号与密码的存放文件其实是 /etc/passwd 与 /etc/shadow 。 而
/etc/shadow 这个文件的权限是什么?是(-r--------)。且他的拥有者是 root。在这个权限中,仅
有 root 可以(强制)储存,其它人是连看都没有办法看的。
但是如果我偏偏要使用 pliori 这个一般身份使用者去更新自己的密码时,会是什么样子呢?


文件的特殊权限
评论作者:
电子邮件:
评论内容:
投票评价:
验 证 码:
图片包含4个随机字符,点击刷新
请输入上面图片中的随机字符