2016-02-25 88 views
0

我是用戶bob,我啓動過程script.sh。我想阻止script.sh到IP X.X.X.X的出站請求。在測試過程中模擬網絡斷開連接

bob不是根。機器人無法獲得根。

我使用iptables使用

iptables -A INPUT -s X.X.X.X -j DROP && service iptables save 

嘗試,但我得到:

iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root) 

更多背景:

我正在與多個數據庫和系統開發ENV。我正在寫一些測試來嘗試和模擬一個系統之間的連接何時被切斷(然後重新連接)。我不想讓我的測試以root身份運行,如果他們不必...

+0

你想幹什麼?一個答案告訴你如何繞過系統的安全? –

+1

iptables的構建非常有意不允許非特權用戶進行配置,並且有很好的理由。如果你想要一個較弱的方法 - 即。用'LD_PRELOAD'庫來隱藏相關的C庫調用 - 這是可行的,但也是可以避免的。 –

+0

這是一個編程問題?看起來像我的基本Linux管理員... – tink

回答

1

我會建議設置一個非常有限的特權升級機制,以允許運行您的用戶調用tcpkill試驗。

比如在/etc/sudoers,你可能有類似以下內容:

# allow tcpkill to be run under sudo by scripts 
Defaults!/usr/sbin/tcpkill !requiretty 

# allow testuser to invoke /usr/sbin/tcpkill for IP address 1.2.3.4 
testuser: ALL = (root) NOPASSWD: /usr/sbin/tcpkill host 1.2.3.4