关于suid/guid
2012-03-15 11:22
429 查看
设置文件权限位时我们一般忽略了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-x r-x,那么可以这样设置其suid/guid:
chmod u+s <filename>
chmod u+g <filename>
本文出自 “IT学徒” 博客,请务必保留此出处http://tengzhongfu88.blog.51cto.com/3144097/806485
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-x r-x,那么可以这样设置其suid/guid:
chmod u+s <filename>
chmod u+g <filename>
本文出自 “IT学徒” 博客,请务必保留此出处http://tengzhongfu88.blog.51cto.com/3144097/806485
相关文章推荐
- 关于suid/guid
- shell编程补充--关于suid/guid
- 关于UUID和GUID,教你如何使用JDK自带的UUID生成主键。
- LINUX中suid/guid指什么?
- 关于UNIX/Linux下SUID、SGID的解析
- 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
- 关于Java类中 SUID (serialVersionUID)的解释
- 关于Oracle Database 12.2 lsnrctl status中的几个servicename --是db的guid
- COM技术内幕--关于HRESULT、GUID、注册表及其他细节
- 关于SUID、SGID、Sticky。
- 关于 Guid类型在数据库可为null,而C#中Guid不能为空,造成指定转换无效的错误
- 关于UNIX和Linux系统下SUID、SGID的解析
- 关于UNIX和Linux系统下SUID、SGID的解析
- 关于UNIX和Linux系统下SUID、SGID的解析
- 关于 设备安装类GUID、设备接口类GUID
- 关于UNIX和Linux系统下SUID、SGID的解析
- 关于GUID生成函数的不同数据库间的支持
- 关于ASP.NET中的GUID
- 关于GUID,全局唯一标识符
- 【转】关于使用GUID和Identity做主键的一些思考