前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用chmod修改文件权限

使用chmod修改文件权限

作者头像
魔法少女伊莉雅
发布2018-09-04 14:31:45
3.8K0
发布2018-09-04 14:31:45

类Unix系统,包括在Linode平台上运行的Linux系统,具有非常强大的访问控制系统,允许系统管理员有效地配置多个用户的访问权限,而无需给予每个用户所有访问权限。 chmod命令是修改这些文件权限的最佳的和最简单的方法。

该指南简要概述了文件权限和命令的操作chmod。如果您觉得本指南有帮助,请参阅我们的基本管理实践指南以及Linux用户和组指南

如何使用chmod

在本指南中,chmod是指由GNU项目提供的最新版本。默认情况下,chmod包含在Linode提供的所有系统镜像中,并且作为几乎所有基于Linux的操作系统发行版中软件包的最基本的一部分。

Linux文件权限基础知识

类Unix系统上的所有文件系统对象都有三种主要类型的权限:读取,写入和执行。权限授予三个可能的类:用户,用户组和所有系统用户。

要查看一组文件的文件权限,请使用:

代码语言:javascript
复制
ls -lha

在输出的第一列中,有10个字符表示权限位。要了解它们之所以被称为权限位的原因,请参阅下面的八进制表示法部分。

代码语言:javascript
复制
drwxr-xr-x 2 user group       4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 user group       8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 user group       4.0K 2009-08-13 10:16 team.docs

理解本专栏含义的一种方法是将这些位分成组。

文件类型

用户

全局

d 目录

rwx

r-x

r-x

- 常规文件

rw-

r--

r--

l 符号链接

rwx

rwx

rwx

第一个字符表示文件的类型。三个一组中的剩余九位分别表示用户,组和全局的权限。各个代表含义如下:

  • r读取
  • w写入
  • x执行

请注意,符号链接所针对的文件的访问权限由目标文件控制,而不是链接对象的控制。还有其他文件权限可以控制文件的其他权限。

chmod命令语法和选项

chmod命令的格式为:

代码语言:javascript
复制
chmod [who][+,-,=][permissions] filename

请看以下chmod命令:

代码语言:javascript
复制
chmod g+w ~/group-project.txt

这将授予所有拥有文件~/group-project.txt的用户组的所有成员对该文件的写入权限。更改目标用户权限的其他选项包括:

单词

含义

u

用户

g

o

其他

a

所有

+授予权限,而-取消权限。复制权限也可行:

代码语言:javascript
复制
chmod g=u ~/group-project.txt

该参数g=u表示授予组与用户相同的权限。

可以通过用逗号分隔来为多个用户分配不同的权限,如下例所示:

代码语言:javascript
复制
chmod g+w,o-rw,a+x ~/group-project-files/

这会向用户组成员添加写入权限,并从系统的“其他”用户中删除读写权限。最后,a+x将执行权限添加到所有类。该值也可以为+x。如果未指定类,则权限将被添加到所有类或者从所有类移除。

在该表示法中,文件的所有者被称为user(例如u+x)。

代码语言:javascript
复制
chmod -R +w,g=rw,o-rw, ~/group-project-files/

-R选项会将修改应用于指定的目录及其所有内容。

如何使用八进制表示法表示文件权限

设置权限的另一种方法是通过八进制表示法。

以下代码效果与chmod u=rwx,go=rx相同。

代码语言:javascript
复制
chmod 750 ~/group-project.txt

该文件的权限是- rwx r-x ---

忽略第一个比特,每个被-占用的比特可以被替换为0rwx表示为1。结果转换为:

代码语言:javascript
复制
111 101 000

这称为八进制表示法,因为二进制数通过使用数字0到7转换为base-8:

二进制

八进制

权限

000

0

-

001

1

-X

010

2

-W-

011

3

-wx

100

4

R-

101

5

RX

110

6

RW-

111

7

RWX

每个数字独立于其他两个数字。因此,750表示当前用户可以在组和其他人无法写入时进行读取,写入和执行。

744,这是一个典型的默认权限,允许所有者读取,写入和执行,以及组和所有用户读取。

两种表示法都是等效的,您可以选择使用任意一种表单更清楚地表达您的权限需求。

使文件可执行

以下示例更改了文件权限,使任何用户都可以执行文件“〜/ group-project.py”:

代码语言:javascript
复制
chmod +x ~/group-project.py

恢复默认文件权限

Unix系统上文件的默认权限通常是600644。权限600指所有者对文件具有完全读写权限,而其他用户无权访问该文件。权限644指文件所有者具有读写权限,而系统上的组成员和其他用户只具有读取权限。

执行以下示例之一以恢复这些“默认”权限:

代码语言:javascript
复制
chmod 600 ~/roster.txt
chmod 644 ~/gigs.txt

对于可执行文件,700755600644除了在执行权限方面其余均相同。

执行以下示例之一来恢复这些“默认”可执行权限:

代码语言:javascript
复制
chmod 700 ~/generate-notes.py
chmod 755 ~/regenerate-notes.py

限制文件访问:删除所有组和全局权限

在许多情况下,管理员和用户应限制对文件的访问,尤其是包含密码和其他敏感信息的文件。msmtp和Fetchmail(~/.msmtprc~/.fetchmailrc)的配置文件是两个常见的示例。

您可以使用以下任意一种命令删除对这些文件的所有权限:

代码语言:javascript
复制
chmod 600 .msmtprc
chmod g-rwx,o-rwx .fetchmail

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些资源是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或时效性。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用chmod
    • Linux文件权限基础知识
      • chmod命令语法和选项
        • 如何使用八进制表示法表示文件权限
        • 使文件可执行
        • 恢复默认文件权限
        • 限制文件访问:删除所有组和全局权限
        • 更多信息
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档