使用 chmod 命令来改变权限
在下面的例子中,你想给每个人以写入文件的权限,因此他们可以读取文件,在其中加注,并保存文件。这意味着你非得改变文件权限中的“其他人”部分不可了。
让我们先来看一看这个文件。在 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 中删除所有权限 — 包括每个人的权限。
chmod a-rwx 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 的访问权。
在下面的例子中,你想给每个人以写入文件的权限,因此他们可以读取文件,在其中加注,并保存文件。这意味着你非得改变文件权限中的“其他人”部分不可了。
让我们先来看一看这个文件。在 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 中删除所有权限 — 包括每个人的权限。
chmod a-rwx 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 的访问权。