Rsyslog 忽略使用 fileCreateMode 为组和所有人设置的读写权限。
我已经设置了一个服务来运行我的节点应用程序,如下所示:
...
[Service]
WorkingDirectory=/opt/demo/app
User=appuser
Type=simple
ExecStart=/usr/bin/node myapp.js demo
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
...
Run Code Online (Sandbox Code Playgroud)
然后我在 /etc/rsyslog.d/ 中设置一个 myapp.conf 文件,如下所示
if ($programname == 'myapp') then {
action(
type="omfile"
File="/opt/demo/app/app.log"
fileCreateMode="0640"
fileOwner="appuser"
fileGroup="mygroup"
)
stop
}
Run Code Online (Sandbox Code Playgroud)
使用正确的用户和组创建日志文件,但权限为 0600 而不是 0640。
如果我将 fileCreateMode 更改为 0777,则文件将使用 0711 创建。
我使用默认的rsyslog.conf,rsyslog版本是8.24.0-41,操作系统是CentOS 7.7
rsyslogd -N 1不会抛出任何错误
我想使用 rsync 将目录从生产服务器备份到备份服务器。
我当前的解决方案:
我对此解决方案的问题是:没有足够的空间来创建 tar 文件+创建 tar 文件时需要大量资源。它应该尽可能减少对生产服务器资源的影响。
我想将文件发送到远程服务器上的 tar 文件中。我只需发送文件并将其 tar 到备份服务器上,但在我看来,这不是一个好的解决方案。
我希望它每 29 天在凌晨 3 点执行一次,不管它是一个月中的哪一天。我想如果它首先在 19/sep 执行,那么第二天将是 18/oct,然后是 16/nov ...
另外,如果我今天(19/sep)运行 crontab -e,第一次执行是什么时候?
a) 从今天起 29 天
或 b) 29/9 月?
如果答案是 b),有没有办法让它立即执行或按照 a) 中的描述执行?
在我的主板手册中,我在 BIOS 配置下看到以下内容
4G 以上解码(如果系统支持 64 位 PCI 解码则可用) 选择启用可对 4G 地址以上空间中支持 64 位的 PCI 设备进行解码。选项有启用和禁用。
除了检查此选项是否可用之外,如何检查我的系统是否支持 64 位 PCI 解码?
我似乎在我的 /var/log/apache2/error.log 和 /var/log/apache2/access.log 中的相应记录中得到这些行
/var/log/apache2/error.log
[Fri Sep 20 02:28:36.654357 2019] [proxy_fcgi:error] [pid 28619:tid 140003157985024] [client 49.233.5.191:37604] AH01071: Got error 'Primary script unknown\n'
[Fri Sep 20 02:28:38.136282 2019] [proxy_fcgi:error] [pid 28618:tid 140003082450688] [client 49.233.5.191:43806] AH01071: Got error 'Primary script unknown\n'
Run Code Online (Sandbox Code Playgroud)
/var/log/apache2/access.log
49.233.5.191 - - [20/Sep/2019:02:28:36 +0000] "GET /TP/html/public/index.php HTTP/1.1" 404 392 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)"
49.233.5.191 - - [20/Sep/2019:02:28:36 +0000] "GET /elrekt.php HTTP/1.1" 404 433 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 …Run Code Online (Sandbox Code Playgroud) 我有一个 apache 2.4 服务器,为本地网络用户提供 Kerberos 身份验证。现在我需要允许公众在没有身份验证的情况下访问它,但仍然需要本地网络的身份验证。
如果我只是删除“需要有效用户”指令,则本地用户不会进行身份验证。
如果我允许一个公共 IP,一切都会完美运行,本地用户将获得身份验证,来自该 IP 的远程用户将获得访问权限:
<RequireAny>
Require ip 11.22.33.44
Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
但如果尝试允许除 locallet 之外的所有人:
<RequireAny>
Require ip not 192.168
Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
然后我得到“语法错误:负 Require 指令对指令没有影响”
如果我将排除嵌入到 RequireAll 中:
<RequireAny>
<RequireAll>
Require ip not 192.168
<RequireAll>
Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
然后我收到错误“RequireAll 指令仅包含否定授权指令”。
同样,添加
<RequireAny>
<RequireNone>
Require ip 192.168
<RequireNone>
Require valid-user
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
给出错误“RequireNone 指令对指令没有影响”。
那么这样的排除应该如何进行呢?
目前,我们使用 HAProxy 来管理数千个域的 TLS 终止,所有这些域都有定期轮换的 Let's Encrypt 证书。
相关配置如下所示:
frontend https-in
bind *:443 ssl strict-sni no-sslv3 crt /usr/src/data/certs/
Run Code Online (Sandbox Code Playgroud)
并且/usr/src/data/certs/充满了一堆 .pem 文件。
SSL 证书一直在变化,因为它们单独需要续订,或者新域从我们的系统中添加/删除。现在,我们通过将所有证书批量写入/usr/src/data/certs/并执行 haproxy 的零停机重新加载来解决这个问题。这很麻烦,因为我们在重新加载期间会出现非常大的内存峰值,因为新实例会读取完整的证书负载,而旧实例会继续运行。
我们目前正在研究 HAProxy Unix Socket 命令的一些功能,并了解我们可以动态化的许多功能(ACL、映射等)。我想知道我们是否可以采取类似的方法来同步证书并避免不断的重新加载行为。
使用 HAProxy 1.9 进行实验,但我们并未为此选择任何特定版本。感谢您的任何帮助或建议!
更新我看到了bind 有关通过数据平面 API
进行操作的文档,但它没有明确指示如何或何时获取这些更改。由于它包含用于强制重新加载的布尔值(或默认为reload-delay设置的值),我猜测有一个假设需要重新加载。
如果有人有引用来证实这一假设,我将不胜感激。
在我们的 Ubuntu 机器上,我试图通过将以下行添加到 /etc/network/interfaces 来阻止对某个用户帐户的互联网访问:
pre-up iptables -A OUTPUT -p tcp -m owner --uid-owner 1001 -j DROP
Run Code Online (Sandbox Code Playgroud)
这很好用,除非 Youtube 和其他 Google 属性没有被阻止。
我不是 iptables 的专家,但我认为上述命令会丢弃来自指定用户的所有传出请求。谷歌资产有什么特别之处会以某种方式导致它们被豁免吗?
作为参考,这里是我的 iptables 列表:
$ sudo iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere owner UID match ****
Run Code Online (Sandbox Code Playgroud) https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes#Meta
iifname(外面的名字是字符串)和iif推荐的有什么区别吗?
ssl_certificate /etc/letsencrypt/live/$ssl_server_name/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/$ssl_server_name/privkey.pem;\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\xe2\x94\x822019/09/22 08:29:42 [错误] 7714#7714: *3 无法加载证书\n "/etc/letsencrypt/live/example.com/fullchain.pem": BIO_new_file()\ n 失败(SSL:错误:0200100D:系统库:fopen:权限\n被拒绝:fopen(\'/etc/letsencrypt/live/example.com/fullchain.pem\',\'r\')\n错误: 2006D002:BIO 例程:BIO_new_file:system lib) SSL\n 握手时,客户端:,服务器:0.0.0.0:443
\n
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;\nRun Code Online (Sandbox Code Playgroud)\n\n尝试了一些参考但仍然无法解决。
\n\n\n