2011-01-31 149 views
0

这可能是一个新问题。我想在用户之间自动切换。我知道我们可以使用“期望”编程。有其他方法吗?在Unix中自动切换用户

+1

护理扩大多一点?至于你想用哪种方式在用户之间切换;在终端中,桌面会话,删除桌面/服务器? – mhitza 2011-01-31 05:40:21

回答

5

使用苏已经提到:

su - <username> 

但对其他用户帐户更多的限制访问可以使用sudo被授予:

sudo -u <username> <command> 

须藤支持的许多选项。请参阅/ etc/sudoers和man sudoers。

始终运行可执行文件或脚本作为另一个用户,而无需使用任何工具,如su或sudo的,或建立自己的工具,当前的目的,使用了setuid模式:

chown <username> <executable> 
chmod u+s <executable> 
./<executable> 

例如:

$ id -un 
atnnn 
$ cp /usr/bin/id . 
$ sudo chown nobody id  
$ sudo chmod u+s id 
$ ./id -un 
nobody 
0

这取决于你真正想要什么,以及你如何访问你的机器。很容易创建窗口(xterms或其他),并安排不同的终端作为不同的用户运行 - 至少在你创建它们之后。您可以使用'su'或(更好)'sudo'成为另一个用户。 (我假设你有权成为其他用户 - 它不是一个同事的ID,但一些测试用户,你需要进行实验。)

如果您希望在终端会话之间切换作为不同的用户在一个窗口,那么你必须努力工作。有这样的程序:它曾经是shl(壳层),我认为现代等价物是GNU Screen。我没有使用过GNU Screen(自1990年以来我没有使用shl);当我需要以多个用户的身份工作时,我使用与不同用户连接或以不同用户身份运行的不同终端。