Permissions
Redhat 5 上用於非 root 使用者的 C++ 網路套接字
我用 C++ 編寫了一個程序,它使用套接字與 windows7 機器通信。
我以 root 使用者身份執行程式碼,一切正常。但是,出於安全原因,我不想最終以 root 身份執行該程序。
首先我創建了一個新使用者來執行程序,但是它不會讓使用者啟動一個新的套接字,所以我將使用者添加到根組並再次嘗試,但是 Redhat 不允許我啟動一個新的套接字但是root使用者。
我已經在禁用防火牆的情況下嘗試了這個,只是為了排除它,但仍然沒有運氣。
那麼,你們中是否有人知道我應該更改/添加哪些權限/組?
我在網上看了一圈,發現:
/usr/sbin/setsebool -P httpd_can_network_connect=1
建議作為一種可能的治療方法,但它似乎對我沒有幫助。
但是 Redhat 不允許我以 root 使用者身份啟動新套接字。
那麼你必須設置一個非常嚴格的 SELinux 策略。
您確定它不會讓您使用小於 1024 的埠號創建偵聽套接字嗎?
編輯
如果埠號不低於 1024,那麼這是 SELinux 策略。您應該會看到 /var/log/messages 中記錄的條目說它被拒絕了。
允許…
/usr/sbin/semanage port -a -t <SEType> -p tcp 51717
日誌中報告的類型在哪里或使用http_port_t將其添加到http類型中。有關範例,請參見此頁面