IO :: Socket :: UNIX共享套接字

时间:2013-10-10 13:43:17

标签: linux perl sockets

我有以下Perl代码工作,其中客户端是通过cgi脚本的apache,而另一个进程是普通用户。目的是解决apache用户的安全问题,因此我可以在cgi脚本中执行更多API活动。它是一种安全的解决方案,因为它是一个专用的应用程序(以及一个锁定的内部网络)。

这里的关键词是“正在”工作,因为现在任何两个用户都无法共享UNIX套接字。我试过从命令行运行客户端作为“apache”,我尝试从命令行运行客户端作为另一个用户。如果我以与服务器相同的用户运行它并且我在$ socket中得到一个有效的套接字,但这是它工作的唯一情况。现在我的IT帮助禁用了SELinux,在selinux配置中设置(允许,有针对性),所以这不应该妨碍(这个线程不是关于selinux的最佳实践,所以请不要去那里)。

任何有关套接字权限的帮助以及妨碍的方法都将非常受欢迎!

use IO::Socket::UNIX qw(SOCK_STREAM);

my $OLSS_SOCK_PATH = "/tmp/OLSS_Sock";

my $socket;   

my $server = 1;   # Run two instances, one set as server the other client
if( $server ){                                                              
    $socket = IO::Socket::UNIX->new(  # Reader                              
        Local => $OLSS_SOCK_PATH,                                           
        Listen => SOXMAXCONN,                                               
        Type => SOCK_STREAM,                                                
        );                                                                  
}else{                                                                      
    $socket = IO::Socket::UNIX->new(  # Writer                              
        Type => SOCK_STREAM,                                                
        Peer => $OLSS_SOCK_PATH,                                            
        );                                                                  
}                                                                           

0 个答案:

没有答案