戏说 linux 文件权限

本贴最后更新于 1726 天前,其中的信息可能已经渤澥桑田

很尴尬的一件事,之前一直没有去了解权限这部分的知识。一直在裸奔的边缘试探,偶然的机会看了《linux 系统安全》这边书,顺便把这部分知识补上了。

linux 的权限分为 10 个标志位: ----------
image.png

文件标示位:

-
d 标示此物体是个目录
- 标示此物体是个文件

其他三个权限控制位:

  • r=4 #读
  • w=2 #写
  • x=1 #执行

举个栗子:

一个权限为 0755 的文件显示如下
-rwxr-xr-x

有些人好奇这个 0 是什么意思,这是表示 suid 和 guid 的东西

  • suid 意味着如果某个用户对属于自己的 shell 脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。
  • guid 则表示执行相应脚本的用户将具有该文件所属用户组中用户的权限

上诉例子设置了 suid,那么其他任何用户的权限都是 7
如果设置了 guid,那么任何用户的权限都是 5

如何设置 suid 和 guid:
设置 suid 就是把 0 变为 4
设置 guid 就把 0 变为 2,如果都设置那就是 6

一旦设置了这一位,一个 s 将出现在 x 位上。记住:在设置 suid 和 guid 的同时,相应的执行权限位必须要被设置

chmod 4777 xxx.sh  设置了suid
chmod 2777 xxx.sh  设置了guid
chmod 6777 xxx.sh  同时设置了suidguid
chmod 0777 xxx.sh  常规

附上一个对于 rwx 的说明图
image.png

最后理解起来也不是那么难,只是没有去做那件事情罢,和生活中的很多事情一样,你做和不做的结果肯定是不一样的,而且你去做了这件事肯定有收获。

补充:
其实权限还有一位,少说了。因为我都是把 selinux 关掉了的。
直到测试 ACL 的时候才发现,这个点表示的是存在“SELinux 的安全标签”!,如下图所示
image.png

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    926 引用 • 937 回帖
2 操作
yuanhenglizhen 在 2019-12-03 23:15:15 更新了该帖
yuanhenglizhen 在 2019-11-28 17:04:52 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • yuanhenglizhen

    嗯那本书 ,这个权限讲完了就是讲的 acl

  • 其他回帖
  • 还有一个 ACL 权限控制,那个运维多用户目录权限管理的时候挺有用的,红帽认证的时候还考到了。

    1 回复
  • btlinux

    大佬你好 换了个新号关注您

  • btlinux

    设置主目录组权限后 其下文件目录组权限归其用户组所有 --天下大事 为我所控

    1 回复
  • 查看全部回帖
yuanhenglizhen
笔落兴亡定三端之妙,墨写清白尽六艺之奥

推荐标签 标签

  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 619 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 137 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 510 回帖
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 634 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 714 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    26 引用 • 222 回帖 • 173 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 42 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 88 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 728 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 526 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 456 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 525 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 6 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 2 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 26 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 617 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 787 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 143 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 3 关注