例如,当一个非root用户拥有程序所有权,但在*nix环境下由root用户运行该程序时,该程序能否以root权限执行操作?
应用程序的权限是根据执行该程序的用户来确定的。
如果它采用所有者的权限,例如sudo
命令将没有任何效果。
此外,大多数位于/bin
(或任何其他系统位置)中的应用程序都由root用户拥有(因此无法(轻松地)修改它们),但仍使用用户权限执行。
请注意,如果一个程序设置了setuid
或setgid
位,则该应用程序将分别以用户和/或组权限启动。
这使得普通用户可以执行通常需要root权限才能执行的操作,而无需访问root帐户。
要设置setuid
位,请使用:
chmod u+s /path/to/application
setgid
位,但使用g+s
而不是u+s
。setuid
属性。 - johnsywebsu
或sudo
,或为程序设置setuid
位。chown user program
chmod u+s program
user
的权限,无论谁运行程序。