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

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

3681767ab5836621ad2a64ebbb421bef.png

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

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

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

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

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx正确服务react-router应用

如今React应用普遍使用react-router作为路由管理,在开发端webpack自带的express服务器下运行和测试表现均正常,部署到线上的nginx服务器后,还需要对该应用在nginx的配置里作相应调整,否则浏览器将不能正常使用该应用,表…

linux多进程 段错误,关于段错误

一个月的时间,就为了解决一个问题,段错误运行环境:arm-linux模块:XML,为多线程,多socket的网络通信协议程序现象:XML在运行一段时间以后,出现段错误,运行的时间和出现问题…

解决checkbox与对应文字不对齐的问题

最近公司比较忙,所以一直在赶项目,很久没有更新博客了。 刚才在工作中又遇到了一个问题,下面我来分享一下吧(。・∀・)ノ゙ 问题所在我写了一个input,他的类型是checkbox&…

scala akka_使用Scala,Play和Akka连接到RabbitMQ(AMQP)

scala akka在本文中,我们将研究如何从Scala连接到RabbitMQ,以便可以从应用程序中支持AMQP协议。 在此示例中,我将使用Play Framework 2.0作为容器(有关更多信息,请参阅我在该主题上的其他文章 )在其中运行应…

linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...

本文系统Centos6.0;这里的***服务以pptpd为例;其中底层涉及到pptpdfreeradiusmysql认证;本文系真实案例;leader需求大多是这样的,节约成本还要达到所需要的效果;没办法,总的做个效果出来&#x…

POJ2503 Babelfish map或者hash_map

POJ2503 这是一道水题&#xff0c;用Map轻松AC。 不过&#xff0c;可以拿来测一下字符串散列&#xff0c; 毕竟&#xff0c;很多情况下map无法解决的映射问题需要用到字符串散列。 自己生成一个质数&#xff0c; 随便搞一下。 #include<iostream> #include<cstdio>…

使用JBoss EAP 7的HTTP / 2

就在几天前&#xff0c;新的JBoss EAP 7 ALPHA版本已经发布。 而且我已经写过关于如何开始使用它的博客。 一个非常有趣的部分是HTTP / 2支持&#xff0c;它已作为技术预览添加。 它由新的Web服务器Untertow提供。 HTTP / 2通过压缩头并在同一TCP连接上多路复用多个流来减少延迟…

linux树莓派 ssh密码,树莓派之SSH连接经验

打开SSH服务执行raspi-configsudo raspi-config选择InterfacingOptions选项&#xff0c;回车选择SSH&#xff0c;回车Windows下客户端推荐使用putty这个免费开源的SSH客户端。下载地址在红框处填入树莓派的IP地址&#xff0c;点击右下角的Open即可。不过&#xff0c;putty的默认…

linux嵌入式面试题合集,嵌入式linux面试题解析(一)——ARM部分二

嵌入式linux面试题解析(一)——ARM部分二1、描述一下嵌入式基于ROM的运行方式基于RAM的运行方式有什么区别。基于RAM的运行方式&#xff1a;需要把硬盘和其他介质的代码先加载到ram中&#xff0c;加载过程中一般有重定位的操作&#xff1b;基于ROM&#xff1a;没有上面的操作。…

Unity应用架构设计(1)—— MVVM 模式的设计和实施(Part 2)

MVVM回顾 经过上一篇文章的介绍&#xff0c;相信你对MVVM的设计思想有所了解。MVVM的核心思想就是解耦&#xff0c;View与ViewModel应该感受不到彼此的存在。 View只关心怎样渲染&#xff0c;而ViewModel只关心怎么处理逻辑&#xff0c;整个架构由数据进行驱动。不仅View与View…

apache camel_REST端点,可使用Apache Camel进行集成

apache camelREST是一种用于组织资源的体系结构样式&#xff0c;当应用于基于HTTP的服务时&#xff0c;REST可以构建无状态&#xff0c;分离的可伸缩服务。 HTTP方法&#xff0c;HTTP标头和mime类型都允许开发人员实现REST样式。 诸如Jersey和Fuse Services Framework&#xff…

Linux读取SSD的smart信息,使用smartmontools查看SSD的“秘密”信息

仍然担心看不到sm841中的温度吗&#xff1f;您是否仍对Toshiba Q pro看不见写入量和使用寿命值感到不安&#xff1f;为了查看M4 / 00的写入量&#xff0c;您是否仍在使用C300固件升级程序重新启动到纯DOS并麻烦地运行命令&#xff1f;想知道在协议级别上SSD出了什么问题吗&…

Linux查看系统信息的一些命令及查看已安装软件包的命令

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所…

5条Java记录规则

日志记录是一个关键因素&#xff0c;在软件开发过程中应始终将其考虑在内。 当生产中发生不良情况时&#xff0c;日志文件通常是我们进行故障分析的起点。 而且&#xff0c;通常&#xff0c;它们是我们掌握的唯一信息&#xff0c;可以了解发生了什么以及问题的根本原因。 正确…

linux 离线安装中文字库,centos7 离线安装字体fontconfig

起因&#xff1a;最近做了个flowable然而linux下乱码&#xff0c;发现需要安装字体包在线&#xff1a;直接 yum -y install fontconfig&#xff1b;yum -y install ttmkfdir&#xff1b;配置下即可。拓展&#xff1a;离线所需rpm包如何获取&#xff1f;百度不好找&#xff0c;找…

锁定机制和数据并发管理(笔记)

共享锁和排它锁 排它锁&#xff1a;当某一个会话正在更新某一行&#xff0c;为了防止其他会话修改这一行&#xff0c;这行会被锁定这种锁称为排他锁。被排他锁锁定的行仍然可以被其他会话读取。 共享锁&#xff1a;在一个表上放置共享锁的目的是为了防止其他会话获得这个表上的…

linux防火墙配置说明,Linux防火墙配置命令参数说明

规则操作参数说明&#xff1a;-A&#xff1a;在所选择的链末添加一条或更多规则&#xff1b;-D&#xff1a;从所选链中删除一条或更多规则。有两种方法&#xff1a;把被删除规则指定为链中的序号(第一条序号为1)&#xff0c;或者指定为要匹配的规则&#xff1b;-R&#xff1a;从…

【react.js + hooks】useGuide 创建用户引导视图

有的时候用户可能对网站上的一些操作流程感到困惑&#xff0c;这时候我们需要为用户创建引导视图。为了插入指引而专门去更改组件的渲染函数&#xff0c;显然是不合逻辑的&#xff0c;创建指引视图应该是一种对源代码低侵入的行为&#xff0c;我们可以遵循某一套约定&#xff0…

使用递归算法结合数据库解析成java树形结构

使用递归算法结合数据库解析成java树形结构 1、准备表结构及对应的表数据a、表结构&#xff1a; create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节点 ) b、表数据&#xff1a; insert into tb_tree (CID, CNAME, PID) values (1, 中国, 0);…

ug11 linux,UG11.0升级包MP02Win#Linux系统下载就上UG网

UG11.0软件又出升级包啦&#xff01;抽空可以为NX升级啦&#xff0c;从11.0发布到现在&#xff0c;近三个月了&#xff0c;每一次版本的更新&#xff0c;都会带来较多功能的改善&#xff0c;以及对错误BUG的有效处理&#xff0c;下图为升级后的UG11.0软件&#xff1b;UG11.0升级…