本文出自 “王达博客” 博客,转载请与作者联系!
作者已授权本博客转载
以下内容摘自笔者编著的《网管员必读——网络管理》(第2版)一书:
1 3 .3. 2 使用chmod命令改变权限
使用
chmod
命令可以改变权限。下面这个例子显示了如何使用
chmod
命令来改变
readme.txt
文件的权限。
假设下面是
readme.txt
文件的
初始权限设置:
-rw-rw-r-- 1 winda winda 39 8
月
11 12:04 readme.txt
如果是这个文件的所有者或者登录为根用户身份,则可以改变所有者、组群和其他人的权限。初始时,从上面的分析可以看出,这个
readme.txt
文件的所有者和组群可以读取和写入文件
(
rw-
)
,组群之外的任何人只能读取文件(
r--
)。
|
文件权限是一种安全措施。无论何时允许其他人读取、写入或执行文件,都在增加文件被篡改或删除的危险。作为一种基本原则,应该只给那些真正需要这些文件的人以读写权限。
|
在下面的例子中,想给每个人以写入
readme.txt
文件的权限,因此他们可以读取文件,在其中加注,并保存文件。这意味着必须改变文件权限中的
“
其他人
”
部分。
此时需要
在
shell
或终端
提示下
输入
:
chmod o+w readme.txt
o+w
命令参数告诉系统想给其他人写入文件
readme.txt
的权限。要查看结果,再次列出文件的细节。此时,这个文件
的用户访问权限就如下所示了(在第
3
列中多了一个
w
)
:
-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
命令来改变权限时,文件的用户身份主要有如下几类:
l
u
:拥有文件的用户(所有者);
l
g
:所有者所在的组群;
l
o
:其他人(不是所有者或所有者的组群);
l
a
:每个人或全部(
u
、
g
、和
o
)。
用户所具有的文件访问权限类型如下:
l
r
:读取权;
l
w
:写入权;
l
x
:执行权。
文件权限配置行为有如下几类:
l
+
:添加权限;
l
-
:删除权限;
l
=
:使它成为惟一权限。
从文件
readme.txt
中删除所有权限
(
包括每个人的权限
)的
命令如下:
chmod a
-rwx readme.txt
现在,来看看是否还能够使用
cat readme.txt
命令来读取这个文件,它所返回的输出应如下所示:
cat: readme.txt: Permission denied
删除所有的权限,包括自己的,会成功地锁住这个文件。但是由于这个文件属于用户,可以随时使用以下命令把它的权限改回来。命令如下:
chmod u+rw readme.txt
使用命令
cat readme.txt
来试试作为文件所有者是否还能够读取该文件。
这里是几个可以用在
chmod
命令设置上的常用例子:
l
g+w
:为组群添加写入权;
l
o-rwx
:删除其他人的所有权限;
l
u+x
:允许文件所有者执行这个文件;
l
a+rw
:允许每个人读取并写入文件;
l
ug+r
:允许所有者和组群读取文件;
l
g=rx
:只允许组群读取和执行(不能写入)。
最后,介绍一下恢复组群的权限的方法。命令如下:
chmod ug+x tigger
现在,如果用
ls -dl
命令检查一下,会发现只有其他人(
others
)被拒绝了到目录
tigger
的访问权。