以ssh'ing作为特定用户运行根脚本,而不是在标准login时运行

我想要做以下事情:

如果我通过login屏幕以用户ABClogin,则什么也不做。 但是,如果我ssh作为美国广播公司,然后我想运行一个根脚本,而不会提示root密码,而不必在磁盘上的某处存储根密码。

Linux的文章概述了这个动机:在应用程序的基础上限制传出 。 基本上,从文章的启发https://unix.stackexchange.com/questions/21650/how-to-restrict-internet-access-for-a-particular-user-on-the-lan-using-iptables ,什么我想要做的是以下几点:

1)以用户EFGlogin并使用Firefox访问网页。

2)ssh进入ABC。

3)在ssh到ABC,我想运行一个脚本,模拟“sudo iptables -t mangle -A OUTPUT -o eth0 -m owner –uid-owner 1234 -j DROP”,其中1234是用户的UID ABC

4)然后开始在ABC的ssh'edterminal下使用我不想上网的所有应用程序,同时仍以EFG用户身份login,因此允许我以EFG的身份上网。

注意我尝试了/ etc / network / interfaces文件,但是如果计算机没有连接到networking,我的计算机无法正常启动。

谢谢

最简单的方法是对SSH密钥使用强制命令 。

使用ssh-keygen为用户创build一个SSH密钥,并将公钥添加到用户ABC的~/.ssh/authorized_keys中,并以command="/some/script"前缀,

该脚本可以包含要运行的sudo命令,然后在需要时exec shell。