月度归档:2013年09月

Linux下限制某个IP访问服务

Linux下,要限制某个IP地址访问本机的服务,/etc/hosts.deny 和 /etc/hosts.allow,其中host.deny中定义的IP是被限制的IP地址,hosts.allow中是被允许的IP地址,后者的设置会覆盖前者的设置。
比如,要限制 113.140.17.30 访问本机的SSHD服务,则/etc/hosts.deny的设置如下:
sshd:113.140.17.30:deny  #可以省略deny

比如,要允许192.168.1.1访问所有的本机服务,则/etc/hosts.allow的设置如下:
ALL:192.168.1.1

曾经遇到过一个问题,就是在hosts.deny中设置了被限制的IP地址,但是被限制的IP地址依然可以访问。最后发现就是在hosts.allow中有一条“sshd: ALL”的记录,删除这个记录,问题就解决了。

Xlib: connection to “:0.0” refused by server的解决方法

   有时候启动图形界面时常常遇到“Xlib: connection to ":0.0" refused by server”的错误,如:

[root@AS-10 ~]# wireshark 
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
 
(wireshark:7852): Gtk-WARNING **: cannot open display:  
[root@AS-10 ~]# 

   网上很多人都说是在root的用户下执行:xhost + 或者 xhost local:oracle non-network local connections being added to access control list
但是当如上方法都不能解决时,不放尝试设置环境变量 
export DISPLAY=":1.0" 或许就能解决问题了。
   如果还不行,就执行一下vncserver, 然后查看一下VNC上面显示的窗口号,然后根据实际情况修改。DISPLAY=:0.0指本地终端图形,DISPLAY=:1.0通常是指VNC上面显示的窗口号。

Linux中通过进程ID获取程序的启动路径

shell脚本如下:

#!/bin/sh

 
if [ "0$1" == "0" ]; then
  echo "Usage: $0 PID";exit 1;
fi
 
if [[ $1 =~ "^[0-9]*$" ]]; then
  num=`ps -ef|grep -i $1|grep -v grep|grep -v $0|wc -l`
  if [ $num -gt "1" ]; then
    echo "Get too many process, please look: /proc/$1";exit 1;
  fi
  ps -ef|grep -i $1|grep -v grep|grep -v $0|awk '{print $2,system("ls -l /proc/"$2)}'|grep cwd
else
  echo "Usage: $0 PID";exit 1;
fi
exit 0