原标题:命令行快速提示:权限进阶 | Linux 中国

本部分介绍使用权限管理文件访问和共享的其他方法。

-- Paul W. Frields

前一篇文章。本部分介绍使用权限管理文件访问和共享的其他方法。它建立在前一篇文章中的知识和示例的基础上,所以如果你还没有阅读过那篇文章,请它。

符号与八进制

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表中这些权限使用符号模式显示在屏幕上。

每个集合都有 r、w 和 x 条目,表示特定用户(所有者、组成员或其他)是否可以读取、写入或执行该文件。但是还有另一种表达这些权限的方法:八进制模式。

你已经习惯了编号系统,它有十个不同的值(0 到 9)。另一方面,八进制系统有八个不同的值(0 到 7)。在表示权限时,八进制用作速记来显示 r、w 和 x 字段的值。将每个字段视为具有如下值:

◈ r = 4

◈ w = 2

◈ x = 1

现在,你可以使用单个八进制值表达任何组合。例如,读取和写入权限(但没有执行权限)的值为 6。读取和执行权限的值仅为 5。文件的 rwxr-xr-x 符号权限的八进制值为 755。

与符号值类似,你可以使用八进制值使用 命令设置文件权限。以下两个命令对文件设置相同的权限:

chmodu=rw,g=r,o=r myfile1

chmod644myfile1

特殊权限位

文件上还有几个特殊权限位。这些被称为 setuid(或 suid)、setgid(或 sgid),以及粘滞位sticky bit(或阻止删除位delete inhibit)。将此视为另一组八进制值:

◈ setuid = 4

◈ setgid = 2

◈ sticky = 1

除非该文件是可执行的,否则 setuid 位是被忽略的。如果是可执行的这种情况,则该文件(可能是应用程序或脚本)的运行就像拥有该文件的用户启动的一样。setuid 的一个很好的例子是 /bin/passwd 实用程序,它允许用户设置或更改密码。此实用程序必须能够写入到不允许普通用户更改的文件中(LCTT 译注:此处是指 /etc/passwd 和 /etc/shadow)。因此它需要精心编写,由 root 用户拥有,并具有 setuid 位,以便它可以更改密码相关文件。

setgid 位对于可执行文件的工作方式类似。该文件将使用拥有它的组的权限运行。但是,setgid 对于目录还有一个额外的用途。如果在具有 setgid 权限的目录中创建文件,则该文件的组所有者将设置为该目录的组所有者。

最后,虽然文件粘滞位没有意义会被忽略,但它对目录很有用。在目录上设置的粘滞位将阻止用户删除其他用户拥有的该目录中的文件。

在八进制模式下使用 设置这些位的方法是添加一个值前缀,例如 4755,可以将 setuid 添加到可执行文件中。在符号模式下,u 和 g 也可用于设置或删除 setuid 和 setgid,例如 u+s,g+s。粘滞位使用 o+t 设置。(其他的组合,如 o+s 或 u+t,是没有意义的,会被忽略。)

共享与特殊权限

回想一下前一篇文章中关于需要共享文件的财务团队的示例。可以想象,特殊权限位有助于更有效地解决问题。原来的解决方案只是创建了一个整个组可以写入的目录:

drwxrwx---.2root finance4096Jul615:35finance

此目录的一个问题是,finance 组成员的用户 dwayne 和 jill 可以删除彼此的文件。这对于共享空间来说不是最佳选择。它在某些情况下可能有用,但在处理财务记录时可能不会!

另一个问题是此目录中的文件可能无法真正共享,因为它们将由 dwayne 和 jill 的默认组拥有 - 很可能用户私有组也命名为 dwayne 和 jill,而不是 finance。

解决此问题的更好方法是在文件夹上设置 setgid 和粘滞位。这将做两件事:使文件夹中创建的文件自动归 finance 组所有,并防止 dwayne 和 jill 删除彼此的文件。下面这些命令中的任何一个都可以工作:

sudochmod3770finance

sudochmodu+rwx,g+rwxs,o+t finance

该文件的长列表现在显示了所应用的新特殊权限。粘滞位显示为 T 而不是 t,因为 finance 组之外的用户无法搜索该文件夹。

drwxrws--T.2root finance4096Jul615:35finance

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出返回搜狐,查看更多

责任编辑:

linux 权限提示信息,命令行快速提示:权限进阶 | Linux 中国相关推荐

  1. 设置字段权限_命令行快速提示:权限进阶

    (给Linux爱好者加星标,提升Linux技能) 编译:linux中国- Xingyu.Wang,作者:Paul W. Frields 前一篇文章介绍了 Fedora 系统上有关文件权限的一些基础知识 ...

  2. linux脚本求命令行上整数和,《Linux命令行与shell脚本编程大全》 第二十二章 学习札记...

    <Linux命令行与shell脚本编程大全> 第二十二章 学习笔记 第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系 ...

  3. windows测试linux带宽,linux下使用命令行测试网速 speedtest-cli,Linux带宽测试

    Speedtest.net提供了一个命令行工具 speedtest-cli 我们可以在Linux中使用speedtest-cli来测试宽带速度 speedtest-cli是由Python编写的轻量级L ...

  4. linux怎么滑动命令行窗口_如何在Linux命令行界面愉快进行性能测试

    本人在做性能测试的过程中,遇到一个问题,测试机选了一台Linux服务器,只有命令行界面.执行测试用例不是非常的灵活,有时候我需要改一两个参数添加一些日志,都需要重新打包部署,虽然自动化构建比较方便,但 ...

  5. 服务器2003添加共享文档权限,Windows2003使用命令行设置共享权限与安全权限心得...

    Windows2003使用命令行设置共享权限与安全权限心得 Windows2003安装计算机等级考试系统,按系统说明对考试服务器进行安装.在安装过程中,需在服务器上创建大量考试用户和考生文件夹,且需对 ...

  6. Windows2003使用命令行设置共享权限与安全权限心得

    Windows2003使用命令行设置共享权限与安全权限心得 需在服务器上创建大量考试用户和考生文件夹,且需对每个考生文件夹进行不同权限的设置. 由于用户和文件夹的数量较大,采用手工建立和添加的方式,将 ...

  7. 在Linux下执行一个文件时候提示“权限不够”的解决办法

    在Linux下执行一个文件时候提示"权限不够"的解决办法如下 转到那个文件的目录下面执行下面命令: chmod 777 filename

  8. linux文件权限对应数字,linux文件权限更改命令chmod及数字权限

    chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限. 更改文件权限的2种方式: 一 ...

  9. linux pushd 不起作用,Linux命令行导航提示:pushd和popd命令的基础

    在本系列的第一部分中,我们通过讨论cd- command的用法来关注Linux中的命令行导航方面. 还讨论了一些其他相关点/概念. 进一步讨论,在本文中,我们将讨论如何使用pushd和popd命令在L ...

最新文章

  1. IoT和AI如何让企业在疫情期间重启业务
  2. python学习:time、unixtime、string的转换
  3. 077_访问者的信息
  4. php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...
  5. 浅谈iPhone和iPad开发中的图标设置
  6. 实际编程题----CT扫描
  7. rocketmq怎么保证数据不会重复_阿里架构师亲授:Kafka和RocketMQ的消息复制实现的差异点在哪?...
  8. Hadoop组件之-HDFS(HA实现细节)
  9. SPSS描述性统计(图文+数据集)【SPSS 014期】
  10. 【数据分享】中国城市统计年鉴_2001-2021年
  11. 2018Android面试宝典
  12. js模板引擎template.js的使用
  13. PHP爬虫最全总结1
  14. bfs的算法的详解(代码版)
  15. 第70页的gtk+编程例子——快捷键
  16. 红与黑题解(深搜入门ing)
  17. 【Android】Android 中定义图片的资源文件
  18. ps2019布尔运算快捷键_ps你必须要知道的布尔运算
  19. asp毕业设计——基于asp+sqlserver的旅游网站设计与实现(毕业论文+程序源码)——旅游网站
  20. RTT简介及其简单应用

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 0674-21T财务管理 参考试题
  2. 【渝粤教育】电大中专电子商务网站建设与维护 (14)作业 题库
  3. mysql 热块_MySQL分布式集群之MyCAT(三)rule的分析【转】
  4. 计算机应用与软件是csci吗,计算机与信息技术学院
  5. mysql语句使用_Mysql基本使用语句
  6. mysql 注入 file load_Mysql注入中into outfile和load_file()总结
  7. 不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
  8. 篡改referer_HTTP_REFERER的用法及伪造
  9. linux终端lex程序运行,lex的简单使用
  10. 问题 1072: 汽水瓶