我有一个使用网络命名空间(netns)的架构。我想让普通用户在这些netns中做一些操作。
我可以写一个脚本netns-exec.sh,受这篇文章的启发,用 执行sudo,包含:
ip netns exec $1 su $USER -c "$2"
Run Code Online (Sandbox Code Playgroud)
并添加到我的 sudoer 文件中:
user ALL=(ALL) /path/to/netns-exec.sh
Run Code Online (Sandbox Code Playgroud)
但我觉得它太丑了,我完全可以做噩梦。有没有更好的解决方案来允许普通用户使用命名空间?是否可以将用户放入一些有用的组?我搜索了它,但一无所获。
假设我有一组机器(这里称为客户的机器),只允许一小部分人(称为支持人员)通过 SSH 进入,每台机器只使用一个帐户(支持访问帐户)。
支持人员只能使用密钥登录客户的机器。此外,支持人员可以发展,因此离开支持人员的人不得登录任何客户机器。因此,员工被禁止读取用于登录客户机器的私钥。此外,禁止修改authorized_keys客户机器上的文件。
为了实现该配置,我想到了使用支持人员将登录的 SSH 代理(使用 LDAP 身份验证,但这是另一个问题)并且包含私钥。
问题是:如何让支持人员在无法读取的情况下使用 SSH 私钥?
我相信我必须在代理机器上创建一个以 root 身份运行的守护进程,它将接受用户的请求并为他们打开一个 SSH 会话,但我不知道该怎么做。有任何想法吗?
In continuation of my last question about using netns as a relugar user, I'm now looking for a way to open VPN tunnels as a regular user.
So I naturally thought about network-manager. Any user can use it for any VPN.
I could just allow opening VPN tunnels by editing the sudoer file, but I really would rather not do that.
So I'm wondering how to use it in different network namespaces. According to this source, network-manager might …