小编seb*_*sth的帖子

是否有用于将进程作为非特权用户进行守护进程的实用程序?

我经常想做的一件事是以我自己的非特权用户身份启动一些长时间运行的进程或服务器,然后有办法判断它是否仍在运行,如果没有,则重新启动它。

例如,我可能会设置一个 cron 作业,该作业每隔一段时间运行一次,检查我的进程是否正在运行并在它崩溃时重新启动它。这是 djb 的 daemontools、supervisord、launchd 等进程管理工具的精髓,除了这些工具默认配置为以 root 身份运行并带有配置文件,/etc但我想要一个实用程序,它可以让我做同样的事情。从我的主目录舒适的非特权用户。

process users process-management not-root-user background-process

6
推荐指数
2
解决办法
2119
查看次数

脚本必须由 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
查看次数

无法以 root 身份更改 root 拥有的文件的权限

问题是我的 PHP 文件在浏览器中不起作用。我怀疑是因为用户缺少read权限。

这些文件位于名为“ajax”的目录中

drwxrwxrwx. 2 root root 4096 Sep 13 14:33 ajax
Run Code Online (Sandbox Code Playgroud)

该目录的内容:

-rwxrwxrwx. 1 root root 13199 Sep 13 14:33 getOrderDeliveryDates.php
-rwxrwxrwx. 1 root root 20580 Sep 13 14:33 getParcelShops.php
-rwxrwxrwx. 1 root root  1218 Sep 13 14:33 index.php
-rwxrwxrwx. 1 root root   814 Sep 13 14:33 lang.php
-rwxrwxrwx. 1 root root  6001 Sep 13 14:33 prod_reviews.php
Run Code Online (Sandbox Code Playgroud)

我 100% 确定以 root 身份登录:

[root@accept: nl (MP-git-branch)] $
Run Code Online (Sandbox Code Playgroud)

用命令仔细检查id:

uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Run Code Online (Sandbox Code Playgroud)

它让我发疯。

试过 sudo …

permissions selinux ownership

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

NAT OUTPUT 链和 NAT POSTROUTING 链有什么区别?

如果Nating是在NAT表的OUTPUT链中完成的,那么POSTR中SNAT的作用是什么

如果Nating是在NAT表的OUTPUT链中完成的,那么POSTROUTING中SNAT的作用是什么

iptables netfilter

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

硬链接、符号链接和 ACL 文件夹权限如何交互?

这对我来说有点难以实现,但我遇到了一种非常奇怪的行为,涉及ACL 扩展文件权限和硬/符号链接。我会尽力让我的问题简短明了,但我首先必须向您展示我目前情况的一个例子,因为我不知道发生了什么或它叫什么。


假设我们有一个有两个用户的系统,我们称他们为alice和bob,他们在一定程度上共享一个名为 的文件夹,stuff具有以下权限:

bob@server:~$ getfacl /home/stuff getfacl: 
Removing leading '/' from absolute path names
# file: home/stuff
# owner: alice
# group: bob 
user::rwx
group::-wx
other::---
default:user::rwx
default:user:bob:rwx
default:group::-wx
default:mask::rwx
default:other::---
Run Code Online (Sandbox Code Playgroud)

如您所见,该文件夹的所有者是alice,但 bob 可以在其中写入内容并使其可执行,以便alice可以在(+x 标志)中运行。但是,由于 ACL,每次 bob 将文件写入/复制到 时stuff,文件的权限都会发生更改,最终如下所示。bob假设我们在主目录中创建一个文件并将其移动到stuff.

bob@server:~$ touch myfile
bob@server:~$ chmod 777 myfile
bob@server:~$ ls -la myfile
-rwxrwxrwx 1 bob bob 0 myfile

bob@server:~$ mv myfile /home/stuff/myfile
bob@server:~$ …
Run Code Online (Sandbox Code Playgroud)

security acl permissions hard-link symlink

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

如何使用 NF 和 for 循环优化脚本

我有几个文件,每个文件都有不同的列数。我想转换它们以将它们插入到数据库中

例如文件 test01:

0001    000000000000001 john smith  45  500
0002    000000000000002 peter jackson   20  80
0003    000000000000002 robert brown    35  100
0004    000000000000007 sarah white 40  300
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

('0001','000000000000001','john smith','45','500'),
('0002','000000000000002','peter jackson','20','80'),
('0003','000000000000002','robert brown','35','100'),
('0004','000000000000007','sarah white','40','300');
Run Code Online (Sandbox Code Playgroud)

为了实现这一点,我使用以下脚本:

cat test01 |awk -F'\t' '{print "('\''"$1"'\'','\''"$2"'\'','\''"$3"'\'','\''"$4"'\'','\''"$5"'\''),"}' |sed '$ s/.$/;/' 
Run Code Online (Sandbox Code Playgroud)

它工作正常,问题是当我找到另一个具有不同列数的文件时,所以我必须手动修改脚本。

我知道我可以通过 AWK 的变量 NF 获得列数,但是如何将此变量与脚本中的 for 循环结合起来?

当我尝试

cat test01 | awk '{for (i = 1; i <= NF; i++){print $i"'\'','\''"}}'
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

0001','
000000000000001','
john','
smith','
45','
500','
0002','
000000000000002','
peter','
jackson','
20',' …
Run Code Online (Sandbox Code Playgroud)

awk csv columns

4
推荐指数
2
解决办法
5071
查看次数

如何格式化每行输出一个单词

我登录linux系统并尝试获取所有当前用户。我users在终端中使用了命令,结果显示为“user1 user2 user3 user4”。

有什么办法可以打破用户名一行,让每个用户名占一行?

command-line text-formatting

4
推荐指数
1
解决办法
3627
查看次数

在 Linux 上仅使用 /etc/hosts 来解析主机名

我想通过 DNS 服务器禁用 DNS 查找,并且只解析 /etc/hosts 中列出的主机名。我使用的是 Raspbian 9。我该如何设置?

dns hosts

4
推荐指数
1
解决办法
2831
查看次数

使所有用户都可以使用二进制可执行文件

如何使所有 linux(Ubuntu) 用户都可以使用二进制文件。例如:当我们使用apt install golang-gogo 可执行文件安装 golang 时 ,所有用户都可以使用。

他们将在哪里添加配置。

我检查它在全球范围内 的/ etc /环境/ etc / profile文件,/etc/init.d/中 我找不到有什么参考!

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial
Run Code Online (Sandbox Code Playgroud)

它甚至不在 ~/.bashrc 或 ~/.profile 中;即使这些文件是用户特定的。

由于apt install 提供了旧版本的 go;我需要手动安装最新版本的 go 并使其可供所有用户使用。

linux executable software-installation

4
推荐指数
1
解决办法
4710
查看次数

iptables默认规则中方括号中的数字是什么意思?

我刚刚安装了 iptables 并运行了下面的命令。

/sbin/iptables-save > /etc/iptables/rules.v4
Run Code Online (Sandbox Code Playgroud)

当我编辑文件“/etc/iptables/rules.v4”时,我发现它包含以下行。

:INPUT ACCEPT [15079:4118707]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [153:28387]
Run Code Online (Sandbox Code Playgroud)

有谁能解释一下方括号中的数字的含义吗?我发现下面链接的关于保护树莓派的文章有一个关于 iptables 的部分,但方括号中的数字与我的数字不同,这让我提出了这个问题。

https://makezine.com/2017/09/07/secure-your-raspberry-pi-against-attackers/

作为参考,文章中有这个。

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
Run Code Online (Sandbox Code Playgroud)

我错误地将这个问题发布在 stackoverflow 上,并被告知将其发布在这里,但确实有人回答并声明它们是端口,并且 iptables 只允许连接到指定的端口范围。

这对我来说并没有多大意义,因为我能够连接到 SSH 的端口 22,该端口超出了方括号中提到的 IP 范围。有谁能够进一步解释一下吗?

linux iptables

3
推荐指数
1
解决办法
2990
查看次数