当前位置: 技术问答>linux和unix
sudo的问题
来源: 互联网 发布时间:2015-11-19
本文导语: 在文件/etc/sudoers里面添加了一个用户,比如用户名是new,添加这样一行:new ALL = (ALL)ALL,那么new用户使用sudo bash 就可以升级为root用户而不需要root密码,那么这样到达的root和root用户完全一样么? 另外,能解释一...
在文件/etc/sudoers里面添加了一个用户,比如用户名是new,添加这样一行:new ALL = (ALL)ALL,那么new用户使用sudo bash 就可以升级为root用户而不需要root密码,那么这样到达的root和root用户完全一样么?
另外,能解释一下什么是real user ID和effective user ID么?最好帮忙举个例子。
另外,能解释一下什么是real user ID和effective user ID么?最好帮忙举个例子。
|
是。new具有root的权限。
每个进程有三个UID,Real UID、Effective UID和Saved UID。
RUID是创建该进程的用户或进程(父进程)的UID。只有EUID为0(即root)时,RUID才能被更改。
EUID是用来决定进程权限的UID,它可以被设置为RUID或者SUID。如果EUID=0,则EUID可以被设置为任何值。
如果可执行文件具有Set-UID,则SUID被设置为文件的属主。否则,SUID就是RUID。
现在假设一个可执行文件myapp,其属主为me,执行者为you,设置了Set-UID,则执行后的进程:
RUID=you
EUID=you
SUID=me
可以seteuid(me),使EUID=me,结果是you可以通过myapp访问了只有me可以访问的内容。但如果不设置SUID,则seteuid(me)会失败,you不能访问只有me可以访问的内容。
每个进程有三个UID,Real UID、Effective UID和Saved UID。
RUID是创建该进程的用户或进程(父进程)的UID。只有EUID为0(即root)时,RUID才能被更改。
EUID是用来决定进程权限的UID,它可以被设置为RUID或者SUID。如果EUID=0,则EUID可以被设置为任何值。
如果可执行文件具有Set-UID,则SUID被设置为文件的属主。否则,SUID就是RUID。
现在假设一个可执行文件myapp,其属主为me,执行者为you,设置了Set-UID,则执行后的进程:
RUID=you
EUID=you
SUID=me
可以seteuid(me),使EUID=me,结果是you可以通过myapp访问了只有me可以访问的内容。但如果不设置SUID,则seteuid(me)会失败,you不能访问只有me可以访问的内容。