关于suid/guid

2024-03-10 04:58
文章标签 guid suid

本文主要是介绍关于suid/guid,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

设置文件权限位时我们一般忽略了suid/guid的存在,现在看看它们到底是怎么回事。

suid/guid是什么?

suid意味着如果A用户对属于他自己的shell脚本文件设置了这种权限,那么其他用户在执行这个脚本的时候就拥有了A用户的权限。所以,如果root用户对某一脚本设置了这一权限的话则其他用户执行该脚本的时候则拥有了root用户权限。同理,guid意味着执行相应脚本的用户则拥有了该文件所属用户组中用户的权限。

为什么使用suid/guid?

举个例子:要对数据库系统进行备份需要有系统管理权限,那么我可以写几个脚本,并设置了它们的guid,这样我指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。

有相当一些命令也设置了suid和guid。如果想找出这些命令,可以进入/bin或/sb in目录,执行下面的命令:

$ ls -l | grep '^...s'
上面的命令是用来查找suid文件的;

$ ls -l | grep '^...s..s'
上面的命令是用来查找suid和guid的。

如何设置suid/guid?

如果希望设置suid,那么就将相应的权限位之前的那一位设置为4;如果希望设置guid,那么就将相应的权限位之前的那一位设置为2;如果希望两者都置位,那么将相应的权限位之前的那一位设置为4+2。

一旦设置了这一位,一个s将出现在x的位置上。记住:在设置suid或guid的同时,相应的执行权限位必须要被设置。例如,如果希望设置guid,那么必须要让该用户组具有执行权限。

如果想要对文件login设置suid,它当前所具有的权限为rwx rw- r--(764),需要在使用chmod命令时在该权限数字的前面加上一个4,即chmod 4764,这将使该文件的权限变为rws rw-r--。

$ chmod 4764 login

还可以使用符号方式来设置suid/guid。如果某个文件具有这样的权限: rwx r-xr-x,那么可以这样设置其suid/guid:

chmod u+s <filename>
chmod u+g <filename>

640?wx_fmt=jpeg


这篇关于关于suid/guid的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/793122

相关文章

数据库中自增量字段和Guid字段的比较

据库中使用自增量字段与Guid字段主键的性能对比 1.概述:   在我们的数据库设计中,数据库的主键是必不可少的,主键的设计对整个数据库的设计影响很大.我就对自动增量字段与Guid字段的性能作一下对比,欢迎大家讨论. 2.简介:   1.自增量字段       自增量字段每次都会按顺序递增,可以保证在一个表里的主键不重复。除非超出了自增字段类型的最大值并从头递增,但这几乎不可

文件特殊权限: SUID, SGID, SBIT [Linux]

文件特殊权限: SUID, SGID, SBIT 我们前面一直提到关於文件的重要权限,那就是 rwx 这三个读、写、运行的权限。看看先: [root@www ~]# ls -ld /tmp ; ls -l /usr/bin/passwddrwxrwxrwt 7 root root 4096 Sep 27 18:23 /tmp-rwsr-xr-x 1 root root 22984 Ja

一种生成有序的GUID字符串的代码实现(TypeScript)

以下代码用于生成有序的GUID字符串。 使用方法为:new OrderedGUIDGenerator().NewGuid()即可生成根据时间排序的Guid字符串。 /*** 用于生成根据时间戳附加随机数确定的有序GUID值* 使用方法:var orderedGuid=new OrderedGUIDGenerator().NewGuid()*/export default class Or

openwrt su : must be suid to work properly

嵌入式文件系统一般用户执行 su root 切换根用户会提示错误 su: must be suid to work properly 是由于 busybox 的权限引起的,需要将 busybox 的权限改为 4755 。 而在 openwrt 中,直接修改 staging_dir/target-mipsel_24kec+dsp_glibc-2.21/root-ramips/bin/ 下的 bu

生成GUID的一个很不错的方法

function S4() {return (((1+Math.random())*0x10000)|0).toString(16).substring(1);}function guid() {return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());} 更多详情请点击  http://blog.sina.com.

.net 框架基础(三) 其他——随机数Random、Guid 结构体、常用类

总目录 C# 语法总目录 .net 框架基础 三 其他——随机数Random、Guid 结构体、常用类 随机数RandomGuid 结构体常用类Console类Environment 类 随机数Random Random能够生成类型为byte、integer或者double的伪随机数序列 Random r1 = new Random();Console.WriteL

GUID(GPT)分区表详解

保护MBR 保护MBR包含一个DOS分区表(LBA0),只包含一个类型值为0xEE的分区项,在小于2TB的磁盘上,大小为整个磁盘;在更大的磁盘上,它的大小固定为2TB。它的作用是阻止不能识别GPT分区的磁盘工具试图对其进行格式化等操作,所以该扇区被称为“保护MBR”。实际上,EFI根本不使用这个分区表。 EFI部分 EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、G

全球唯一名称字符串,GUID的生成使用

在工作的文档中出现了随机因子(Random Factor),不是我们通常使用的随机数srand,它最大的作用是避免随机相同 1,涉及API及结构 使用CoCreateGuid 函数即可。需要 objbase.h头文件。 原型: HRESULT CoCreateGuid( GUID * pguid ); 其中GUID结构: typedef struct _GUID { uns

Linux提权--本地环境变量文件配合 SUID

免责声明:本文仅做技术交流与学习... 目录 背景: 前提条件: 演示: 实战中如何操作? 探针发现: 背景: 环境变量提权--------> 背景: 管理员编译了程序,给予了程序管理员运行的方案, 攻击通过对程序的运行调试反编译等得到了程序的运行大概逻辑, 尝试对程序调用的环境变量进行复制后覆盖,导致的程序加载继承权限. 前提条件: ROOT 用户对某

js 方法产生GUID(转载)

function S4(){return(((1+Math.random())*0x10000)|0).toString(16).substring(1);}function guid(){return(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());} 通过此方法可实现产生一个GUID方式很简单,就是通过随机函数random