⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0210filepermission.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 4 页
字号:
			请特别留意的是,如果您想要开放某个目录让一些人进来的话,
			请记得将该目录的 x 属性给开放呦</span>!至于目录的权限相关说明,
			我们会在底下继续介绍的。<br><br>

			另外,你也必须要更加的小心的是,在 Windows 
			底下一个档案是否具有执行的能力是藉由『 <span class=text_import2>附档名</span> 』来判断的,
			例如∶.exe, .bat, .com 等等,但是在 Linux 底下,
			<span class=text_import2>我们的档案是否能执行,则是藉由是否具有
			x 这个属性来决定的</span>!所以,<span class=text_import2>跟档名是没有绝对的关系的</span>!
			这点还请特别留意呢!稍后我们还会针对目录来稍作说明的<br><br>

		<li><span class=text_import1>第二栏表示为连结占用的节点 (i-node)∶</span>
			这个跟连结档 (link file) 比较有关系,我们在未来的章节会再加以介绍的。
			如果是目录的话,那么就与该目录下还有多少目录有关。<br><br>

		<li><span class=text_import1>第三栏表示这个档案(或目录)的『拥有人』</span>。<br><br>

		<li><span class=text_import1>第四栏表示拥有人的群组。</span><br>
			这里再次解释一下,在 Linux 中,你的 ID ( 如 root 或 test 等帐号均是所谓的
			ID ) 即是你的身份,而且你还可以附属在一个或多个群组之下,例如刚刚我们上面提到的,你有一个团体
			( 即群组 ) 代号为 testgroup ,且这个群体里有三个人,其代号分别是 test1,
			test2, 与 test3,则这三个人为同一群组即 testgroup!那么如果以上图的的档案属性(-rwxrwx---)
			来看,如果该档案属于
			test1 所有,那么 test2, test3 亦有读、写、执行的权力,因为他们都属于同一个
			group 呀!而如果您不是属于 test1, test2, test3 的任何一个人,也不属于 testgroup
			这个群组时,那么您将不具备读、写、执行这个档案的权限了!<br><br>

		<li><span class=text_import1>第五栏为这个档案的容量大小。</span><br><br>

		<li><span class=text_import1>第六栏为这个档案的建档日期或者是最近的修改日期,</span>
			分别为月份、日期及时间。请特别留意,如果您是以繁体中文来进行安装您的
			Linux 时,那么预设的语系可能会被改为中文。而 
			<span class=text_import2>由于中文无法显示在文字型态的终端机上面,
			所以这一栏会成为怪怪的乱码,这个时候,请修改一下
			/etc/sysconfig/i18n 这个档案,里面的『 LC_TIME 』修改为∶『 LC_TIME=en
			』再储存离开,再登入一次,就可以得到英文字形显示的日期了!</span>
			那么如何修改该档案呢?呵呵!以 root 身份用 vi 修改。
			另外,也可以使用『 LANG=en ls -al 』之类的语法来显示。<br><br>

		<li><span class=text_import1>第七栏为这个档案的档名,</span>
			如果档名之前多一个『 . 』,则代表这个档案为『<span class=text_import2>隐藏档</span>』,
			例如上表第 6 行的『.bashrc_history』档名即是隐藏档,由于我们有下一个参数为 
			ls -al,所以连隐藏档都列出来,如果你只输入 ls 则档名有加『 . 』的档案就不会被显示出来!<br>
		</ol>

		<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen">			对于更详细的 ls 用法,还记得怎么查询吗?对啦!使用
			man ls 或 info ls 去看看他的基础用法去!自我进修是很重要的,
			因为『师傅带进门,修行在个人!』,自古只有天才学生,没有天才老师呦!加油吧!^_^
		</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
		这七个栏位的意义是很重要的!务必清楚的知道各个栏位代表的意义呢!尤其是第一个栏位的十个权限,
		那是整个 Linux 档案权限的重点之一。底下我们来做几个简单的练习,您就会比较清楚棉!
		假设 test1, test2, test3 同属于 testgroup 这个群组∶<br><br>

		<table border=1 width=90% cellspacing=0 cellpadding=5><tr><td>
		例题一∶如果有下面的两个档案,请说明两个档案的拥有者与其相关的权限为何?<span class=text_import2>
<pre>   -rw-r--r--   1 root     root          238 Jun 18 17:22 test.txt 
   -rwxr-xr--   1 test1    testgroup    5238 Jun 19 10:25 ping_tsai</pre></span>
		答∶<ul>
			<li>档案『 test.txt 』的拥有人为 root ,群组为 root 。至于权限方面则只有 root 
				这个帐号可以存取此档案,其他人则仅能读此档案;</li><br>
			<li>另一个档案『 ping_tsai 』的拥有人为 test1 ,而群组为 testgroup。其中, 
				test1 可以针对此档案具有可读可写可执行的权力,而同群组的 test2, test3 两个人与 
				test1 同样是 testgroup 的群组帐号,则仅可读可执行但不能写 (亦即不能修改),至于非 
				testgoup 这一个群组的人则仅可以读,不能写也不能执行!</ul>
		</td></tr></table><br>

		<table border=1 width=90% cellspacing=0 cellpadding=5><tr><td>
		例题二∶如果我的目录为底下的样式,请问 testgroup 这个群组的成员与其他人( others )是否可以进入本目录?
		<span class=text_import2>
<pre>    drwxr-xr--   1 test1    testgroup    5238 Jun 19 10:25 groups/</pre></span>
		答∶<ul>
			<li>档案拥有者 test1 可以在本目录中进行任何工作;
			<li>而 testgroup 这个群组的帐号,例如 test2, test3 亦可以进入本目录进行工作,
				但是不能在本目录下进行写入的动作;
			<li>至于 other 的权限中虽然有 r ,但是由于没有 x 的权限,因此 others 的使用者,并不能进入此目录!</ul>
		</td></tr></table><br>

		<li><span class=text_import1>Linux 档案属性的重要性∶</span></li>
		<div class=block2>
		与 Windows 系统不一样的是,在 Linux 系统(或者说 Unix-Like
		系统)当中,每一个档案都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢?
		基本上,最大的用途是在『安全性』上面的。举个简单的例子,在你的系统中,关于系统服务的档案通常只有
		root 才能读写,或者是执行,例如 <span class=text_import2>/etc/shadow</span> 
		这一个帐号管理的档案,由于该档案记录了你的系统中的所有帐号的资料,因此是很重要的一个资讯档,
		当然不能让任何人读取,只有
		root 才能够来读取棉!所以该档案的属性就会成为 [ <font face="细明体" color=darkblue>-rw-------
		</font> ]棉!<br><br>

		那么,如果你有一个开发团队,在你的团队中,你希望每个人都可以使用某一些目录下的档案,
		而非你的团队的其他人则不予以开放呢?以上面的例子来说,testgroup
		的团队共有三个人,分别是 test1, test2, test3 !那么我就可以将 test1 的档案属性订为
		[ <font face="细明体" color=darkblue> -rwxrwx---</font> ] 来提供给
		testgroup 的工作团队使用棉!这可是相当重要的。<br><br>

		再举个例子来说,如果你的目录权限没有作好的话,可能造成其他人都可以在你的系统上面乱搞棉!例如本来只有
		root 才能做的开关机、ADSL
		的拨接程式、新增或删除使用者等等的指令,若被你改成任何人都可以执行的话,
		那么如果使用者不小心给你重新开机啦!重新拨接啦!等等的!那么你的系统不就会常常莫名其妙的挂掉棉!
		而且万一你的使用者的密码被其他不明人士取得的话,只要他登入你的系统就可以轻而易举的执行一些
		root 的工作!可怕吧!因此,<span class=text_import2>在你修改你的 linux 档案与目录的属性之前,
		一定要先搞清楚,什么是可变的,什么是不可变的</span>!千万注意棉!
		</div>
	</div>

	<hr><a name="filepermission_ch"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>如何改变档案权限</span><br>
	<div class=block2>
		好了,我们已经知道档案权限对于一个系统的安全重要性了,也知道档案的权限对于使用者与群组的相关性了,
		好了,那么如何修改一个档案的权限呢?又!有多少档案的权限我们可以修改呢?
		其实一个档案的权限很多嘛!大致上我们先介绍几个简单的,例如∶群组、拥有者、各种身份的权限等等。
		<ul><span class=text_import2><font face="细明体">
		<li>chgrp ∶改变档案所属群组
		<li>chown ∶改变档案所属人
		<li>chmod ∶改变档案的属性、 SUID 、等等的特性</ul></font></span>

		<hr><li><a name="chgrp"></a><span class=text_import1>改变所属群组, chgrp</span></li>
		<div class=block2>
			改变一个档案的群组真是很简单的,直接以 chgrp 来改变即可,咦!这个指令就是 
			change group 的缩写嘛!对啦!这样就很好记了吧! ^_^。不过,请记得,
			要改变成为的群组名称必须要在 <span class=text_import2>/etc/group</span> 
			里面存在的名称才行,否则就会显示错误!<br><br>

			假设您是以 root 的身份登入 FC4 ,那么在您的家目录内有一个 install.log 的档案,
			如何将该档案的群组改变一下呢?假设您已经知道在 /etc/group 里面已经存在一个名为 users 
			的群组,但是 testing 这个群组名字就不存在 /etc/group 当中了,
			此时改变群组成为 users 与 testing 会有什么现象发生呢?<br>

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>chgrp [-R] dirname/filename ...</span>
<span class=term_say>参数∶
-R : 进行递回( recursive )的持续变更,亦即连同次目录下的所有档案、目录
     都更新成为这个群组之意。常常用在变更某一目录的情况。
范例∶</span>
[root@linux ~]# <span class=term_command>chgrp users install.log</span>
[root@linux ~]# <span class=term_command>ls -l</span>
-rw-r--r--  1 root <span class=term_write>users</span> 68495 Jun 25 08:53 install.log
[root@linux ~]# <span class=term_command>chgrp testing install.log</span>
chgrp: invalid group name `testing' <span class=term_note>&lt;== 发生错误讯息棉~找不到这个群组名~</span>
</pre></td></tr></table>
			发现了吗?档案的群组被改成 users 了,但是要改成 testing 的时候,
			就会发生错误~注意喔!发生错误讯息还是要努力的查一查错误讯息的内容才好!<br>
		</div>

		<hr><li><a name=chown></a><span class=text_import1>改变档案拥有者, chown</span></li>
		<div class=block2>
			好了,那么如何改变一个档案的拥有者呢?很简单呀!既然改变群组是 change group 
			,那么改变拥有者就是 change owner 棉!BINGO,对啦!那就是 chown 
			这个指令的用途,要注意的是,使用者必须是已经存在系统中的,也就是在 
			<span class=text_import2>/etc/passwd</span> 这个档案中有纪录的使用者名称才行改变。 <br><br>
			chown 的用途还满多的,他还可以顺便直接修改群组的名称呢!此外,
			<span class=text_import2>如果要连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 
			-R </span>的参数即可!我们来看看语法与范例∶<br>

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>chown [-R] 帐号名称 档案或目录</span>
[root@linux ~]# <span class=term_command>chown [-R] 帐号名称:群组名称 档案或目录</span>
<span class=term_say>参数∶
-R : 进行递回( recursive )的持续变更,亦即连同次目录下的所有档案、目录
     都更新成为这个群组之意。常常用在变更某一目录的情况。
范例∶</span>
[root@linux ~]# <span class=term_command>chown bin install.log</span>
[root@linux ~]# <span class=term_command>ls -l</span>
-rw-r--r--  1 <span class=term_write>bin</span>  users 68495 Jun 25 08:53 install.log
[root@linux ~]# <span class=term_command>chown root:root install.log</span>
[root@linux ~]# <span class=term_command>ls -l</span>
-rw-r--r--  1 <span class=term_write>root root</span> 68495 Jun 25 08:53 install.log
</pre></td></tr></table>

			嗯!知道如何改变档案的群组与拥有者了,那么什么时候要使用 chown 或 chgrp 
			呢?!或许您会觉得奇怪吧?!是的,确实有时候需要变更档案的拥有者的,
			最常见的例子就是在 copy 档案给你之外的其他人时,我们使用最简单的 cp 来说明好了∶<br>

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>cp 来源档案 目的档案</span>
</pre></td></tr></table>

			假设您今天要将 .bashrc 这个档案拷贝成为 .bashrc_test ,且是要给 bin 这个人,您可以这样做∶<br>

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>cp .bashrc .bashrc_test</span>
[root@linux ~]# <span class=term_command>ls -al .bashrc*</span>
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
-rw-r--r--  1 root root 395 Jul 13 11:31 .bashrc_test
</pre></td></tr></table>

			哇!怎么办? .bashrc_test 还是属于 root 所有,如此一来,即使你将档案拿给 bin 
			这个使用者了,那他仍然无法修改的( 看属性就知道了吧! ),
			所以你就必须要将这个档案的拥有者与群组修改一下棉!知道如何修改了吧!?呵呵! <br>
		</div>

		<hr><li><a name=chmod></a><span class=text_import1>改变九个属性, chmod</span></li>
		<div class=block2>
			档案属性的改变使用的是 chmod 这个指令,但是,属性的设定方法有两种,
			分别可以使用数字或者是符号来进行属性的变更。我们就来谈一谈∶<br><br>

			<li><span class=text_import1>数字类型改变档案权限</span></li>

⌨️ 快捷键说明

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