0210filepermission.htm

来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 1,115 行 · 第 1/5 页

HTM
1,115
字号
.ssh 这个目录:</li><ul><font color="#000066" face="SimSun"> </font><br><font color="#000066" face="SimSun">drwx------&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Feb 10 00:44 .ssh</font><br><font color="#000066" face="SimSun"> </font></ul>可以看到这是一个目录,而且只有 root 可以读写与执行。但是若为底下的样式时,请问非root 的其它人是否可以进入该目录呢?<ul><font color="#000066" face="SimSun"> </font><br><font color="#000066" face="SimSun">drwxr--r--&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Feb 10 00:44 .ssh</font><br><font color="#000066" face="SimSun"> </font></ul>咦!似乎好像是可以喔!因为有可读[ r ]存在嘛!『错!』答案是非 root 这个账号的其它使用者均不可进入.ssh 这个目录,为什么呢?<b><font color="#000066">因为 x 与 目录 的关系相当的重要,如果您在该目录底下不能执行任何指令的话,那么自然也就无法执行ls, cd 等指令,所以啰,也就无法进入了</font></b>,因此,请特别留意的是,<b><font color="#000066">如果您想要开放某个目录让一些人进来的话,请记得将该目录的x 属性给开放呦</font></b>!<br> <li>另外,你也必须要更加的小心的是,在 Windows 底下一个档案是否具有执行的能力是藉由『<font color="#000066">附档名</font>』来执行的,例如:.exe,.bat, .com 等等,但是在 Linux 底下,<b><font color="#000066">我们的档案是否能执行,则是藉由是否具有x 这个属性来决定的</font></b>!所以,<b><font color="#000066">跟档名是没有绝对的关系的</font></b>!这点还请特别留意呢!</li><br>&nbsp;</ul><li>第二栏表示为连结占用的节点 (i-node) ( 若为目录时,通常与该目录底下还有多少目录有关)这部分将在介绍连结 link 档案时 (下一节) 再深入的介绍;</li><br> <li>第三栏表示这个档案(或目录)的『<font color="#3333ff">拥有人</font>』;</li><br> <li>第四栏表示拥有人的群组;</li><br>这里再次解释一下,在 Linux 中,你的 ID ( 如 root 或 test 等账号均是所谓的ID ) 即是你的身份,而且你还有附属在一个或多个群组之下,例如刚刚我们上面提到的,你有一个团体( 即群组 ) 代号为 testgroup ,且这个群体里有三个人,其代号分别是 test1,test2, 与 test3,则这三个人为同一群组即 testgroup!那么如果以上图的[-rwxrwx---]的档案属性来看,如果该档案属于test1 所有,那么 test2, test3 亦有读、写、执行的权力,因为他们都属于同一个group 呀!而如果您不是属于 test1, test2, test3 的任何一个人,也不属于 testgroup这个群组时,那么您将不具备读、写、执行这个档案的权限了!<br> <li>第五栏为这个档案的大小;</li><br> <li>第六栏为这个档案的建档日期或者是最近的修改日期,分别为月份、日期及时间。请特别留意,如果您是以繁体中文来进行安装您的Linux 时,那么预设的语系可能会被改为中文。而<b><font color="#000066">由于中文无法显示在文字型态的终端机上面,所以这一栏会成为怪怪的乱码,这个时候,请修改一下/etc/sysconfig/i18n 这个档案,里面的『 LC_TIME 』修改为:『 LC_TIME=en』再储存离开,再登入一次,就可以得到英文字形显示的日期了!</font></b>那么如何修改该档案呢?呵呵!以root 身份用 vi 修改! ;</li><br> <li><b><font color="#3333ff">第七栏为这个档案的档名</font></b>,如果档名之前多一个『. 』,则代表这个档案为『<b><font color="#3333ff">隐藏档</font></b>』,例如上表第6 行的『.bashrc_history』档名即是隐藏档,由于我们有下一个参数为 ls -al,所以连隐藏档都列出来,如果你只输入ls 则档名有加『 . 』的档案就不会被显示出来!</li><br> <ol><b><i><font color="#000066">对于更详细的 ls 用法,还记得怎么查询吗?对啦!使用man ls 或 info ls 去看看他的基础用法去!自我进修是很重要的,因为『师傅带进门,修行在个人!』,自古只有天才学生,没有天才老师呦!加油吧!^_^</font></i></b></ol></ol> <table bgcolor="#000000" border="1" cols="1" width="90%"><tbody><tr><td bgcolor="#ffffff"><ul><li>例题一:如果有下面的两个档案:&#160;</li><br><font color="#000066" face="SimSun">-rw-r--r--&#160;&#160; 1root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;238 Jun 18 17:22 test.txt&#160;</font><br><font color="#000066" face="SimSun">-rwxr-xr--&#160;&#160; 1test1&#160;&#160;&#160; testgroup&#160;&#160;&#160; 5238 Jun 19 10:25 ping_tsai</font><br>请说明两个档案的拥有者与其相关的权限为何?<br>答:<ul><li>档案『 test.txt 』的拥有人为 root ,群组为 root 。至于权限方面则只有 root这个账号可以存取此档案,其它人则仅能读此档案;</li><li>另一个档案『 ping_tsai 』的拥有人为 test1 ,而群组为 testgroup。其中,test1 可以针对此档案具有可读可写可执行的权力,而同群组的 test2, test3 两个人与test1 同样是 testgroup 的群组账号,则仅可读可执行但不能写 (亦即不能修改),至于非testgoup 这一个群组的人则仅可以读,不能写也不能执行!</li></ul></ul></td></tr></tbody></table>  <table bgcolor="#000000" border="1" cols="1" width="90%"><tbody><tr><td bgcolor="#ffffff"><ul><li>例题二:如果我的目录为底下的样式:</li><br><font color="#000066" face="SimSun">drwxr-xr--&#160;&#160; 1test1&#160;&#160;&#160; testgroup&#160;&#160;&#160; 5238 Jun 19 10:25 groups/</font><br>请问 testgroup 这个群组的成员与其它人( others )是否可以进入本目录?<br>答:<ul><li>档案拥有者 test1 可以在本目录中进行任何工作;</li><li>而 testgroup 这个群组的账号,例如 test2, test3 亦可以进入本目录进行工作,但是不能在本目录下进行写入的动作;</li><li>至于 other 的权限中虽然有 r ,但是由于没有 x 的权限,因此 others 的使用者,并不能进入此目录!</li></ul></ul></td></tr></tbody></table>&nbsp;</blockquote><blockquote><b><font color="#000099">Linux 档案属性的重要性:</font></b><br>与 Windows 系统不一样的是,在 Linux 系统(或者说 Unix-Like系统)当中,每一个档案都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢?基本上,最大的用途是在『安全性』上面的。举个简单的例子,在你的系统中,关于系统服务的档案通常只有root 才能读写,或者是执行,例如 <font color="#000066" face="SimSun">/etc/shadow</font>这一个账号管理的档案,由于该档案记录了你的系统中的所有账号的数据,因此是很重要的一个信息文件,当然不能让任何人读取,只有root 才能够来读取啰!所以该档案的属性就会成为 [ <font color="#000066" face="SimSun">-rw-------</font>]啰!<br> <br>那么,如果你有一个开发团队,在你的团对中,你希望每个人都可以使用某一些目录下的档案,而非你的团队的其它人则不予以开放呢?以上面的例子来说,testgroup的团队共有三个人,分别是 test1, test2, test3 !那么我就可以将 test1 的档案属性订为[<font color="#000066" face="SimSun"> -rwxrwx---</font> ]来提供给testgroup 的工作团队使用啰!这可是相当重要的。<br> <br>再举个例子来说,如果你的目录权限没有作好的话,可能造成其它人都可以在你的系统上面乱搞啰!例如本来只有root 才能做的开关机、ADSL的拨接程序、新增或删除使用者等等的指令,若被你改成任何人都可以执行的话,那么如果使用者不小心给你重新开机啦!重新拨接啦!等等的!那么你的系统不就会常常莫名其妙的挂掉啰!而且万一你的使用者的密码被其它不明人士取得的话,只要他登入你的系统就可以轻而易举的执行一些root 的工作!可怕吧!因此,<font color="#000066">在你修改你的 linux 档案与目录的属性之前,一定要先搞清楚,什么是可变的,什么是不可变的</font>!千万注意啰!</blockquote><hr width="100%"><a name="comman"></a><font size="+1" color="#000099">如何改变档案权限</font><blockquote>好了,我们已经知道档案权限对于一个系统的安全重要性了,也知道档案的权限对于使用者与群组的相关性了,好了,那么如何修改一的档案的权限呢?又!有多少档案的权限我们可以修改呢?其实一个档案的权限很多嘛!大致上我们先介绍几个简单的,例如:群组、拥有者、各种身份的权限等等。<ul><font face="SimSun"><b>chgrp</b> :改变档案所属群组</font><br><font face="SimSun"><b>chown</b> :改变档案所属人</font><br><font face="SimSun"><b>chmod</b> :改变档案的属性、 SUID 、等等的特性</font></ul><ul><hr width="100%"><li><a name="chgrp"></a><font color="#000099">改变所属群组, chgrp</font>:</li><br>改变一个档案的群组也真是很简单的,直接以 chgrp 来改变即可,咦!这个指令就是change group 的缩写嘛!对啦!这样就很好记了吧! ^_^。不过,请记得,要改变成为的群组名称必须要在<font color="#000066" face="SimSun">/etc/group</font> 里面存在的名字才行,否则就会显示错误!例如底下的例子中,我们要将tmp 的群组改变一下,其中, users 这个群组本身已经存在 /etc/group 当中了,但是testing 这个群组名字就不存在 /etc/group 当中,所以就会有错误讯息发生啦!<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">语法:</font><br><font size="-1" color="#ffff00" face="SimSun">chgrp 群组名称档案或目录</font><p><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">chgrp users tmp</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">ls –l</font></font><br><font size="-1" color="#ffffff" face="SimSun">drwx------&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Oct 19 11:43 drakx/</font><br><font size="-1" color="#ffffff" face="SimSun">drwx------&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; users&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Oct 19 21:24 tmp/</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">chgrp testing tmp</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">chgrp: invalidgroup name `testing'&#160;&#160; </font><font color="#ff9900">&lt;==发生错误讯息啰!</font></font></p></td></tr></tbody></table> <br><hr width="100%"><li><a name="chown"></a><font color="#000099">改变档案拥有者, chown</font>:</li><br>好了,那么如何改变一个档案的拥有者呢?很简单呀!既然改变群组是 changegroup ,那么改变拥有者就是 change owner 啰!BINGO,对啦!那就是 chown 这个指令的用途,要注意的是,使用者必须是已经存在系统中的,也就是在<font color="#000066">/etc/passwd</font>这个档案中有纪录的使用者名称才行改变。 chown 的用途还满多的,他还可以顺便直接修改群组的名称呢!此外,如<font color="#000066">果要连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上–R 的参数即可</font>!我们来看看语法与范例:<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">语法:</font><br><font size="-1" color="#ffff00" face="SimSun">chown [ -R] 账号名称 档案或目录</font><br><font size="-1" color="#ffff00" face="SimSun">chown [ -R] 账号名称:群组名称 档案或目录</font><p><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">chown test tmp</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">ls -l</font></font><br><font size="-1" color="#ffffff" face="SimSun">total 28</font><br><font size="-1" color="#ffffff" face="SimSun">drwx------&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Oct 19 11:43 drakx/</font><br><font size="-1" color="#ffffff" face="SimSun">drwx------&#160;&#160;&#160;2 test&#160;&#160;&#160;&#160; users&#160;&#160;&#160;&#160;&#160;&#160;&#160;4096 Oct 19 21:24 tmp/</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">chown –R root:root tmp&#160;</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">ls –l</font></font><br><font size="-1" color="#ffffff" face="SimSun">drwx------&#160;&#160;&#160;2 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?