linux 档案属性: 熟悉档案属性: 网路上有相当多的朋友很有趣,他们对于 Linux 的问题在于无法了解『安装完 Linux 之后要干嘛?!开机跟关机?!』,嗯!这是个很严重的问题,因为这些朋友可能并不了解他们学 Linux 要作何用途?!好了,既然已经安装了 linux 了,那也知道如何启动与关闭 Linux 主机了,不要再埋怨啦!学一学了解一下 Linux 的档案权限观念与他的目录分布的情况吧!等你了解了 Linux 的档案权限概念之后,对于以后修改档案属性与修改系统的一些重要参数档案,是很有用的呦!此外,在开始熟悉档案之前,要先跟大家说明的是,在 Linux 里面,『英文字母大小写是不一样的』,例如档名 VBird 与 vbird 是两个不一样的两个档案!这点请千万要搞清楚喔(与 Windows 最大的不同点啦!)。 嗯!既然要让你了解 Linux 的档案属性,那么第一个进入 Linux 要学的指令就必须要先跟你说啰!那一个?!就是『 ls 』这一个 list 档案的指令啰!在你以 root 的身份登入 Linux 之后,下达『ls -al 』看看,会看到底下的几个咚咚:
ls 是『list』的意思,而参数『-al』则表示列出所有的档案(包含隐藏档,就是档名前面第一个字元为 . 的那种档案)。如上所示,在你第一次以 root 身份登入 Linux 时,假如你输入指令后,应该有上列的几个东西,先解释一下上面七个栏位个别的意思: 1. 第一栏代表这个档案的属性:这个地方最需要注重了!仔细看的话,你应该可以发现这一栏其实共有十个属性:
o 第一个属性代表这个档案是『目录、档案或连结档』: § 当为[ d ]则是目录,例如上表的第 11 行; § 为[ - ]则是档案,例如上表的第 5 行; § 若是[ l ]则表示为连结档(link file); § 若是[ b ]则表示为装置档里面的可供储存的周边设备; § 若是[ c ]则表示为装置档里面的序列埠设备,例如键盘、滑鼠。
o 接下来的属性中,三个为一组,且均为『rwx』的三个参数的组合。其中,[ r ]代表可读、[ w ]代表可写、[ x ]代表可执行: § 第一组为『所有人的权限』,以第五行为例,该档案的所有人可以读写,但不可执行; § 第二组为『同群组的权限』; § 第三组为『其他非本群组的权限』。
看到了 /usr/bin/passwd 档案的前面属性了吗?怎么会有 s 的属性在原本的 x 呀!?那个就是所谓的 SUID 了!假如是『 -r-xr-s--x 』时,那么 s 就成为所谓的 SGID 了!『当一个档案具有 SUID 的时候,同时 other 的群组具有可执行的权限,那么当 others 群组执行该程式的时候, other 将拥有该 user 的权限了!』。
我们以帐号的密码档来说明好了!注重上面的范例啰!可以看到的是, /etc/shadow 的权限是『只有 root 才能存取』呦!那么你会不会觉得很希奇?明明我的一般使用者可以自己修改密码呀!对不对?那么修改密码一定跟 /etc/shadow 这个档案有关,那么怎么回事呀!?使用者是如何修改 /etc/shadow 这个档案的呢?嗯!没错!就是使用 SUID 的功能啦!上面的例子说明了, /usr/bin/passwd 这个档案具有 SUID 的属性,那么当使用者使用 /usr/bin/passwd 这个执行档时,在执行 pass Word 修改的其间就具有 /usr/bin/passwd 这个档案的拥有者 root 的所属权限啰!所以,所以当一般使用者执行 passwd 的时候,将具有 root 的权限,所以他们也可以更改 /etc/shadow 的内容啰!那么由此也可以知道,由于这个 Set UID ( SUID ) 的主要功能是在『某个档案执行的其间具有档案拥有者的权限』,因此, s 就是替代上面提到的 x 这个可执行的位置啰!那万一该档案并没有 x 的属性呢?哈哈!问的好!那么该档案的属性就会将小写的 s 变成大写的 S 啦! ( 这里即使暂时不了解也没有关系,等到过一阵子再回来看一看,你就会了解啦! ) 不过,由此也知道 SUID 与 SGID 的问题所在,没错!就是太不安全了!假如你有一个档案具有 root 的权限,那么当开启了 SUID 的时候,嘿嘿!够你瞧的了!!因此上,在变更一的档案成为具有 SUID 或 SGID 的情况时,必须要非凡小心呢!知道乎!? OK!接着下来,我们要来看一下,既然有 SUID 与 SGID ,那么为什么没有在最末位出现 s 取代 x 呢?呵呵!这当然没有必要啦!因为那是属于 others 的权限,你的档案假如是任何人皆可执行的话,那么本来他们就具有权限啦!干嘛还要设定 s 的属性!?不过,这里却真的有另一个属性出现了,那就是 Sticky bit 的属性 ( t ) !这个属性的最大用处在于『具有 sticky bit 属性的该档案或目录下的档案,其档案或目录只有档案拥有者及 root 才有权力删除!』这样是否可以了解了呢?嘿嘿!没错!在我们系统里面本来就预设有一个啦!那就是 /tmp 这个目录!