专栏首页使用chmod修改文件权限

使用chmod修改文件权限

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

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

如何使用chmod

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

Linux文件权限基础知识

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

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

ls -lha

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

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命令的格式为:

chmod [who][+,-,=][permissions] filename

请看以下chmod命令:

chmod g+w ~/group-project.txt

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

单词

含义

u

用户

g

o

其他

a

所有

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

chmod g=u ~/group-project.txt

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

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

chmod g+w,o-rw,a+x ~/group-project-files/

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

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

chmod -R +w,g=rw,o-rw, ~/group-project-files/

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

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

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

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

chmod 750 ~/group-project.txt

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

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

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”:

chmod +x ~/group-project.py

恢复默认文件权限

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

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

chmod 600 ~/roster.txt
chmod 644 ~/gigs.txt

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

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

chmod 700 ~/generate-notes.py
chmod 755 ~/regenerate-notes.py

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

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

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

chmod 600 .msmtprc
chmod g-rwx,o-rwx .fetchmail

更多信息

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

本文的版权归 魔法少女伊莉雅 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用MTR诊断网络问题

    MTR是一个功能强大的工具,使管理员能够诊断和隔离网络错误,并向上游提供商提供网络状态报告。MTR表示的演进traceroute通过提供更大的数据样本,好像增强...

    魔法少女伊莉雅
  • 区块链:我们尚未准备好的革命

    想象一下,你要和一个不信任的陌生人进行交易;想象一下,你不需要信任你的银行就在那里存款;想象一下,你不需要信任你的政府却知道他是绝对公正公平的。

    魔法少女伊莉雅
  • 使用Logwatch查看系统日志

    Logwatch是一个日志解析程序,可以分析并生成有关系统活动的每日报告。Logwatch不提供实时警报,而是创建系统运行状态的摘要,以便于查看。更高级的用户还...

    魔法少女伊莉雅
  • centos 学习笔记--文件处理命令

    2012-2-4 文件处理命令:cat 命令英文原意: concateate and display files 命令所在路径:/bin/cat 执行权限...

    用户1539362
  • Linux中的普通命令如何以管理员身份运行

    一个文件都有一个所有者, 表示该文件是谁创建的。同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组。如果是一个可执行文件, 那么在执...

    大江小浪
  • Linux系统(和mac系统)chmod修改权限总结

    mcq
  • 让/etc/profile文件修改后立即生效

    让/etc/profile文件修改后立即生效 方法1: 让/etc/profile文件修改后立即生效 ,可以使用如下命令:  # .  /etc/profile...

    Ryan-Miao
  • ZOJ 3209 Treasure Map(精确覆盖)

    Treasure Map ---- Time Limit: 2 Seconds      Memory Limit: 32768 KB ---- Your bo...

    ShenduCC
  • C++创建一个名为Ellipse的椭圆类--练习

    Enterprise_
  • BZOJ3527: [Zjoi2014]力(FFT)

    那么\(E_j = \sum_{i = 1}^{j - 1} q_i (i - j)^2 - \sum_{i = j + 1}^n q_i (i - j)^2\...

    attack

扫码关注云+社区

领取腾讯云代金券