Articles of linux

PolicyKit与polkit

PolicyKit和polkit有什么区别 ? 他们似乎以不同的方式做同样的事情,似乎可以互换,但似乎也是两回事。 哪一个是首选? 我应该使用哪一个? 为什么在Ubuntu 10.04系统中可以使用这两个软件包? 我知道configuration文件是不同的,但似乎用不同的语法来实现相同的目的:PolicyKit似乎使用/etc/PolicyKit/PolicyKit.conf与XML语法,并且polkit似乎使用/ etc / polkit中的许多文件-1 /使用INI风格的语法。 freedesktop.org的一个说明:我已经花了我一天的更好的一部分了解我现在知道什么,但我仍然困惑。 每个PolicyKit和polkit的文档看起来都不错,但是相互矛盾的信息是将人们从新技术中解脱出来的好方法。

iproute和nat跨设备

我有以下configuration: vlan123@eth0 – range 1.2.3.0/24, with 1.2.3.4 assigned to it br2000 – range 10.2.3.0/24 在ip route我看到: 10.2.3.0/24 dev br2000 proto kernel scope link src 10.2.3.1 在iptables中,我重写传入数据包的目的地(表nat ): -A PREROUTING -d 1.2.3.4/32 -j DNAT –to-destination 10.2.3.4 如果我现在尝试ping地址1.2.3.4 ,我不希望转发,我不幸的是, ip route get 10.2.3.4 from 2.3.4.5 iif vlan123返回: RTNETLINK answers: Invalid cross-device link 这似乎证实,正确的路由不在那里。 可能是什么问题呢? IP转发在sysctl中启用,我也禁用了rp_filter进行testing。

在EC2上为自定义TCP协议装载平衡和保护服务器

我们已经开发了一个自定义的TCP协议来通过套接字与iPhone客户端进行交互,我期待布置我们的生产服务器。 我们将在单个debian EC2实例上运行用erlang编写的服务器,以及在单独的实例上运行mysql(我猜这将被推荐?)。 我正在寻求保护和负载平衡连接到我们的TCP服务器,并看着EC2的ELB,HAProxy,LVM和nginx。 nginx似乎只是http,而且由于我们正在使用一个自定义的协议,所以我正在寻找一些关于这个系统devise的input。 我也想知道路由器/防火墙阻塞对蜂窝networkingISP的影响是什么。 我目前的devise思路是把所有东西都放在端口80到ELB,并将其路由到TCP服务器。 我不完全卖ELB,所以我想知道: 还有什么其他的选项是非HTTP反向代理, SSL可以在反向代理上运行,还是需要在TCP服务器上运行 蜂窝networking的防火墙/路由器解决scheme的任何build议,而不是通过端口80。

为什么我的自定义错误文件相对于每个虚拟主机(apache)?

首先,我的服务器configuration是openSUSE 11.4,我的web服务器是apache 2.2。 我想更改Web服务器的错误文件,但是我不能让Apache知道错误文件与每个虚拟主机都不相关! 我编辑了/ etc / apache中的error.conf文件,并删除了关于本地化的所有废话(不关心),并添加: ErrorDocument 404 /srv/www/errors/404.html 重新启动Apache,然后尝试访问不存在的内容。 输出是: 未find在此服务器上未find请求的URL / notadocument。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。 我检查错误日志,看看这个: [Mon Aug 01 15:34:36 2011] [error] [client xxxx] File does not exist: /home/andreas/www/notadocument [Mon Aug 01 15:34:36 2011] [error] [client xxxx] File does not exist: /home/andreas/www/srv 正如你所看到的,Apache试图查看我的虚拟主机的目录,而不是在服务器的根目录! 我该如何解决?

我如何知道在Linux上创buildTCP连接?

我怎样才能知道某个给定的(如当前打开的)TCP连接创build的时间?

开始使用Upstart时正在发送SIGINT信号

我有一个Linux应用程序,它打开了几个串行设备( /dev/ttyUSB X),并从它们读取/写入。 当我从命令提示符(Ubuntu 10.04,bash)运行它,它完美的作品。 $sudo ./my_program /dev/ttyUSB0 #sudo for permissions on the device 我希望这个程序能够在启动时运行,如果它死了就重新生成 – 所以我把它放到Upstart config( /etc/init/* )中,并把它叫做“ my_service ”。 当我重新启动机器时,my_service执行并运行my_program。 然而,几秒钟后(当它打开ttyUSB并从中读取时),我的进程收到一个SIGINT。 我无法确定它来自哪里。 这不是在设备上的权限问题,他们打开()罚款和几个字节得到转移确定。 使用waitsiginfo()我能够得到0x80或SI_KERNEL 。 所以我知道这不是来自另一个进程,而是来自内核本身。 没有人在控制台上击CTRL – C或ALT – CTL – DEL – 为什么内核给我一个SIGINT ? 更糟糕的是,根据这个信号,我的程序正常退出 – 被Upstart重新生成,并且再次SIGINT'ed! 有什么办法可以找出这个信号源自哪里,为什么? 是否有一定程度的内核debugging,可以启用一些这样的灯光? 为什么Upstart和bash手动启动的不同行为?

使用VSFTPD允许的用户列表

根据这里的Wiki,您只能允许某些用户使用以下configuration通过FTPlogin/etc/vsftp.conf文件: userlist_enable=YES userlist_file=/etc/vsftp.user_list userlist_deny=NO 我configuration了我的系统来使用这个configuration,我只有一个用户,我想通过FTP命名streams公开,所以我的/etc/vsftp.user_list看起来像这样: streams 有趣的是,一旦启用用户列表,我就无法login。 如果我将userlist_enable更改为NO ,则事情可以正常工作,但是如果启用它,则无法login,只会尝试重新连接。 我没有login失败的消息,它只是不断尝试使用lftp重新连接。 我的/etc/vsftp.conf文件在这里的 /etc/vsftp.user_list上可用,我的/etc/vsftp.user_list 在这里可用。 我在这里做错了什么? 我只想使streams用户能够login。

IP_MTU_DISCOVER值(IP_PMTUDISC_xxx)有什么区别?

“man 7 ip”中的IP_MTU_DISCOVER描述太短。 据我所知IP_PMTUDISC_DONT / IP_PMTUDISC_DO值启用/禁用路由上的数据包碎片。 什么是IP_PMTUDISC_WANT和IP_PMTUDISC_PROBE? 他们需要什么? 他们如何影响IPstream量? 他们可以使用UDP吗? 谢谢。

(Linux)Python停止 – 阻止我启动服务

我目前正在我的机器上运行CentOS 5.5,并且正在尝试使用Django,MySQL和Apache来设置构build服务器。 我基本上没有任何经验,而且每次遇到新的错误时,我一直在Google上进行研究。 到目前为止,这是一个决定性的结果,但现在我陷入了最后一步。 # service httpd start Starting httpd: httpd: apr_sockaddr_info_get() failed for jmaxime-linux httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ OK ] # service mysqld start Starting MySQL: : [ OK ] # service buildserverd start Starting buildserverd : [ OK ] 所以显然一切顺利。 但是,我得到以下几点: […]

Linux RAMDisk文件系统在文件系统已满时阻塞写入

我需要设置一个Linux RAMDisk来实现一个队列。 基本思想是将进程写入RAMDisk。 同时还有一些进程监视新文件,并在进入时读取和删除它们。 在写入速度快于读取速度并且RAMDisk填满的情况下,应该阻止写入,直到RAMDisk中有足够的空间来存储正在进入的新文件。 一种select是使用tmpfs,当分配给文件系统的ram被全部使用时,它会“溢出”到磁盘上,但是,由于缓慢的HDD IO,整个系统将会减速,在我的高性能系统那将是不可接受的。 我想理想的是一个文件系统,当RAMDisk已满时自动阻止写入,直到有足够的空间可用。 注意我没有对写入过程的控制权,所以他们没有能力查询空闲空间并等待 – 它们只是简单的写入所有的时间。 任何解决scheme