自动切换用户的unix

Roo*_*eti 0 unix shell

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

Atn*_*nNn 5

使用su已经提到:

su - <username>
Run Code Online (Sandbox Code Playgroud)

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

sudo -u <username> <command>
Run Code Online (Sandbox Code Playgroud)

Sudo支持许多选项.请参阅/ etc/sudoers和man sudoers.

要始终以另一个用户身份运行可执行文件或脚本,而不使用su或sudo等任何工具,或者为当前目的构建自己的工具,请使用setuid模式:

chown <username> <executable>
chmod u+s <executable>
./<executable>
Run Code Online (Sandbox Code Playgroud)

例如:

$ id -un
atnnn
$ cp /usr/bin/id .
$ sudo chown nobody id       
$ sudo chmod u+s id
$ ./id -un
nobody
Run Code Online (Sandbox Code Playgroud)