Linux下的高级权限文件控制

在企业内网的开发环境方面,文件服务器是一个非常重要的环节。其中,Samba服务器由于其权限控制的高度灵活性,最初学习时确实会让大家感到很迷惑,但我们可以先搭建一些简单的案例来掌握其语法。本节主要是介绍Linux下的高级权限suid、sgid、sticky三种权限的特点。

  很多人都很奇怪,为什么我们需要学习这三种权限呢?因为在实际工作中我们发现,如果不了解这些特殊权限会让我们对Linux权限的理解(尤其是加上Samba权限后)尤为困难,所以我们必须要学习并了解它们。下面试图用浅显的讲解,让大家能充分理解这三种权限的作用。理解了它们,再理解Samba的权限控制就更容易了。

  注意 Samba的权限由两方面构成:

  一是目录本身的权限;二是Samba的配置权限。最终权限的定义是两者的最小交集。

  我们接着来理解这3种权限:

  1)一个文件都有一个所有者,表示该文件是谁创建的。

  2)如果同时该文件还有一个组编号,则表示该文件所属的组一般为文件所有者所属的组。

  3)如果是一个可执行文件,那么在执行时,一般该文件只拥有调用该文件的用户所具有的权限。

  权限标志通过以下3个“位”来定义。

  setuid:设置使文件在执行阶段具有文件所有者的权限。比如/usr/bin/passwd,如果是一般用户执行该文件,则在执行过程中,用户通过该文件可以获得root权限,从而可以更改用户的密码。

  setgid:该权限只对目录有效。目录被设置该权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

  sticky:该位可以理解为防删除位。一个文件是否可以被某用户删除,主要取决于该文件所属的组是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件。如果希望用户能够添加文件但同时又不删除文件,则可以对文件使用sticky bit位。设置该位后,就算用户对目录具有写权限也不能删除该文件。

  下面介绍一下三种权限的特点。

  (1)sticky的特点

  sticky只能应用在目录上,并且是应用在其他人的目录上。

  只有root和文件的拥有者才能删除该文件。

  小写s表示能执行,大写S表示不能执行。

  它的其他特点大家可以参考/tmp目录。

  (2)setuid的特点

  setuid只能应用在二进制文件中。

  当一个文件应用了setuid,那么任何人在执行该命令的时候就能临时拥有该文件拥有人的权限。

  setuid只能应用在文件的拥有者上。

  小写s表示能执行,大写表示S不能执行。

  它的其他特点大家可以参考/usr/bin/passwd目录。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-03 05:11:09

Linux下的高级权限文件控制的相关文章

Linux 下目录文件权限(命令)的查看和修改_Linux

Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

Linux下文件与权限的设定

所谓的文件权限,是指对文件的访问权限,包括对文件的读.写.删除.执行等,在linux下,每个用户都具有不同的权限,普通用户只能在自己的主目录下进行写操作,而在主目录之外,普通用户只能进行查找.读取操作,如何处理好文件权限和用户之间的关系,是本节讲述的重点. 一 查看文件的权限属性 使用ls命令就可以查看文件的以及目录的权限信息,不带任何参数的ls命令只显示文件名称,通过"ls –al"可以显示文件或者目录的权限信息,看下面的输出: [root@localhost oracle]# ls

Linux下SFTP用户权限设置条件及实现命令_Linux

众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的,今天的教程就是教大家进行SFTP用户权限设置. 必要条件: 你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成. 如何查看自己服务器上的ssh版本?大家可以尝试以下命令: $ ssh -V 具体实施步骤: 1. 我们需要创建一个用户组,专门用于sftp用户 $ groupadd sftpusers 2. 我们创建一个用户test $ u

Linux下的文件权限设置修改详解

我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多.我们先介绍几个简单的,例如:用户组.拥有者.各种身份的权限等等. • chgrp:改变文件所属用户组 . • chown:改变文件拥有者. • chmod:改变文件的属性.SUID等特性. 更改所属用户组, chgrp 改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写.这样就很好记

Linux下的文件权限相关总结

• chgrp:改变文件所属用户组 . • chown:改变文件拥有者. • chmod:改变文件的属性.SUID等特性. 更改所属用户组, chgrp 改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写.这样就很好记了.不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误. 假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /

centos-Linux 下 apache无权限访问

问题描述 Linux 下 apache无权限访问 Forbidden You don't have permission to access /b.html on this server.Apache/2.2.15 (CentOS) Server at 192.168.1.104 Port 80 解决方案 用户权限不对吧.还root呢 解决方案二: chmod 修改文件权限

在linux下配置nexus后启动出错

问题描述 在linux下配置nexus后启动出错 Running Nexus OSS... wrapper | --> Wrapper Started as Console wrapper | Launching a JVM... wrapper | JVM exited while loading the application. jvm 1 | Exception in thread "main" java.lang.UnsupportedClassVersionError:

《Linux 高级程序设计(第三版)》——第2章 Linux下C语言开发工具 2.1 常用编辑工具

第2章 Linux下C语言开发工具 Linux 高级程序设计(第三版) Linux操作系统绝大多数的内核代码都是由C语言编写,因此,在Linux下的应用程序,特别是需要与内核进行交互的程序一般都是由C语言编写的,C++程序并不多见,例如驱动开发几乎都是由C语言编写的.因此,本书所有内容都立足于Linux下的C程序开发.本章主要介绍Linux下进行C语言程序开发所必备的工具. 本章第1节主要介绍Linux环境下常用的开发工具,包括常用的编辑器.这些编辑器类似于Windows平台下的记事本和Word

Linux环境下的高级隐藏技术_unix linux

    摘要:本文深入分析了Linux环境下文件.进程及模块的高级隐藏技术,其中包括:Linux可卸载模块编程技术.修改内存映象直接对系统调用进行修改技术,通过虚拟文件系统proc隐藏特定进程的技术. 隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻击者成功侵入一个系统后,有效隐藏攻击者的文件.进程及其加载的模块变得尤为重要.本文将讨论Linux系统中文件.进程及模块的高级隐藏技术,这些技术有的已经被广泛应用到各种后门或安全检测程序之中,而有一些则刚刚起步,仍然处在讨论阶段,应用