linux文件访问权限配置
转自:http://www.51cto.com/art/200710/58299.htm第1列显示了当前的权限;它有10位。第1位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。例如:-rw-r--r--。后面的那三组分别是:文件的所有者、文件所属的组群和“其他人”所拥有的权限,其他人是指前面没有包括的用户和组群所拥有的权限。 各组所代表的意义如下:
转自:http://www.51cto.com/art/200710/58299.htm
8.5.2 文件访问权限配置
在Linux系统中,用户对文件访问权限配置是通过命令行进行的,所以需要一定的专业知识。
【示例7】在RedHat Linux 9.0中配置用户Winda对其私有文件夹“Winda”的文件访问权限。
1.访问权限类型
在文件/文件夹访问权限中,读取、写入和执行是许可权限中的3个主要设置。要查看有权限访问的目录或文件所配置的用户访问权限,只需在Shell终端提示符下输入“ls –l”命令即可(注意此处的“l”是小写字母“l”,而非数字“1”)。
如图8-25所示的就是查看/mnt目录下所有文件和文件夹的用户访问权限配置。这里提供了许多细节,用户可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(Winda)和所有者所在的组群(Winda)。
图8-25 在终端提示符下查看/mnt文件夹的用户访问权限
第1列显示了当前的权限;它有10位。第1位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。例如:-rw-r--r--。
后面的那三组分别是:文件的所有者、文件所属的组群和“其他人”所拥有的权限,其他人是指前面没有包括的用户和组群所拥有的权限。
各组所代表的意义如下:
- (rw-) (r--) (r--) 1 winda winda
| | | |
文件类型 所有者 组群 其他人
在第一个项目的“文件类型”中可以显示以下几种文件类型。
d:目录。
-(短线):常规文件(而不是目录或链接)。
l:到系统上其他位置的另一个程序或文件的符号链接。
在第一个项目之后的三组中,用户可以看到下面几种权限类型。
r:文件可以被读取。
w:文件可以被写入。
x:文件可以被执行(如果它是程序的话)。
当用户在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。再看一个查看readme.txt文件的结果,然后辨别它的许可权限。
ls -l readme.txt
-rw-rw-r-- 1 winda winda 39 8月 11 12:04 readme.txt
从以上可以分析得出,文件的所有者(本例为Winda)有读取和写入该文件的权限。组群Winda也有读取和写入readme.txt的权限。它不是一个程序,因此所有者和组群都没有执行它的权限。而其他用户和组群则只有读取权限。
2.使用chmod命令改变权限
使用chmod命令可以改变用户对文件/文件夹的访问权限。下面这个例子显示了如何使用chmod命令来改变readme.txt文件的权限。
用ls –l命令查看用户对readme.txt文件的初始权限设置,如下所示。
-rw-rw-r-- 1 winda winda 39 8月 11 12:04 readme.txt
如果你是这个文件的所有者或者你登录为根用户身份,那么你可以改变所有者、组群、其他人的权限。初始时,从上面的分析可以看出,这个readme.txt文件的所有者Winda和组群Winda可以读取和写入文件,组群之外的任何人只能读取文件(r--)。
【警告】 请记住,文件权限是一种安全措施。无论何时允许其他人读取、写入或执行文件,都是在增加文件被篡改或删除的危险。作为一种基本原则,你应该只给那些真正需要这些文件的人设置读写权限。
在下面的例子中,是想给每个人赋予“写入”的文件权限,因此他们可以进行读取文件、在其中加注和保存文件操作。这意味着Winda用户必须改变文件初始权限中“其他人”的权限部分。在shell提示符下,输入:
chmod o+w readme.txt
o+w命令参数告诉系统你想给其他人写入文件readme.txt的权限。要查看结果,再次通过ls –l命令列出文件的细节,如下:
-rw-rw-rw- 1 winda winda 39 3月 11 12:04 readme.txt
现在,每个人都可以读取和写入这个文件了。
如要删除用户对readme.txt文件的读写权限,则可使用chmod命令来取消读取和写入这两个权限。命令如下:
chmod go-rw readme.txt
通过输入go-rw参数,告诉系统删除文件readme.txt中组群和其他人的读取和写入权限。再次通过 ls -1命令列出的结果如下:
-rw------- 1 winda winda 39 3月 11 12:04 readme.txt
综上所述,当想用chmod命令来改变权限时,就把它们当做速记符号来记忆,因为实际要做的只是记住几个符号而已。文件的用户身份主要有如下几类。
u:拥有文件的用户(所有者)。
g:所有者所在的组群。
o:其他人(不是所有者或所有者的组群)。
a:每个人或全部(u、g、和o)。
用户所具有的文件访问权限类型如下。
r:读取权。
w:写入权。
x:执行权。
文件权限配置行为有如下几类。
+:添加权限。
:删除权限。
=:使它成为唯一权限。
现在再来练习一下,如果要删除用户对readme.txt文件的所有权限,则命令如下:
chmod a-rwx readme.txt
这样所有用户都不能进行读取或其他任何操作了,读者可以测试一下看是否还能够使用cat readme.txt命令来读取这个文件,结果返回如下提示:
cat: readme.txt: Permission denied # 显示权限禁止
但要注意,虽然删除了所有用户对该文件的权限,包括你自己的,但是由于这个文件属于你,你可以随时使用以下命令把它的权限改回来。命令如下:
chmod u+rw readme.txt
这时再使用cat readme.txt命令就可以读取这个文件了。
下面是几个可以用在chmod命令设置上的常用例子。
g+w:为组群添加写入权。
o-rwx:删除其他人的所有权限。
u+x:允许文件所有者执行这个文件。
a+rw:允许每个人读取并写入文件。
ug+r:允许所有者和组群读取文件。
g=rx:只允许组群读取和执行(不能写入)。
通过添加-R选项,就可以为整个目录树改变权限。
3.使用数字来改变权限
这里向读者介绍另一个改变权限的方法,一开始,它可能会显得有点复杂。
仍以前面介绍的那个readme.txt文件为例,它的原始权限如下:
-rw-rw-r-- 1 winda winda 39 8月 11 12:04 readme.txt
其实,前面介绍的每种权限设置都可以用一个数值来代表,那就是:
r = 4;w = 2;x = 1;- = 0
当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,就会得到一个总和为6的值:4(读取)+ 2(写入)= 6。
readme.txt文件的原始数字权限设置如下:
- (rw-) (rw-) (r--)
| | |
4+2+0 4+2+0 4+0+0
所有者的总和为6,组群的总和为6,其他人的总和为4,则这个权限设置读成664。
如果用户想改变readme.txt文件的权限,使自己组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉2就可以删除写入权限了。这样,这组数值就变成644了。要实现这些新设置,须键入以下命令:
chmod 644 readme.txt
现在,再列举一下这个文件的权限来校验以上配置所进行的改变。输入如下命令:
ls -l readme.txt
得到的权限输出结果应为:
-rw-r--r-- 1 winda winda 39 8月 11 12:04 readme.txt
现在,组群和其他人都没有了到文件readme.txt的写入权。要归还组群到文件的写入权,在第二组权限中加上w
(2)的值就可以了。命令如下:
chmod 664 readme.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):每个人都能够读取、写入和执行(再重申一次,这种权限设置可能会很危险)。
下面列举了一些对目录的常见设置。
drwx------(700):只有所有者能在目录中读取和写入。
drwxr-xr-x(755):每个人都能够读取目录,但是其中的内容却只能被所有者改变。
更多推荐
所有评论(0)