Articles of linux

在Linux(CentOS 7.2)上,为什么ulimit -m不会限制内存使用?

我为我的shell设置了ulimit -m 1000000 ,然后启动了一个消耗大量内存的进程(一个简单的python脚本,从https://unix.stackexchange.com/questions/99334/how-to-fill-90-of免费记忆 )。 我告诉我的Python脚本消耗2G的内存,它似乎这样做(从htop这个输出): Mem[|||||||||||||||||||||||||||||||||1742/1839MB] Uptime: 137 days(!), 16:56:32 Swp[||||||||||||| 591/2047MB] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 6207 mikes 20 0 2123M 1625M 156 S 0.0 88.3 0:08.77 python ./consume_memory 2000 看看上面的“RES”列和“MEM”图。 ulimit -a显示: max memory size (kbytes, -m) 1000000 …为什么我的stream程不能启动? 如果我用ulimit -v 1500000设置我的虚拟内存大小,例如,我的过程按预期失败: $ ./consume_memory 900 […]

即使安装了Image Magick,也无法安装Image :: Magick

我试图找出为什么Image :: Magick不会安装。 我已经尝试了很多东西,但它仍然是致命的: perl -MCPAN -e 'install Image::Magick' …它死于: Reading '/root/.cpan/sources/modules/03modlist.data.gz' DONE Writing /root/.cpan/Metadata Running install for module 'Image::Magick' Fetching with LWP: http://www.cpan.org/authors/id/J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz Fetching with LWP: http://www.cpan.org/authors/id/J/JC/JCRISTY/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz ok 'YAML' not installed, will not store persistent state Configuring J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz with Makefile.PL Checking if your kit is complete… Looks good Generating a Unix-style […]

包含“/ bin / sh”模式的文件名不由apache提供

我一直在追查一个我已经减less到以下情况的错误。 我们有一个运行apache的web服务器,它不提供服务器所在园区以外的文件名,包括“/ bin / sh”模式(例如www.example.com/some/sub/folders/bin/show.html 。可能相关的是,一旦你跳过authentication错误,在开始而不是http没有问题的情况下,与https相同的url,在我们的应用程序中很难改变所有这些文件名,所以我试图解决这个问题。如何进一步debugging? 日志文件/etc/httpd/logs/access_log显示与该文件名无关的GET请求URL。 其他文件名显示,因为它们是。 我已经检查过/etc/httpd/conf和/etc/httpd/conf.d下的configuration文件,但是我看不到任何相关的东西,虽然我不熟悉这些configuration文件。 Apache版本如下: # httpd -v Server version: Apache/2.0.52 Server built: Oct 29 2008 09:20:05 有任何想法吗? 编辑 logging来自校园内部的消息(常规caching浏览器窗口的响应304和响应200针对私有非caching浏览器窗口): (ip addr) – – [27/Apr/2017:13:06:45 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 304 – "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0" (ip addr) – – [27/Apr/2017:13:06:54 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 200 […]

具有与其他接口上的网关相同的IP地址的networking接口

我有一个Linux设备有两个networking接口,其中一个提供接入点的DHCP和网站,另一个连接到互联网。 第一个有一个静态IP 10.0.0.1,我不能改变。 第二个nic使用dhcp连接到现有的networking。 我无法控制该networking的设置。 第一个NIC上的stream量在设备内处理,不必桥接到另一个networking接口。 设备上的其他进程必须通过第二个NIC访问互联网。 这工作正常,直到第二个网关的网关/路由器使用与第一个网关10.0.0.0/24相同的子网,因此相同的IP网关/ DNS等作为第一个networking的IP。 没有连接到互联网是因为所有到网关的stream量都是通过网关路由的。 此外,访问点上的网站无法访问。 要清楚:两个networking应该是完全独立的。 连接到第一个NIC的客户端将不会与第二个NIC连接,反之亦然。 该设备使用第一个nic来提供configuration网站。 与您典型的家庭路由器类似的方式。 第二个nic被设备用来执行其需要连接到互联网的主要function。 我怎样才能解决这个问题,并将两者分开? 我尝试了以下的东西: 从本地表中删除10.0.0.1路由。 这有点麻烦,因为我必须编写脚本。 它也只能解决设备能够连接到互联网的部分。 本地网站仍然无法访问。 将第一个nic添加到networking名称空间。 这种似乎工作,但我不能这样做,因为第一个nic实际上是一个无线接口上的虚拟接口,你只能添加底层的接口,而不是单个的虚拟networking接口。 我尝试阅读VLAN,但我不知道这是否会工作,或如何使其工作 它尝试查看/ proc / sys / net / ipv4 / conf中的设置,但到目前为止还没有find方法。

创build没有能力的Linux用户

如何创build一个没有function的新用户? 例如,他们不应该能够运行任何命令或查看任何目录(如果需要,除了他们的主目录)。 这个用户的唯一目的是允许Machine1创build一个到newlimiteduser @ Machine2(具有这个有限新用户的机器)的ssh连接,然后Machine2可以使用先前build立的ssh创build一个到Machine1的ssh连接作为隧道。

无法为最大打开文件设置更高的ulimit值

在具有32 GB ram和4 CPU的Ubuntu 16.04 AWS系统上,以下命令失败, root@ip-10-0-0-189:/home/ubuntu# sysctl -w fs.file-max=10000000 **(ten million)** fs.file-max = 10000000 root@ip-10-0-0-189:/home/ubuntu# ulimit -n 2000000 **(2 million)** **bash: ulimit: open files: cannot modify limit: Operation not permitted** root@ip-10-0-0-189:/home/ubuntu# 在ulimit上可以设置的值是否有任何上限?

本地Linux服务器在传出的OpenVPN连接期间不能从外部访问

我有一个用于文件存储的Debian Linux服务器。 它在本地networking中,在路由器(openwrt)中configuration端口转发。 我有时候会把服务器连接到一个OpenVPN服务器,出于不同的原因,下载文件只能在某些区域访问。 我可以使用SSH从networking外部访问它,但是只要将服务器连接到OpenVPN,所有来自WAN端的请求都会超时。 本地networking内的机器仍然可以访问服务器,而不会出现任何问题。 所以我试图实现的是尽pipe有一个临时的OpenVPN连接,服务器仍然可以从外部连接访问。 我一直在试图了解,通过在服务器和路由器(所有接口)上运行tcpdump,使用下面的命令发生了什么事情,但我仍然无法find在结果文件中超时的请求… tcpdump -i any -v -w capture.cap 我的第一个猜测是,OpenVPN客户端做了一些阻止传入的请求与非本地的来源,但后来我想我会看到在路由器上的数据包捕获请求至less…传入请求到其他机器确实工作而服务器的OpenVPN连接处于活动状态,但是至less在服务器端而不是路由器端会出现问题。 所以我有点不知所措,我不明白这里发生了什么。 有任何想法吗? 编辑:从Esabuild议netstat -r的输出: root@server1:~# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default 10.10.31.1 128.0.0.0 UG 0 0 0 tun0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 10.10.31.0 * 255.255.255.192 U 0 […]

有没有办法控制谁可以访问DNS服务器?

除了在防火墙级别进行IP白名单,有没有一种方法可以让特定的授权人员联系和使用公共IP上的DNS服务器? 如果我正确理解OSI模型,如果我没有记错,则不能使用MAC地址。 像OpenDNS这样的地方有一个基于订阅的模型,所以我认为有一种可能的方式可以控制谁可以访问你的DNS服务器? 目标:这个想法是为具有特定业务/客户端的DNS服务器设置自定义logging,但也不希望只允许任何人使用DNS服务器。

Nginx允许PHP文件仅用于某些IP

我正在使用下面的指令来阻止几个文件types的执行 location ~* (\.php$|\.htaccess$|\.git) { deny all; } 我怎样才能允许一个特定的IP地址执行一个PHP脚本? 我尝试了以下来允许执行一个PHP脚本,但不工作.. location ~ ^adminer.php { fastcgi_pass php-fpm:9000; fastcgi_index adminer.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; include fastcgi_params; }

日志文件大小限制

我有一个脚本,每隔5分钟由cron运行,附加>> path/logfile.log以存储输出。 比方说,我有这个脚本运行了几年, 我必须担心这个文件越来越大,也就是说,我是否必须定期手动缩短它?