自动切换用户的unix

时间:2011-01-31 05:37:12

标签: shell unix

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

2 个答案:

答案 0 :(得分:5)

已经提到使用su:

su - <username>

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

sudo -u <username> <command>

Sudo支持许多选项。请参阅/ 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

答案 1 :(得分:0)

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

如果您想在单个窗口中以不同用户的身份在终端会话之间切换,那么您必须更加努力地工作。有一些程序要做:它曾经是shl(shell层),我认为现代等价物是GNU Screen。我没有使用GNU Screen(我从1990年开始就没有使用shl);当我需要以多个用户身份工作时,我使用与不同用户连接或运行的不同终端。