作为受限组执行命令,无需输入密码

作为受限组执行命令,无需输入密码

我想阻止某些应用程序进入网络,因此我创建了一个无互联网组:
sudo groupadd -g 9876 no-internet
并创建了一个脚本 sudo gedit /usr/bin/ni

#!/bin/bash
sg no-internet "$1"

并添加了一条iptable规则

#!/bin/bash
iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

现在ni my_command应该在受限模式下运行应用程序。然而,我得到sg: failed to crypt password with previous salt: Invalid argument

如何将应用程序作为“无互联网组”运行,而不限制我自己对 LAN/WAN 的访问?

我已经检查过这个问题(声称要求是矛盾的)
如何在不要求密码的情况下切换群组?

但真的是这样吗?

答案1

运行sg命令的用户必须是被起诉的组。

我在这里属于www-data

archemar@unix:~$ id
uid=1003(archemar) gid=1002(stackexchange) groups=1002(stackexchange),27(sudo),33(www-data)

sg一切顺利

archemar@unix:~$ sg www-data id
uid=1003(archemar) gid=33(www-data) groups=33(www-data),27(sudo),1002(stackexchange)

我的 gid 是www-data

现在我不属于ntp这个群体

archemar@unix:~$ sg ntp id
Password:
sg: failed to crypt password with previous salt: Invalid argument

相关内容