在后台启动进程或将其作为systemd服务很容易。
然而,如果我想启动一个进程来监视Linux机器上的活动,那么它就成为了攻击的目标。如果任何用户想做坏事,它会首先通过简单地执行或 来终止该进程,即使他们只是sudoers 或wheel用户。killsystemctl stop
有没有办法强制执行只能杀死的进程root?
伙计们,只要想到连rsyslog服务都可以被杀死,你就应该承认 Linux 确实是多么脆弱。这就像飞行员可以关闭黑匣子一样。有航空公司允许这种情况发生吗?或者是否有人给飞行员一份允许名单,以阻止他们采取任何措施来拯救飞机?当然,飞行员可以让飞机坠毁,但黑匣子会记录下来。
从安全角度来看,我关于禁止名单的提议是合法的,尽管它可能会让你感到害怕。所以不要试图责怪提出问题的人,好吗?
我目前正在尝试使用 Nginx 有条件地返回一组 CORS 标头。起初,这似乎是一个简单的任务,因为我已经有了这个工作配置:
upstream api-app {
server unix:/tmp/api-app.sock fail_timeout=0;
}
server {
listen 80;
# [other server stuff...]
# CORS headers added to all ALL responses of this server (needed for all requests)
more_set_headers 'Access-Control-Allow-Methods: GET,POST,PATCH,PUT,DELETE,OPTIONS';
more_set_headers 'Access-Control-Allow-Origin: *';
more_set_headers 'Access-Control-Allow-Credentials: true';
more_set_headers 'Access-Control-Request-Method: GET,POST,PATCH,PUT,DELETE,OPTIONS';
more_set_headers 'Access-Control-Request-Headers: Content-Type';
more_set_headers 'Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept,Session-Id,Role-Id,Visitor-Id,X-Window-Location';
more_set_headers 'Access-Control-Expose-Headers: X-Total-Entries,X-Total-Pages,X-Page,X-Per-Page,X-Folder-Hierarchy';
location / {
# For OPTIONS request only return above headers and no content (also allow caching them)
if ($request_method = 'OPTIONS') {
# …Run Code Online (Sandbox Code Playgroud) 我在一台 Linux 机器上尝试通过我的 Active Directory 用户名在大型网络中挂载 SMB 共享:
mount -t cifs -o username=myuser,domain=mydomain //server/share /mount/path
Run Code Online (Sandbox Code Playgroud)
密码+成功安装后我尝试touch /mount/path/test.txt,但权限被拒绝。如此多的搜索结果(就赞成票而言,这sudo mount是最大的)表明,由于使用写入权限,因此仅授予 root 而不是您的普通用户。但就我而言,我是root,因为我首先使用sudo -i,一切都发生在 root 控制台上。/mount/path属于 root 及其下面的所有内容(已安装驱动器的内容)。我已经尝试解决这个问题 2 个小时了,但我陷入了困境。有谁知道为什么我什至不能以 root 身份写入驱动器?
我的 GCP 虚拟机上有动态外部 IP。我需要它与众不同。但是我尝试重新启动虚拟机,它总是一样。我很欣赏 Google 试图为他们的客户做好事,而且免费拥有准静态 IP 很酷。但我需要改变它!
有简单的方法吗?(我的意思是无需重新创建 VM,例如某些 CLI 命令?)
我正在尝试通过使用从我的 Linux 主机访问 Windows 10 虚拟机virsh console。
但当我这样做时,我得到了许多其他人都经历过的空控制台。
virsh console win10
Connected to domain 'win10'
Escape character is ^] (Ctrl + ])
Run Code Online (Sandbox Code Playgroud)
而且我根本不会打字。不管怎样,我可以在虚拟机中进行配置来允许这种情况,特别是对于Windows吗?谢谢
所以,我已经研究这个 systemd“可预测的网络接口名称”相当长一段时间了,并对它的工作原理有了一些了解,但出于对雷神的热爱,我无法弄清楚enp X s Y的命名方案,我知道它应该指示设备的物理位置,但是X和Y到底意味着什么?物理位置是哪一个?另一个到底表示什么,也许是总线索引?我不知道而且真的很想知道。我到处搜索,却找不到任何详细解释这个命名方案如何工作的内容。
我预计会出现错误,抱歉 FS 是只读的,但这是可能的。这是出乎意料且违反直觉的,有什么原因吗?
Linux files 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
files@files:/mnt/disk$ mount | grep /mnt/disk/005
/dev/sdh on /mnt/disk/005 type ext4 (ro,nosuid,nodev,noexec,relatime,user)
files@files:/mnt/disk$ df /mnt/disk/005/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdh 7751367424 7332824836 27824876 100% /mnt/disk/005
files@files:/mnt/disk$ sudo tune2fs -r 0 /dev/sdh
tune2fs 1.45.5 (07-Jan-2020)
Setting reserved blocks count to 0
files@files:/mnt/disk$ df /mnt/disk/005/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdh 7751367424 7332824836 418526204 95% /mnt/disk/005
files@files:/mnt/disk$
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Fedora 中实现一个非常简单的防火墙,其中公共互联网可以访问 SSH、HTTP、HTTPS 和 Cockpit,但不能访问其他内容。同时,服务器通过 Docker 运行微服务,可以在端口 8000-8999 上相互通信。
我使用以下命令在新安装的 Fedora 服务器上进行了设置:
firewall-cmd --zone=public --add-service=cockpit
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=internal --add-source=192.168.1.65
firewall-cmd --zone=internal --add-source=192.168.1.66
firewall-cmd --zone=internal --add-port=8000-8999/tcp
firewall-cmd --runtime-to-permanent
Run Code Online (Sandbox Code Playgroud)
当我使用 检查我的配置时--list-all,一切看起来都正确:
> firewall-cmd --list-all --zone=internal
internal (active)
target: default
icmp-block-inversion: no
interfaces:
sources: 192.168.1.65 192.168.1.66
services: dhcpv6-client ssh
ports: 8000-8999/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
> firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 v1.18 GKE kubernetes 集群上部署 pod
我的 Pod 循环崩溃,因为它无法挂载其配置映射:
$ kubectl describe pod <pod>
...
Volumes:
cm-cxf-conf:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: project-cm-cxf-conf
Optional: false
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 41m kubelet MountVolume.SetUp failed for volume "cm-cxf-conf" : failed to sync configmap cache: timed out waiting for the condition
...
Run Code Online (Sandbox Code Playgroud)
但是,配置映射确实存在:
$ kubectl get configmap project-cm-cxf-conf
project-cm-cxf-conf 1 4h40m
Run Code Online (Sandbox Code Playgroud)
导致此错误的原因可能是什么?我该如何修复它?
为了在我的 docker 设置中启用 IPv6,我已在文件中进行了设置/etc/docker/daemon.json:
{
"ipv6": true,
"fixed-cidr-v6": "2a01:xxxx:yyyy:zzzz/64"
}
Run Code Online (Sandbox Code Playgroud)
我从我的 ISP 处获得2a01:xxxx:yyyy:zzzz并通过 找到它ip addr | grep inet6 | grep global。
我的 ISP 不断改变该zzzz位,并且在重新启动路由器时它也会改变。
问题:
fixed-cidr-v6为某些链接本地值fd00:...)linux ×2
networking ×2
audit ×1
cifs ×1
conditional ×1
cors ×1
devices ×1
docker ×1
ext4 ×1
firewalld ×1
ipv6 ×1
kubernetes ×1
mount ×1
nginx ×1
pci ×1
permissions ×1
qemu ×1
read-only ×1
rsyslog ×1
systemd ×1
ubuntu-20.04 ×1
windows ×1