文件权限suid/guid/sticky
时间:2007-05-13 来源:ghbspecial
1、为什么要使用这种类型的脚本?
例如有几个着几个大型的数据库系统,对它们进行备份需要有系统管理权限。可以写几个脚本,并设置了它们的g u i d,这样就可以指定的一些用户来执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。
2、查找suid/guid命令
有相当一些U N I X命令也设置了s u i d和g u i d。如果想找出这些命令,可以进入/ b i n或/ s b i n目录,执行下面的命令:
例如有几个着几个大型的数据库系统,对它们进行备份需要有系统管理权限。可以写几个脚本,并设置了它们的g u i d,这样就可以指定的一些用户来执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。
2、查找suid/guid命令
有相当一些U N I X命令也设置了s u i d和g u i d。如果想找出这些命令,可以进入/ b i n或/ s b i n目录,执行下面的命令:
CODE:
[Copy to clipboard]
$ ls -l | grep '^...s'
上面的命令是用来查找s u i d文件的;
CODE:
[Copy to clipboard]
$ ls -l | grep '^...s..s'
上面的命令是用来查找s u i d和g u i d的。
3、设置UID
3、设置UID
CODE:
[Copy to clipboard]
设置s u i d:将相应的权限位之前的那一位设置为4;
设置g u i d:将相应的权限位之前的那一位设置为2;
两者都置位:将相应的权限位之前的那一位设置为4+2=6。 设置了这一位后x的位置将由s代替。
记住:在设置s u i d或g u i d的同时,相应的执行权限位必须要被设置。
例如,如果希望设置g u i d,那么必须要让该用户组具有执行权限。
如果想要对文件l o g i n[它当前所具有的权限为rwx rw- r-- (741)]设置s u i d,,可在使用c h m o d命令时在该权限数字的前面加上一个4,即chmod 4741,这将使该文件的权限变为r w s rw- r - -。
设置g u i d:将相应的权限位之前的那一位设置为2;
两者都置位:将相应的权限位之前的那一位设置为4+2=6。 设置了这一位后x的位置将由s代替。
记住:在设置s u i d或g u i d的同时,相应的执行权限位必须要被设置。
例如,如果希望设置g u i d,那么必须要让该用户组具有执行权限。
如果想要对文件l o g i n[它当前所具有的权限为rwx rw- r-- (741)]设置s u i d,,可在使用c h m o d命令时在该权限数字的前面加上一个4,即chmod 4741,这将使该文件的权限变为r w s rw- r - -。
CODE:
[Copy to clipboard]
$ chmod 4741 login
设置suid/guid的例子
CODE:
[Copy to clipboard]
命令 结果 含义
chmod 4755 rws r-x r- x 文件被设置了s u i d,文件属主具有读、写和执行的权限,其他用户具有读和执行的权限
chmod 6711 rws --s --x 文件被设置了s u i d和g u i d,文件属主具有读、写和执行的权限,其他用户具有执行的权限
chmod 4764 rws rw- r- - 文件被设置了s u i d,文件属主具有读、写和执行的权限,属组用户具有读和执行的权限,用户具有读权限
setuid标志出现在文件权限的u段,setgid标志出现在文件权限的g段,Sticky标志出现在文件权限的o段。这些标志都出现在各段的“执行”位上,其中setuid/setgid的标志为“s”,Sticky标志为“t”。
由于实际文件、目录的属主、权限各不相同,这些标志设置后,权限的实际综合效果可能会使这些设置无效,这时,setuid的标志由“s”变为“S”,setgid的标志由“s”变为“l”(小写“L”),Sticky的标志由“t”变为“T”。
setuid和setgid用于对位于公用目录中的可执行文件赋予使用者以等同于属主/属组的权限。
setgid还用来设置公用目录,以使在此目录中新创建的文件都具有同此目录的组别。
Sticky用于对位于公用目录中的文件进行保护。
3者综合使用,就可以有效地建立起一套共享机制,使符合条件的他人可以方便地使用别人放在公用目录中的可执行文件,而又确保不会因目录公用而造成他人随意地乱删。
chmod 4755 rws r-x r- x 文件被设置了s u i d,文件属主具有读、写和执行的权限,其他用户具有读和执行的权限
chmod 6711 rws --s --x 文件被设置了s u i d和g u i d,文件属主具有读、写和执行的权限,其他用户具有执行的权限
chmod 4764 rws rw- r- - 文件被设置了s u i d,文件属主具有读、写和执行的权限,属组用户具有读和执行的权限,用户具有读权限
setuid/setgid/Sticky,对应的权限数值依次为4000/2000/1000。
setuid标志出现在文件权限的u段,setgid标志出现在文件权限的g段,Sticky标志出现在文件权限的o段。这些标志都出现在各段的“执行”位上,其中setuid/setgid的标志为“s”,Sticky标志为“t”。
由于实际文件、目录的属主、权限各不相同,这些标志设置后,权限的实际综合效果可能会使这些设置无效,这时,setuid的标志由“s”变为“S”,setgid的标志由“s”变为“l”(小写“L”),Sticky的标志由“t”变为“T”。
setuid和setgid用于对位于公用目录中的可执行文件赋予使用者以等同于属主/属组的权限。
setgid还用来设置公用目录,以使在此目录中新创建的文件都具有同此目录的组别。
Sticky用于对位于公用目录中的文件进行保护。
3者综合使用,就可以有效地建立起一套共享机制,使符合条件的他人可以方便地使用别人放在公用目录中的可执行文件,而又确保不会因目录公用而造成他人随意地乱删。
相关阅读 更多 +