当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu关于文件重定向的bug
帖子发表于 : 2007-06-10 4:43 

注册: 2007-01-09 11:09
帖子: 557
地址: 廣州
送出感谢: 0 次
接收感谢: 2
用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版本会不会有这个问题。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-06-10 11:11 

注册: 2007-04-09 12:19
帖子: 119
送出感谢: 0 次
接收感谢: 0 次
可以用tee
引用:
ls -al |sudo tee /etc/ls.txt


追加的话
引用:
ls -al |sudo tee -a /etc/ls.txt


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-06-10 15:03 

注册: 2007-01-09 11:09
帖子: 557
地址: 廣州
送出感谢: 0 次
接收感谢: 2
thword 写道:
可以用tee
引用:
ls -al |sudo tee /etc/ls.txt


追加的话
引用:
ls -al |sudo tee -a /etc/ls.txt



多谢这位兄弟。ubuntu真好,但愿能保持下去。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-06-10 15:14 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
恩,我也已经发现这个问题了,个人理解是
引用:
sudo ls -al > /etc/ls.txt

这个命令的sudo只影响到了红色部分,而不会对重定向符后面部分产生影响,这就好比 sudo command1 && command2 只有command1会以root运行一样。


_________________
关注我的blog: ε==3


最后由 bones7456 编辑于 2007-06-10 15:24,总共编辑了 1 次

页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-06-10 15:16 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
echo 'ls -al > /etc/ls.txt ' |sudo sh


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-06-11 2:07 

注册: 2007-01-09 11:09
帖子: 557
地址: 廣州
送出感谢: 0 次
接收感谢: 2
BigSnake.NET 写道:
echo 'ls -al > /etc/ls.txt ' |sudo sh


这位兄弟的写法够绝的,强,谢谢。


页首
 用户资料  
 
7 楼 
 文章标题 : Re:
帖子发表于 : 2009-10-21 9:12 

注册: 2008-11-08 18:34
帖子: 627
送出感谢: 0 次
接收感谢: 1
janker2lonely 写道:
BigSnake.NET 写道:
echo 'ls -al > /etc/ls.txt ' |sudo sh


这位兄弟的写法够绝的,强,谢谢。

:em06 认同下


_________________
气血鼓荡,身体发胀,偶飘上头,三时舒畅


页首
 用户资料  
 
8 楼 
 文章标题 : Re: ubuntu关于文件重定向的bug
帖子发表于 : 2009-10-22 20:46 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
这不是 BUG。

也可以这么解决:

sudo sh -c "ls -l > /etc/ls.txt"


页首
 用户资料  
 
9 楼 
 文章标题 : Re: ubuntu关于文件重定向的bug
帖子发表于 : 2009-10-24 1:49 
头像

注册: 2007-05-28 11:17
帖子: 105
送出感谢: 0 次
接收感谢: 0 次
sudo 使得ls 进程具有root的uid
而文件是shell进程产生的


页首
 用户资料  
 
10 楼 
 文章标题 : Re: ubuntu关于文件重定向的bug
帖子发表于 : 2009-10-25 18:07 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
lululau 写道:
sudo 使得ls 进程具有root的uid
而文件是shell进程产生的

> 由当前用户shell解析


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
11 楼 
 文章标题 : Re: ubuntu关于文件重定向的bug
帖子发表于 : 2009-10-30 14:32 

注册: 2006-08-17 16:34
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
跳进万年老坑


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译