ubuntu关于文件重定向的bug
发表于 : 2007-06-10 4:43
用redhat那么多年,最近半年被ubuntu吸引住了,用了几个月发现了一个非常有趣的问题,就是文件重定向的问题,以前用redhat的时候从未遇过。看,大家可以在命令行下输入以下命令:
ls -al > /etc/ls.txt
哈,会得到一个pemission denied的提示,对,由于权限不够,忘了,这是基于debian的,于是sudo ls -al > /etc/ls.txt,但是结果还是一样,于是将/etc/ls.txt换成/tmp/ls.txt,OK,成功。恩,于是再试,几乎将所有的命令重定向为/etc目录下的文件时,都出现了pemission denied的提示,失败。后来查看/tmp下生成的文件,发现属主为xxx(xxx是我的当前用户),看到了吧?!虽然用了sudo执行命令然后重定向,但是重定向的时候依然以当前用户来重定向。这样的话在/etc目录下生成文件当然是失败的了,因为该目录的权限只有root才有写入权,只要重定向的目录有写入权就不会出现这个问题了,如/tmp。尽管查出了原因,但是还是有些不爽,毕竟有些软件的配置文件是保存于etc目录的,如vsftpd,这样的你想用重定向命令>>来追加内容,比如新增加ftp用户,这样写SHELL脚本的时候就不得不先把文件重定向到/tmp,然后再cp到/etc目录了。大家可以试试,有解决的好办法记得回帖通知兄弟我哦!先在此谢过!
对了,忘了说,兄弟我用的是7.04,因为我以前没用过debian,不知道debian和以前的ubuntu版本会不会有这个问题。
ls -al > /etc/ls.txt
哈,会得到一个pemission denied的提示,对,由于权限不够,忘了,这是基于debian的,于是sudo ls -al > /etc/ls.txt,但是结果还是一样,于是将/etc/ls.txt换成/tmp/ls.txt,OK,成功。恩,于是再试,几乎将所有的命令重定向为/etc目录下的文件时,都出现了pemission denied的提示,失败。后来查看/tmp下生成的文件,发现属主为xxx(xxx是我的当前用户),看到了吧?!虽然用了sudo执行命令然后重定向,但是重定向的时候依然以当前用户来重定向。这样的话在/etc目录下生成文件当然是失败的了,因为该目录的权限只有root才有写入权,只要重定向的目录有写入权就不会出现这个问题了,如/tmp。尽管查出了原因,但是还是有些不爽,毕竟有些软件的配置文件是保存于etc目录的,如vsftpd,这样的你想用重定向命令>>来追加内容,比如新增加ftp用户,这样写SHELL脚本的时候就不得不先把文件重定向到/tmp,然后再cp到/etc目录了。大家可以试试,有解决的好办法记得回帖通知兄弟我哦!先在此谢过!
对了,忘了说,兄弟我用的是7.04,因为我以前没用过debian,不知道debian和以前的ubuntu版本会不会有这个问题。