小编sha*_*ote的帖子

如何知道某个PID监听了哪些端口?

我有一个特定进程的 PID 正在监听我的 OS X 上的一些端口,我需要知道这个进程监听了哪些端口。我该怎么做?

我知道我可以lsof用来知道哪个进程正在监听某个端口,但我需要执行一个逆操作。

谢谢你。

UPD

OS X 使用 BSD utils,所以我有 BSDnetstat而不是 Linux netstat。Linuxnetstat有-p显示 PID 的选项,BSDnetstat使用-p指定端口并且没有显示 PID 的选项。

osx networking bsd

18
推荐指数
2
解决办法
2万
查看次数

脚本必须由 pam_exec 运行的 SELinux 上下文是什么?

我刚刚在我的 VPS 上安装了 Fedora 22 并试图做一些小事——在每次 ssh 登录时通过 pam_exec 运行我的告密者脚本。但是我遇到了意想不到的困难:pam_exec 失败,退出代码为 13。

我在 /etc/pam.d/sshd 的末尾添加了习惯行:

session optional pam_exec.so seteuid /usr/local/bin/loginformer.py
Run Code Online (Sandbox Code Playgroud)

当然 loginformer.py 有执行标志:

$ ls -l /usr/local/bin/loginformer.py
-rwxr-xr-x. 1 root root 4254 Jun  8 09:35 /usr/local/bin/loginformer.py
Run Code Online (Sandbox Code Playgroud)

但这里是痛苦的摘录journalctl -lb SYSLOG_FACILITY=10:

Jun 08 11:58:49 fedora22 sshd[671]: pam_exec(sshd:session): execve(/usr/local/bin/loginformer.py,...) failed: Permission denied
Jun 08 11:58:49 fedora22 sshd[663]: pam_exec(sshd:session): /usr/local/bin/loginformer.py failed: exit code 13
Run Code Online (Sandbox Code Playgroud)

我不确定发生了什么,因为它始终适用于我的 ArchLinux。我认为这可能是一些 SELinux 限制,但我不确定。

我做错了什么?

更新

好吧,我尝试深入了解 SELinux 并明白我应该更改脚本的 SELinux 上下文。

现在它的 SELinux 上下文看起来是这样的:

$ ls -Z /usr/local/bin/loginformer.py …
Run Code Online (Sandbox Code Playgroud)

pam selinux

5
推荐指数
1
解决办法
2099
查看次数

标签 统计

bsd ×1

networking ×1

osx ×1

pam ×1

selinux ×1