Linux中samba的权限详解,活用三种权限 理解Samba的权限控制

在企业内网开发环境方面,文件服务器是一个非常重要的环节。在这当中,Samba服务器由于其权限控制的高度灵活性,在这里抚琴煮酒会进行一些列详细的说明。之前我们已经介绍了Samba服务器一些入门和基本的更换用户、端口监听、列表控制等技巧,今天这篇文章将会着重介绍Samba服务器中如何灵活利用Suid、Sgid、Sticky三种权限的作用。

作者简介:余洪春,网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。

很多人都很奇怪,为什么我们需要学习这三种权限?在实际工作中我们发现,这些特殊权限让Linux的权限理解,尤其是samba显得极为困难,但又的确有使用的必要。本文试图用浅显的讲解,让大家能充分理解这三种权限的作用。理解了它们,就可以更方便的理解samba的权限控制。

首先需要提醒大家注意的是,samba的权限由两方面构成:一是目录本身的权限,二是samba的配置权限。最终权限定义是两者的最小交集。

OK,我们接着来理解这三种权限:

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

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

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

权限标志通过三个“位”来定义,分别是:

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

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

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

三个权限的特点

Sticky(范例:/tmp目录)

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

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

③小写表示能执行,大写表示不能执行

Suid(范例:/usr/bin/passwd目录)

①suid只能应用在二进制文件中

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

③suid只能应用在文件的拥有人上

④小写表示能执行,大写表示不能执行

Sgid(应用环境为用于一组开发人员共用资源,保证安全)

①sgid既可以应用在文件上,也可以应用在目录上

②当sgid应用在目录上时,任何人在该目录中建立健全的文件和目录的拥有者属于目录所属组

③应用在拥有组上

④sgid应用在文件上时,任何人在执行该文件时,临时拥有该文件所属组权限

⑤小写表示可执行,大写反之。

如何操作这些标志

操作这些标志与操作文件权限的命令是一样的, 都是 chmod。有两种方法来操作:

① chmod u+s temp -- 为temp文件加上setuid标志。 (setuid 只对文件有效)

chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 对目录和文件有效)

chmod o+t temp   -- 为temp文件加上sticky标志 (sticky只对文件有效)

② 采用八进制方式。对一般文件通过三组八进制数字来置标志,如 666,777,644等。如果设置这些特殊标志,则在这组数字之外外加一组八进制数字,如4666,2777等。这一组八进制数字三位的意义如下,

abc

a - setuid位。如果该位为1,则表示设置setuid

b - setgid位。如果该位为1,则表示设置setgid

c - sticky位。如果该位为1,则表示设置sticky

我习惯用第一种方法来做,但许多时候文件的权限表示都是用数字为执行;所以,建议两种方法都要掌握熟悉。

设置完这些标志后, 可以用 ls -l 来查看。 如果有这些标志,则会在原来的执行标志位置上显示。 如

rwsrw-r-- 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

那么原来的执行标志x到哪里去了呢?系统是这样规定的,如果本来在该位上有x,则这些特殊标志显示为小写字母 (s, s, t)。否则, 显示为大写字母 (S, S, T)

这三个权限的数字位可以这么理解,这是我的理解和记忆参考法,仅供大家参考学习

[root@server3 test]# 1 1 1

[root@server3 test]# rws rws rwt

[root@server3 test]#

[root@server3 test]# SUID SGID Sticky

所以,可以得出

chmod 4777是设sid

chmod 2777是设置gid

chmod 1777是设sticky

最后,介绍两个常用操作。

常用操作

找出所有危险的目录(设置目录所有人可读写却没有设置sticky位的目录)

find / -perm -0007 -type d

找出所有设置了suid的文件

find / -perm -4000 -type f

本文来源:51CTO

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

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

相关文章

安卓基础01

安卓基础01SDK System images 这是在创建模拟器时需要的system image,也就是在创建模拟器时CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/system-images文件夹下即可, 如果没有 system-im…

C++存储区域基础概念详解

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 以下详解来自: http://blog.163.com/zb_075/blog/static/3734032820115110…

创建、修改、删除表总结

一、创建表 CREATE TABLE <表名> &#xff08;<列名><数据类型>[列级完整性约束条件] [&#xff0c;<列名> <数据类型>[列级完整性约束条件]] … [&#xff0c;表级完整性约束条件]&#xff09;&#xff1b; 如果完整性约束条件涉及到该表的多个…

linux 编译查看链接库详情,Linux环境下的编译,链接与库的使用

链接参数控制链接器中提供了-dn -dy 参数来控制使用的是动态库还是静态库&#xff0c;-dn表示后面使用的是静态库&#xff0c;-dy表示使用的是动态库例:g -Lpath -Wl,-dn -lx -Wl,-dy -lpthread 这样如果在path路径下有libx.so和libx.a这个时候只会用到 libx.a.注意在最后的地…

在C++中用虚函数的作用是什么? 为什么要用到虚函数?

***************************************************更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com***************************************************虚函数联系到多态&#xff0c;多态联系到继承。所以本文中都是在继承层次上做文章。没了继…

mysql 主主互备实现

今天星期天&#xff0c;么事就写个MYSQL的主主架构的博客&#xff0c;原理如下图&#xff0c;不是我画的网上找的。主机作用操作系统mysql版本对应IPvip数据库mysqlA(主)centos6.4mysql 5.5.48192.168.48.129192.168.48.126mysqlB(备)centos6.4mysql 5.5.48192.168.48.132一&am…

Linux Deepin 版本大全,Deepin下载-Deepin linuxv20.0 官方版下载-6188手游网

Deepin linux安装准备一&#xff1a;为 Deepin 留出硬盘空间以便安装。1.打开磁盘管理(Windows 徽标上右键单击&#xff0c;选择磁盘管理)。2.选中一个分区(空闲空间大于 30G)&#xff0c;我选择的是 C 盘&#xff0c;因为是固态硬盘所以安装启动会快很多。磁盘 1 的 200G 分区…

动手实践 Linux VLAN - 每天5分钟玩转 OpenStack(13)

本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces&#xff0c;配置 eth0.10、brvlan10、eth0.20 和 brvlan20。 下面用 vmdiff 展示了对 /etc/network/interfaces 的修改 重启宿主机&#xff0c;ifconfig 各个网络接口 用 brct…

Socket的3次握手链接与4次断开握手

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 连接握手&#xff1a; 1.客户端发送建立连接请求 &#xff08;发送请求&#xff09;2.…

Linux桌面需要强制访问控制,RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...

RHCSA 认证&#xff1a;SELinux 精要和控制文件系统的访问尽管作为第一级别的权限和访问控制机制是必要的&#xff0c;但它们同样有一些局限&#xff0c;而这些局限则可以由安全增强 Linux(Security Enhanced Linux&#xff0c;简称为 SELinux)来处理。这些局限的一种情形是&am…

使用canvas实现擦玻璃效果

体验效果:http://hovertree.com/texiao/html5/25/效果图&#xff1a;代码如下&#xff1a; <!DOCTYPE html> <html> <head lang"zh"> <meta name"viewport" content"initial-scale1.0, maximum-scale1.0, user-scalableno, widt…

如何计算时间复杂度

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 求解算法的时间复杂度的具体步骤是&#xff1a; ⑴ 找出算法中的基本语句&#xff1b;…

linux显示系统信息软件下载,linux查看系统信息软件安装信息命令学习笔记

查看LINUX安装版本[rootlocalhost etc]# unameLinux[rootlocalhost etc]# uname -aLinux localhost.localdomain 2.6.32-279.11.1.el6.i686 #1 SMP Tue Oct 16 14:40:53 UTC 2012 i686 i686 i386 GNU/Linux[rootlocalhost etc]# cat /proc/versionLinux version 2.6.32-279.11.…

Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路

2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 647 Solved: 348[Submit][Status][Discuss]Description “我要成为魔法少女&#xff01;” “那么&#xff0c;以灵魂为代价&#xff0c;你希望得到什么&#xff1f;” “我要将有关魔法和奇…

[转]opencv学习资料

转自&#xff1a;http://blog.csdn.net/poem_qianmo/article/details/20537737 1&#xff1a;Mat imread(const string& filename, intflags1 ); eg: Mat image0imread("dota.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);//载入最真实的图像 ge1i…

linux servlet 乱码问题,Servlet一次乱码排查后的总结

由来在写一个小小的表单提交功能的时候&#xff0c;出现了乱码&#xff0c;很奇怪request上来的参数全部是乱码&#xff0c;而从数据库查询出来的中文显示到页面正常&#xff0c;锁定肯定是request对象那里出了问题。后来经过排查&#xff0c;发现是我封装的框架中出了问题&…

C/C++回调函数

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 对于很多初学者来说&#xff0c;往往觉得回调函数很神秘&#xff0c;很想知道回调函数…

Linux 命令[2]:mkdir

make directories mkdir -p [目录名] -p 递归创建 [rootlocalhost ~]# mkdir -p test [rootlocalhost ~]# ls anaconda-ks.cfg install.log install.log.syslog test 当然只创建一个目录 -p 是可以省略的 注&#xff1a;如果创建多级目录没有 -p 会报错 如&#xff1a; [roo…

jQuery动态设置样式List item

前段时间&#xff0c;Insus.NET有修改一个功能《激活当前视图菜单高亮呈现》http://www.cnblogs.com/insus/p/5287093.html 今天Insus.NET想改用另外一个方法来实现&#xff0c;使用jQuery。在ASP.NET MVC 环境实现&#xff1a; 代码&#xff1a; <ul><li><a hr…

linux telnet 权限,允许telnet 通过root用户进行访问

允许telnet 通过root用户进行访问RHEL6:[rootclovem ~]# yum install telnet-server -y //安装telnet服务端[rootclovem ~]# cat /etc/xinetd.d/telnet //开启telnet的托管服务# default: on# description: The telnet server serves telnet sessions; it uses \#unencrypt…