Articles of linux

Amazon EC2 apache根目录丢失文件读取权限。 有任何想法吗?

发生了什么: 我开发了一个LAMP网站,客户要求我把它安装到他们的EC2实例,Amazon Linux AMI release 2017.03 通常我将它们放在我的Centos服务器或一些正常的虚拟主机提供程序中。 我在8月17日安装了这个站点,一切正常,每天大概有2000个访问者。 客户今天打电话,那个网站是closures的。 错误500。 我login并立即看到recursion的web根文件夹中的所有文件都丢失了全部r位。 所有其他权利,如w,x和粘性位不受影响。 我为用户和组织拼凑了一切,一切又开始了。 错误日志: [Wed Sep 06 16:01:01.734067 2017] [mpm_prefork:notice] [pid 14111] AH00171: Graceful restart requested, doing restart [Wed Sep 06 16:01:02.327167 2017] [auth_digest:notice] [pid 14111] AH01757: generating secret for digest authentication … [Wed Sep 06 16:01:02.329737 2017] [lbmethod_heartbeat:notice] [pid 14111] AH02282: No slotmem from […]

systemd singlehot服务器每隔x天运行一次

我希望每隔85天使用systemd来运行一个命令。 我已经创build了一个定时器和一个服务的命令,但我不能让计时器启动。 我希望能够每85分钟运行一次命令,而不是在启动时运行,即使在85天期间重新启动服务器也能运行。 /etc/systemd/system/my.service [Unit] description=Do my task [Service] Type=oneshot ExecStart=/usr/local/sbin/myTask /etc/systemd/system/my.timer [Unit] Description=Timer to do my task [Timer] OnUnitActiveSec=85d Unit=my.service Persistent=true 尝试启动它使用systemctl start my.timer ,我得到的错误消息是: my.timer: Refusing to start, unit to trigger not loaded. Failed to start Timer to do my task.

如果我有一个内核版本,我可以得到它易受攻击的CVE列表吗?

所以说我有一个内核版本。 就像其中之一一样: 3.10.0-229.el7.x86_64 2.6.32-220.el6.x86_64 3.10.0-514.26.2.el7.x86_64 3.10.35-43.137.amzn1.x86_64 2.6.32-358.14.1.el6.x86_64 有没有办法以编程方式获得内核版本易受攻击的CVE列表? 我知道,如果我知道一个CVE,我可以很容易地看到哪个内核版本容易受到攻击,但是我正在寻找另一种方式。

打开与崩溃的Linux崩溃转储转储?

所以我一直在试图debugging运行Ubuntu-Server 16.04的服务器的一个奇怪的间歇性的内核崩溃,这让我难以忍受,所以我按照Ubuntu维基崩溃转储配方安装并设置了linux-crashdump 。 在等待这个问题重新抬头之后, linux-crashdump完成了它的工作并生成了一个崩溃转储,但是现在我不知道如何使用它! Ubuntu指南提供了两种查看它们的方法,可以使用crash或apport-retrace ,但是这两种方法都不能像描述的那样工作。 apport-retrace只是返回: ERROR: report file does not contain the required fields 同时对于crash ,在运行以下命令之前,我已经使用apt-get install linux-image-$(uname -r)-dbgsym下载了带有debugging信息的相应映像: crash /usr/lib/debug/boot/vmlinux-4.4.0-93-generic /var/crash/linux-image-4.4.0-93-generic-201709131146.crash 但是这会导致以下错误: crash: linux-image-4.4.0-93-generic-201709131146.crash: not a supported file format 现在查看linux-crashdump转储的正确方法是什么? 我是否缺less不在指南中的步骤?

用iptables限制所有非ipsecstream量

我正在隧道模式下使用IPSEC,并且我需要确保这台计算机上的某个用户的所有stream量都被限制在VPN连接上,如果VPNclosures,数据包将被拒绝。 如此有效,除非用户是“myuser”,否则所有stream量都是允许的。 如果所有者是“myuser”,则必须拒绝所有非IPsec数据包(input和输出)。 我试图这样想,第一个规则将捕获所有的ipsecstream量,并允许它,然后阻止所有非ipsecstream量。 但是,这只会阻止myuser的所有stream量: iptables -A OUTPUT -m owner –uid-owner myuser -m policy –pol ipsec –dir out -j ACCEPT iptables -A OUTPUT -m owner –uid-owner myuser -j REJECT

如何logging用户使用非交互式shell执行的命令

我想logging由应用程序服务器(树脂)执行的命令,以捕捉用户树脂执行的“cat / etc / passwd”或“whoami”等事件。 但是,由于用户树脂使用/ bin / false shell,所以我不能像这里所build议的那样编辑bashrc文件 那么我有什么select呢?

Ubuntu nginx静态内容服务器奇怪的stream量问题

我有一个运行nginx 1.9.3的Ubuntu 15.10,用于提供主要是图像和video文件的静态内容。 没有其他自定义进程正在运行,甚至只占用serer资源的1%。 没有任何PHP处理,也没有任何SQL数据库连接发生。 netstat -an | wc -l的输出 netstat -an | wc -l总是在700-1500个tcp连接的范围内。 在95%的情况下,大多数用户请求下载一个3.5 MB的video文件(nginx访问日志证实这一点),由于nginx和linux本身的caching机制,我相信总是存储在RAM中。 事实上, iotop输出告诉我,大部分时间里有0 – 0.5%的磁盘读取,所以我知道我遇到的问题与磁盘I / O无关。 运行nload 3小时,告诉我,我的stream量是这样的: Curr: 103.41 MBit/s Avg: 73.97 MBit/s Min: 14.62 MBit/s Max: 457.88 MBit/s Ttl: 141357.91 GByte 每当tcp连接的数量大于1200时,用户在从服务器加载数据时会遇到延迟/超时。 让我展开一下我到目前为止所观察到的有关这些“延迟/超时”的内容: 我几乎可以肯定,nginx的configuration不是怪,因为它不只是HTTP连接,超时,但即使从另一台计算机简单地ping(ICMP)服务器时,我得到了很多“请求超时”的结果,当上面提到的TCP连接标记已到达。 当从Windows运行Wireshark并在浏览器中加载这个3.5 MB的video(在提到的高负载时),我看到很多数据包标有 [TCP ACKed unseen segment] [TCP Previous segment not captured] 这意味着这个video文件的一些块(包)没有传递给我。 […]

WiFi辅助模式

根据iwconfig手册页,WiFi接口的可能模式是: Ad-Hoc(仅由一个小区组成且没有接入点的networking) 托pipe(节点连接到由许多接入点组成的networking,漫游) 主站(节点是同步主站或充当接入点) 中继器(节点在其他无线节点之间转发数据包) 次要的(节点充当备用主/中继器 监视器(该节点不与任何单元关联,并被动监video率上的所有数据包) 辅助选项是否意味着可以在单个WiFinetworking上设置多个接入点设备 – 扩展networking的范围,而不必在不同的SSID之间移动? 如果是这样,有人可以指向我在Linux上做这个文件?

使用定制的Docker容器在Azure上的NameLookup问题

我在使用定制Docker容器和Linux上的Web App的Azure上进行名称parsing时遇到了问题。 在Azure中使用默认的resolv.conf文件时,使用curl和wget进行名称parsing需要4-10秒。 search reddog.microsoft.com nameserver 127.0.0.11 options timeout:1 attempts:5 ndots:0 当我将名称服务器更改为8.8.8.8时,所有工作正常。 如果我理解正确, Docker挂载主机的resolv.conf文件,并且应该使用Docker运行命令选项设置DNS设置。 不build议直接更改这些文件。 Docker如何pipe理容器内的DNSconfiguration的确切细节可以从一个Docker版本更改为下一个。 所以你不应该假定/ etc / hosts,/etc/resolv.conf这样的文件在容器中被pipe理,并且保持文件不变,而是使用下面的Docker选项。 但是,在Azure中设置泊坞窗运行参数似乎不可能。 这是我以前在SO这个主题上的post 。

分层ssh连接 – 第二个ssh命令在错误的目录中查找密钥

我login了一个名为Walnut的服务器,我尝试login到另一个名为Hazelnut的服务器。 local machine (mac) —ssh—> Walnut —ssh—> Hazelnut 第一个SSH(从我的本地机器到核桃)进展良好。 第二个ssh命令,但是,我拒绝了权限。 这是什么日志说什么时,我做ssh -v -A Haezlnut 。 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to Hazelnut [address] port [port]. debug1: Connection established. debug1: identity file /home/username/.ssh/id_rsa type -1 debug1: identity file /home/username/.ssh/id_rsa-cert type -1 debug1: identity file /home/username/.ssh/id_dsa type […]