2011-8-3 17:44:36
查找文件夹下文件的总数
find ./ -type f |wc -l
/etc/osso-af-init/real-af-services: Error, X server did not start
/etc/osso-af-init/get-devlock.sh: line 6: dbus-send: not found
这部分是设置默认行为,比如在不使用sudo -u选项时默认用户是什么。个人认为比较有用的几个是:
logfile、runas_default、runaspw、env_keep、env_delete(如果你有什么其它选项感觉不错可以告诉我,其实还有一个env_check不明白有什么用)
logfile:改变默认sudo日志位置,使用格式:
Defaults logfile = /var/log/sudolog
当执行sudo后就会在sudolog这个文件中有一条记录,记录格式如下:
2月 15 16:15:52 : testuser : TTY=pts/1 ; PWD=/home/skiron/downloads ;
USER=skiron ; COMMAND=/bin/rm aliedit.sh
testuser这个是运行sudo的用户,PWD是执行命令的目录,USER=skiron是testuser以skiron身份运行的命令,COMMAND这里就是所执行的命令是什么。
runas_default:改变sudo在不使用-u选项时默认用户,使用格式:Defautls runas_defalut = skironrunaspw:
开启了访选项后会要求输入runas_default的用户密码,而不是自己的,使用格式:Default:Users_Alias runaspwPS:
Users_Alias中的用户名都会被要求输入runas_default的用户密码env_keep:在使用sudo后传递的环境变量是什么!多个环境变量放在双引号中用空格分隔。
使用格式:Defaults env_keep = "DISPLAY HOME"env_delete
使用方法同上PS:man page里写了这么一句,意思是说只有在env_keep和env_check中提及的环境变量在使用sudo时才会被传递。有一个叫env_reset的选项它是默认开启的,作用是仅包含LOGNAME, SHELL, USER, USERNAME和the SUDO_* 变量。env_keep和env_check包含的命令会自动添加进来。再PS:这几个ENV选项我试它们的用法。
好现在写几个我自己测试过的例字:(1)如果想让用户testuser只能运行ls命令:
testuser ALL= /bin/ls或testuser ALL=(root) /bin/lsPS:这里的"(root)"写不写无所谓,因为在修改默认设置时,默认的Runas用户就是root.
(2)加强一下刚才的命令,如果想让用户testuser只能运行ls命令,不可以使用命令行参数:testuser ALL= /bin/ls ""PS:
一对双相号和ls之间有一个空格要注意一下;最后解释一下ALL,它表示任何情况都匹配成功,在本例中表示“所有的主机”
(3)再次加强一下,如果想让用户testuser可以执行/bin目录下的命令,但除了ls之外testuser ALL= /bin/, !/bin/lsPS:这里的“!”是否定标记,这行例子的顺序很重要,
写错了顺序的话,ls还是可以运行。还有就是/bin/,一定要写最后的“/”不然会提示错误,因为sudo会把/bin当成一个命令,而不是目录。
结束:如果有任何疑问欢迎提问,我们可以一起讨论一下:P