41:自动执行USB装置

难度:高级

应用程序:hotplug脚本

当添加一个特殊的外设时想要运行一个指定的应用程序?USB hotplug后台进程可以帮你!当有USB装置添加到系统中时,这个服务就会得到通知。对于需要内核驱动的装置,hotplug后台进程将在/etc/hotplug/usb/下调用一个同名的脚本,例如,这里的一个名为usb-storage的脚本。你可以直接在这个脚本的后面添加你自己的命令或者更好的是,在它的最后添加一行来让脚本在别的地方执行)。那么你就可以播放音乐,autosync文件译注:影像文件),搜寻图片或者其他什么的。

对于不依赖于内核驱动的装置,有一个检查表,可以用来匹配USB产品和制造商ID。很多发行版已经设置好去做一些事情,但是你可以依据你的需要定制这些脚本。到http://jphoto.sourceforge.net/ selected=sync去看一个我们能做什么的例子。

42:重命名和调整图片大小

难度:高级

应用程序:bash

很喜欢你的新相机但是不能容忍那个糟糕的名字?你也想要准备发布它们到网上吗?没问题,一个简单的bash脚本真是你所需要的:

  1. #!/bin/sh 
  2. counter=1 
  3. root=mypict 
  4. resolution=400x300 
  5. for i in `ls -1 $1/*.jpg`; do 
  6. echo "Now working on $i" 
  7. convert -resize $resolution $i ${root}_${counter}.jpg 
  8. counter=`expr $counter + 1` 
  9. done 

保存这个脚本到一个名为picturename.sh的文件中,然后用一下命令执行它:

  1. chmod u+x picturename.sh 

然后在你的某个路径下存储它。现在,如果你在directory /path/to/pictdir下有一堆.jpg文件,所有你需要做的就是执行这个:

  1. picturename.sh /path/to/pictdir 

而在当前的目录下你会发现 mypict_1.jpg, mypict_2.jpg之类的,它们是你初始图片调整大小后的版本。你可以根据你的需要改变脚本,或者,你只是期待一个超级简单的图片大小调整,试着看看mogrify命令和它的-geometry参数。

43:安全登出

难度:简单

应用程序:bash

当你在一台共享机器上使用一个控制台,或者甚至只是在你自己的桌面使用控制台,都可能会发现当你登出时,屏幕仍然会显示谁已经登入正在做什么的痕迹。大多数发行版本将会清屏,但是有些不会。你可以通过编辑你的 ~/.bash_logout文件然后增加这个命令来解决问题:

  1. clear 

你也可以添加任何其他的有用命令在这里。

44:传输文件但不使用ftp或者scp

难度:简单

应用程序:netcat

需要传输一个目录给其他服务器但是没有FTP或者SCP使用权?那么这个小技巧将会帮助你使用netcat功能。在目的服务器上运行:

  1. nc -l -p 1234 | uncompress -c | tar xvfp - 

并且在发送服务器上运行:

  1. tar cfp - /some/dir | compress -c | nc -w 3 [destination] 1234 

现在你就可以不需要FTP并且不需要root权限,就能传送文件了。

45:备份一个Debian包清单

难度:简单

应用程序:Debian

如果你正在运行Debian并且找不到你正在运行的包,为你当前正在安装的包做一个备份是非常有用的。你可以运行如下得到一个清单:

  1. dpkg --get-selections > debianlist.txt 

这将把全部的清单放到debianlist.txt中,这样你就可以通过如下代码在不同的计算机上安装相同的包。

  1. dpkg --set-selections < debianlist.txt 

当你复制你的系统到一个新的计算机上时,你要记住你还需要从/etc中复制配置文件。

要实际安装这些选项,使用如下指令:

  1. apt-get -u dselect-upgrade 

46:强化ssh

难度:简单

应用程序:ssh

尽管SSH是一个非常安全的连接服务器的方式,这里还有两个简单的改变,可以让你进一步增强它的安全性。首先,你当然不希望别人直接以root用户登入——他们应该以普通用户登陆,然后使用su命令来转换。你可以在/etc/ssh/ssh_config 文件中通过添加如下代码改变这个件事:

  1. PermitRootLoginno 

现在唯一能得到root特权的方式是通过su,这意味着入侵者现在需要破解两个密码来得到全部的使用权。当你编辑这个文件时,找到这样一行:

  1. Protocol 2, 1 

然后把它改为如下:

  1. Protocol 2 

这将消除最初的SSH协议中的撤销选项,现在被认为是非常易于攻击的。

47:停止回应ping

难度:简单

应用程序:sysctl

ping在找出网络拓扑结构时是非常有用的命令,缺点是它只能做这件事,而且会使得网络上的黑客们更容易瞄准现场服务器。但是你可以告诉Linux忽略所有的ping服务器将不会回应。这里有很多的方法来实现它,但是最好的是使用sysctl。关掉ping回应:

  1. sysctl -w net.ipv4.icmp_echo_ignore_all=1 

想要打开它,使用:

  1. sysctl -w net.ipv4.icmp_echo_ignore_all=0 

关掉ping对你来说是非常严重的,看看接下来的技巧。

48:降低ping速率

难度:简单

应用程序:sysctl

可能你想要保持服务器回复ping的功能,但是又想从被熟知的“ping flood”封包洪流)的攻击中保护自己。那么你要如何完成这一壮举呢?最简单的方法是降低回应ping服务器的速率。它们仍然是有效的,但不会使服务器过载。

  1. sysctl -w net.ipv4.icmp_echoreply_rate=10 

当回复被当作一个信号地址发送时,这将会降低速率。

49:当登出的时候清理KDE

难度:简单

应用程序:bash

在Windows中有很多程序会做一些清除网络缓存,移除临时文件事情。Linux上如果也可以这样是不是很cool呢?使用KDE,你甚至不需要安装任何新的软件,startkde脚本将会自动的执行你放在特殊地方的脚本。

首先,你需要在你的.kde目录下创建一个命令shutdown的目录:

  1. mkdir /home/username/.kde/shutdown 

现在创建一个脚本,用来在关机时执行一些你想要的事情。这里是一个例子:

  1. #!/bin/bash 
  2. #clear up temp folder 
  3. rm -rf ~/tmp/* 
  4. #clear out caches 
  5. rm -rf ~/.ee/minis/* 
  6. rm -rf ~/.kde/share/cache/http/* 
  7. # delete konqueror form completions 
  8. rm ~/.kde/share/apps/khtml/formcompletions 

现在确保你设置了正确的权限:

  1. chmod ug+x ~/.kde/shutdown/cleanup.sh 

或者随便你叫它什么)。可以清除敏感文件,也可以通过将脚本放在你的默认KDE文件夹中有一个名为shutdown的子文件夹里,给所有用户一个全局的关机脚本。找出你的默认KDE目录在哪里,试一下:

  1. kde-config --path exe 

50:无密码的ssh

难度:中等

应用程序:ssh

厌烦了每次登陆你的服务器时都要输入密码?ssh也支持密钥,所以当你登陆桌面时你只能输入你的密码。在你的桌面机器上生成一个密钥对:

  1. ssh-keygen -t dsa -C your.email@ddress 

为你的密钥输入一个口令。这会将密钥放到 ~/.ssh/id_dsa and the public key in ~/.ssh/id_dsa.pub中。现在看看你是否有了一个正在运行的ssh-agent。

  1. echo $SSH_AGENT_PID 

如果安装了ssh-agent,大部分窗口管理器都会自动运行它。如果没有安装,开启一个:

  1. eval $(ssh-agent) 

现在,告诉这个代理你的密钥:

  1. ssh-add 

然后输入你的口令。你需要在每次登陆时都输入口令,如果你是使用X,尝试添加:

  1. SSH_ASKPASS=ssh-askpass ssh-add 

到你的.xsession文件。你可能需要安装ssh-askpass)现在为每个你需要登入的服务器都创建这个目录 ~/.ssh,然后复制这个文件~/.ssh/id_dsa.pub into it as ~/.ssh/authorized_keys 。如果你是手动开启ssh-agent,当你登出时,使用如下代码终止它:

  1. ssh-agent -k 


相关内容