前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >777 意味着什么?

777 意味着什么?

作者头像
雪梦科技
修改2020-05-27 12:22:18
1.8K0
修改2020-05-27 12:22:18
举报
文章被收录于专栏:ITCoderITCoder

本文最先发布在: https://cloud.tencent.com/developer/article/1632347

假如你正在尝试解决你的网络服务器上的权限问题,并且发现网上的信息提示,说,你需要对网页目录递归执行chmod 777命令。在做这件事情之前,确保你能够理解chmod -R 777在做什么,并且为什么你永远不要将权限设置为 777

本文讲解了基本的 Linux 权限模型,并且这些权限的数字是什么意思?

一、理解 Linux 文件权限

在 Linux 中,对文件的访问权限由操作系统使用权限,属性和归属来控制。理解 Linux 文件系统权限模型允许你严格限制文件和文件夹的访问权限,仅仅允许授权用户和 进程可以访问,确保你的系统更安全。

每个文件都被一个用户和用户组所拥有,并且给三类不同的用户设置了权限:

  • 文件所有者
  • 文件所有者归属的用户组
  • 其他人(所有人)

有三种不同的文件权限,可以应用给每一个用户类别,并且允许你指定哪一个用户被允许读取文件,写文件和执行文件。同样的权限属性,应用到文件和文件夹上有不同的意思:

  • 读权限
    • 文件可读。例如,当设置读权限的时候,用户可以使用一个文件编辑器来打开文件。
    • 文件夹内容可以被查看。用户可以使用ls命令来列出文件夹下的文件。
  • 写权限
    • 文件可以被修改
    • 文件夹内容可以被修改。用户可以创建新文件,删除已经存在的文件,移动文件,重命名文件…等
  • 执行权限
    • 文件可以被执行
    • 文件夹可以通过cd命令切换进去

使用ls命令可以查看文件权限。示例如下:

代码语言:javascript
复制
ls -l filename.txt
代码语言:javascript
复制
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

第一个字符显示文件类型。它可以是正常的文件(-),文件夹(d),一个链接(l),或者其他任何类型的文件。

后面九个字符表示文件权限,每三个字符一组。第一组显示用户所有者的权限,第二个显示文件所有者归属的用户组的权限,最后一组显示每一个其他人的权限。

二、权限数字

文件权限可以使用数字或者字符格式。在本文中,我们集中讲讲数字格式。

权限数字由三个或者四个数字组成,取值从0到7。

当设置三组数字时,第一组数字表示文件所有者的权限,第二组是文件归属用户组的,最后一组是其他人的。

读,写,执行权限由下面的数字取值:

  • r (读) = 4
  • w (写) = 2
  • x (执行) = 1
  • 无权限 = 0

指定用户类别的这个数字权限可以是权限的取值之和。

每个权限的数字可以是4,2,1之和,以及 0:

  • 0 (0+0+0) – 无权限
  • 1 (0+0+1) – 仅仅执行权限
  • 2 (0+2+0) – 仅仅写权限
  • 3 (0+2+1) – 写和执行权限
  • 4 (4+0+0) – 仅仅读权限
  • 5 (4+0+1) – 读和执行权限
  • 6 (4+2+0) – 读写权限
  • 7 (4+2+1) – 读写和执行权限

例如,如果权限数字被设置为750,它意味着文件所有者拥有读写和执行权限,文件归属用户组拥有读和执行权限,其他用户没有权限:

  • 文件所有者: rwx=4+2+1=7
  • 文件归属用户组: r-x=4+0+1=5
  • 其他人: r-x=0+0+0=0

当4个数字被使用时,意思如下:

  • setuid=4
  • setgid=2
  • sticky=1
  • no changes = 0

下面一组三个数字也是同样的意义。如果第一个数字是0,可以忽略,权限取后面的3个数字。数字模式0755755是一样的。

想要以数字形式,查看文件权限,使用stat命令:

代码语言:javascript
复制
stat -c "%a" filename
代码语言:javascript
复制
644

三、永远不要使用 777

设置 777 权限意味着文件或者文件夹可以被所有用户读写,执行,这可能导致巨大的安全风险。

例如,如果你将/var/www文件夹下的文件和子目录递归设置为777,任何用户都将可以创建,删除或者修改文件夹中的文件。

如果你在你的文件服务器中遇到权限问题,千万不要递归设置它们的权限文件777,修改它们的归属为运行应用的用户,并且设置文件的权限为644,文件夹的权限为755

文件归属可以使用chown命令来修改,文件夹权限可以使用chmod来修改。

比如说你在你的服务器上以用户 “linuxize”运行一个 PHP 应用。想要设置正确的权限,运行:

代码语言:javascript
复制
chown -R linuxize: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

仅仅 root,文件所有者,或者有 sudo 权限的用户可以修改文件权限。使用chmod时,需要格外小心,特别是递归修改权限的时候。

四、总结

如果你正在管理一个 Linux 系统,了解 Linux 权限如何运作是非常重要的。

你永远不要对文件和文件夹设置777(rwxrwxrwx)权限。777意味着所有人都可以对那些文件做任何事情。

如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年05月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、理解 Linux 文件权限
  • 二、权限数字
  • 三、永远不要使用 777
  • 四、总结
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档