本文节选至
				
						http://www.chinalinuxpub.com/doc/manual/9.0/rhl-gsg-zh_CN-9/s1-navigating-ownership.html 
				
				
				
				所有权和许可权限 
		
		
				读取、写入、和执行是许可权限中的三个主要设置。既然用户在他们的帐号创建之时就被编入一个组群,你还可以指定哪些组群可以读取、写入、或执行某一文件。 
		
		
				让我们用带有 -l (长)选项的 ls 命令来仔细查看一下文件 sneakers.txt。 
		
		
				这里提供了许多细节。你可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(test),所有者所在的组群(test)。请记住,按照默认设置,你的组群名和你的登录名相同。 
		
		
				
						
						
				
		
		
				
						 
						
				
		
		
				
						
								sneakers.txt 的许可权限
				
		
		
				在组群右侧的信息包括文件大小、创建的日期和时间,以及文件名。 
		
		
				第一列显示了当前的权限;它有十位。第一位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。 
		
		
				例如: 
		
		
				
						-rw-rw-r--
				
		
		
				
				
		
		
				
				
		
		
				那三组是:文件的所有者,文件所属的组群,和“其他人”,这是前面没有包括的用户和组群。 
		
		
				
						
								-   (rw-) (rw-) (r--) 1 test test
								
						
				
				
						|     |     |     | 
类型 所有者 组群  其他人
				
		
		
				第一个项目指定文件类型,它可以显示以下几种: 
		
		
		
				在第一个项目之后的三组中,你可以看到下面几种类型: 
		
		
				- 
						
								
										r — 文件可以被读取 
						 
- 
						
								
										w — 文件可以被写入 
						 
- 
						
								
										x — 文件可以被执行(如果它是程序的话) 
						 
				当你在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。再看一看文件 sneakers.txt 的第一列,然后辩别它的许可权限。 
				
						
				
		
		
				
						ls -l sneakers.txt
						
				
		
		
				
						-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
						
						
文件的所有者(这个情况下是 test)有读取和写入该文件的权限。组群test 也有读取和写入 sneakers.txt的权限。它不是一个程序,因此所有者和组群都没有执行它的权限。
		
		
				
				
				chmod 命令 
		
		
				使用 chmod 命令来改变权限。这个例子显示了如何使用 chmod 命令来改变 sneakers.txt 文件的权限。 
		
		
				带有初始权限设置的最初文件与下面相仿: 
		
		
				
						
								-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
						
				
		
		
				如果你是这个文件的所有者或者你登录为根用户身份,你可以改变所有者、组群、和其他人的权限。 
		
		
				此刻,所有者和组群可以读取和写入文件,组群之外的任何人只能读取文件(r--)。 
 小心
小心
请记住,文件权限是一种安全措施。无论何时你允许其他人读取、写入或执行文件,你都在增加文件被篡改或删除的危险。作为一种基本原则,你应该只给那些真正需要这些文件的人以读写权限。
		
		
				在下面的例子中,你想给每个人以写入文件的权限,因此他们可以读取文件,在其中加注,并保存文件。这意味着你非得改变文件权限中的“其他人”部分不可了。 
		
		
				让我们先来看一看这个文件。在 shell 提示下,键入: 
		
		
				
						
								ls -l sneakers.txt
						
				
		
		
				前面的命令显示了这个文件信息: 
		
		
				
						
								-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
						
				
		
		
				现在,键入下面的命令:
		
		
				
						
								chmod o+w sneakers.txt
						
				
		
		
				
						o+w 命令告诉系统你想给其它人写入文件 sneakers.txt 的权限。要查看结果,再次列出文件的细节。现在,这个文件看起来与下面的输出相仿: 
		
		
				
						
								-rw-rw-rw- 1 test test 39 3月 11 12:04 sneakers.txt
						
				
		
		
				现在,每个人都可以读取和写入这个文件。 
		
		
				要从 sneakers.txt 中删除读写权限,使用 chmod 命令来取消读取和写入这两个的权限。 
		
		
				
						
								chmod go-rw sneakers.txt
						
				
		
		
				通过键入 go-rw,你在告诉系统删除文件 sneakers.txt 中组群和其它人的读取和写入权限。 
		
		
				结果与下面的输出相似: 
		
		
				
						-rw------- 1 test test 39 3月 11 12:04 sneakers.txt
				
		
		
				当你想用 chmod 命令来改变权限时,把它们当做速记符号来记忆,因为你实际要做的只是记住几个符号而已。 
		
		
				下面是一个速记符号含义的列表: 
		
		
				
						- 
								身份 
						
- 
								
										
												u — 拥有文件的用户(所有者) 
								 
										
												g — 所有者所在的组群 
								 
										
												o — 其他人(不是所有者或所有者的组群) 
								 
										
												a — 每个人或全部(u、g、和 o) 
								 
- 
								权限 
						
- 
								
										
												r — 读取权 
								 
										
												w — 写入权 
								 
										
												x — 执行权 
								 
- 
								行动 
						
- 
								
										
												+ — 添加权限 
								 
										
												- — 删除权限 
								 
										
												= — 使它成为唯一权限 
								 
 
		
				想测试一下你的许可权限技巧么?从文件 sneakers.txt 中删除所有权限 — 包括每个人的权限。 
		
		
				
						-rw------- 1 test test 39 3月 11 12:04 sneakers.txt
				
		
		
				现在,让我们来看看你是否还能够使用 cat sneakers.txt 来读取这个文件,它所返回的输出应如下所示: 
		
		
				
						cat: sneakers.txt: Permission denied
				
		
		
				删除所有的权限,包括你自己的,会成功地锁住这个文件。但是由于这个文件属于你,你可以随时使用以下命令把它的权限改回来:
		
		
				
						
								chmod u+rw sneakers.txt
						
				
		
		
				使用命令 cat sneakers.txt 来试试看你作为文件所有者是否还能够读取该文件。 
		
		
				这里是几个可以用在 chmod 命令设置上的常用例子: 
		
		
				
						- 
								
										
												g+w — 为组群添加写入权 
								 
- 
								
										
												o-rwx — 删除其它人的所有权限 
								 
- 
								
										
												u+x — 允许文件所有者执行这个文件 
								 
- 
								
										
												a+rw — 允许每个人读取并写入文件 
								 
- 
								
										
												ug+r — 允许所有者和组群读取文件 
								 
- 
								
										
												g=rx — 只允许组群读取和执行(不能写入) 
								 
 
		
				通过添加 -R 选项,你可以为整个目录树改变权限。 
		
		
				因为你不能象执行程序一样地“执行”目录,当你为目录添加或删除执行权限时,你实际上是在允许(或拒绝)在目录中搜索的权限。 
		
		
				如果你不想给其它人对目录 tigger 的执行权限,那么谁有读取或写入权限便无关紧要了。除非他们知道他们想要的确切文件名,没人能够进入那个目录。 
		
		
				譬如,键入: 
		
		
				
						
								chmod a-x tigger
						
				
		
		
				来删除每个人的执行权限。 
		
		
				下面是当你试图使用 cd 命令来进入 tigger 目录时会发生的情况: 
		
		
				
						
								bash: tigger: Permission denied
						
				
		
		
				
						
				
		
		
				下一步,恢复你自己和你的组群的权限: 
		
		
				
						
								chmod ug+x tigger
						
				
		
		
				
						
				
		
		
				现在,如果你用 ls -dl 命令来检查一下,你会发现只有其它人(others)被拒绝了到目录 tigger 的访问权。 
		
		
				
				
				13.14.2. 使用数字来改变权限 
		
		
				还记得关于 chmod 的速记符号的方法吗?这里向你介绍另一个改变权限的方法,一开始,它可能会显得有点复杂。 
		
		
				回到 sneakers.txt 文件的原始权限: 
		
		
				
						-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
				
		
		
				每种权限设置都可以用一个数值来代表: 
		
		
		
				当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,你会得到一个值为 6 的总和;4(读取)+ 2(写入)= 6。 
		
		
				
						sneakers.txt 文件的数字权限设置如下: 
		
		
				
						
								- (rw-) (rw-) (r--)
| | |
4+2+0 4+2+0 4+0+0
						
				
		
		
				所有者的总和为六,组群的总和为六,其他人的总和为四。这个权限设置读作 664。 
		
		
				如果你想改变 sneakers.txt 文件的权限,因此你的组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉二(2)就可以删除写入权限了。 
		
		
				然后,这组数值就变成六四四(644)。 
		
		
				要实现这些新设置,键入: 
		
		
				
						
								chmod 644 sneakers.txt
						
				
		
		
				现在,列举这个文件来校验改变。键入:
		
		
				
						
								ls -l sneakers.txt
						
				
		
		
				输出应为:
		
		
				
						-rw-r--r-- 1 test test 39 3月 11 12:04 sneakers.txt
				
		
		
				现在,组群和其他人都没有了到文件 sneakers.txt 的写入权。要归还组群到文件的写入权,在第二组权限中加上 w (2) 的值就可以了。
		
		
				
						
								chmod 664 sneakers.txt
								
								 警告
警告
把权限设为 666 会允许每个人对文件或目录都有读取和写入的权限。把权限设为 777 允许每个人都有读取、写入和执行的权利。这些权限可能会允许对机密文件的篡改,因此,一般来说,使用这类设置是不明智的。
				
		
		
				这里是一个某些常用设置、数值、以及它们的含义的列表: 
		
		
				- 
						
								
										-rw------- (600) — 只有所有者才有读取和写入的权限。 
						 
- 
						
								
										-rw-r--r-- (644) — 只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。 
						 
- 
						
								
										-rwx------ (700) — 只有所有者才有读取、写入、和执行的权限。 
						 
- 
						
								
										-rwxr-xr-x (755) — 所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限。 
						 
- 
						
								
										-rwx--x--x (711) — 所有者有读取、写入、和执行权限;组群和其他人只有执行权限。 
						 
- 
						
								
										-rw-rw-rw- (666) — 每个人都能够读取和写入文件。(请谨慎使用这些权限。) 
						 
- 
						
								
										-rwxrwxrwx (777) — 每个人都能够读取、写入、和执行。(再重申一次,这种权限设置可能会很危险。) 
						 
				下面列举了一些对目录的常见设置: