为什么有时重定向(>)有时不起作用,而附加(>>)却起作用?

贝尔明·费尔南德斯(Belmin Fernandez)

在研究RHCE时,我遇到了stdin重定向在以下情况下不起作用的情况bash

# file /tmp/users.txt
/tmp/users.txt: cannot open `/tmp/users.txt' (No such file or directory)  
# semanage login -l > /tmp/users.txt
# file /tmp/users.txt
/tmp/users.txt: empty

但是,这可行:

# file /tmp/users.txt
/tmp/users.txt: cannot open `/tmp/users.txt' (No such file or directory)
# semanage login -l >> /tmp/users.txt
# file /tmp/users.txt
/tmp/users.txt: ASCII text

为什么会这样呢?

第一次更新:

权限:

# ls -ld /tmp
drwxrwxrwt. 8 root root 4096 Jul 17 15:27 /tmp

ACL(不是ACL挂载,但以防万一):

# getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

我正在执行所有命令root(因此,出现了哈希提示)。

第二次更新

Per Caleb的完整权限列表/tmp

# ls -al /tmp
total 40
drwxrwxrwt.  8 root    root    4096 Jul 17 15:37 .
dr-xr-xr-x. 26 root    root    4096 Jul 17 15:07 ..
drwx------.  2 melmel  melmel  4096 Jul 16 21:08 .esd-500
drwxrwxrwt.  2 root    root    4096 Jul 17 15:07 .ICE-unix
drwx------.  2 gdm     gdm     4096 Jul 17 15:08 orbit-gdm
drwx------.  2 gdm     gdm     4096 Jul 17 15:07 pulse-5E9i88IGxaNh
drwx------.  2 melmel  melmel  4096 Jul 16 21:08 pulse-329qCo13Xk
-rw-------.  1 root    root       0 Jul 16 14:32 tmpXd9THg
-rw-------.  1 root    root       0 Jul 16 12:55 tmpie0O98
-rw-------.  1 root    root       0 Jul 16 20:23 tmpr10LrK
-r--r--r--.  1 root    root      11 Jul 17 15:07 .X0-lock
drwxrwxrwt.  2 root    root    4096 Jul 17 15:07 .X11-unix
-rw-r--r--.  1 root    root     865 Jul 16 20:20 yum.conf.security
-rw-------.  1 root    root       0 Jul 10 14:57 yum.log

第三次更新:

每个Hello71:

# mount | grep /tmp
# mount | grep -w '/'
/dev/mapper/vg_svr-tap-lv_root on / type ext4 (rw)

吉勒斯问题的答案:

这是您在书中读到的东西,还是您在真实的机器上遇到了这种情况?

在真实机器上的书中进行实验时注意到了这一点。

是否正在使用SELinux?

# sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

一些Linux-on-Linux虚拟化?

是的。KVM / QEMU来宾。

我第二次Hello71的请求,除了请grep / tmp / proc / mounts

什么都没有。

还包括| 请grep'^ LD_'。

什么都没有。

哦,我们可以排除主动攻击吗

我们可以。我是唯一可以访问此访客的人。

亚历克斯

关于semanage二进制文件(具有自己的上下文semanage_t)和/tmp目录(也具有自己的上下文,这可能是SELinux策略中的错误tmp_t

我能够在CentOS 5.6上重现几乎相同的结果。

#文件/tmp/users.txt 
/tmp/users.txt:错误:无法打开`/tmp/users.txt'(没有这样的文件或目录)
#管理登录-l> /tmp/users.txt#
文件/ tmp /users.txt 
/tmp/users.txt:空
#管理登录-l >> /tmp/users.txt#
文件/tmp/users.txt 
/tmp/users.txt:空

当我尝试在其他目录中使用文件时,我得到了正常结果

#文件/root/users.txt 
/root/users.txt:错误:无法打开`/root/users.txt'(没有这样的文件或目录)
#管理登录-l> /root/users.txt#
文件/ root /users.txt 
/root/users.txt:ASCII文本

/tmp之间的区别/root是它们的上下文

#ls -Zd / root / 
drwxr-x ---根root root:object_r:user_home_dir_t / root / 
#ls -Zd / tmp / 
drwxrwxrwt根root system_u:object_r:tmp_t / tmp /

最后,在尝试重定向到文件后,/tmp我遇到了以下错误/var/log/audit/audit.log

类型= AVC消息=审核(1310971817.808:163242):AVC:拒绝{写入} pid = 10782 comm =“ semanage” path =“ / tmp / users.txt” dev = dm 
-0 ino = 37093377 scontext = user_u:system_r :semanage_t:s0 tcontext = user_u:object_r:tmp_t:s0 tclass =文件
类型= AVC msg = audit(1310971838.888:163255):avc:拒绝{append} pid = 11372 comm =“ semanage” path =“ / tmp / users .txt“ dev = d 
m-0 ino = 37093377 scontext = user_u:system_r:semanage_t:s0 tcontext = user_u:object_r:tmp_t:s0 tclass = file

有趣的提示:将semanage输出重定向到管道可以

#semanage登录-l | tee /tmp/users.txt> /tmp/users1.txt#
文件/tmp/users.txt 
/tmp/users.txt:ASCII文本
#文件/tmp/users1.txt 
/tmp/users1.txt:ASCII文本

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么有时不起作用?

来自分类Dev

Ajax有时不起作用

来自分类Dev

ScrollToItemAtIndexPath有时不起作用

来自分类Dev

Ajax有时不起作用

来自分类Dev

crontab有时不起作用

来自分类Dev

为什么别名有时像nameref一样起作用,有时却不起作用?

来自分类Dev

为什么此URLClassLoader有时起作用而有时却不起作用?

来自分类Dev

WPF图像源绑定有时起作用有时不起作用

来自分类Dev

重置令牌有时不起作用?

来自分类Dev

触发点击有时不起作用

来自分类Dev

命名管道有时不起作用

来自分类Dev

胸腺叶片段有时不起作用

来自分类Dev

AccessibilityNodeInfo.performAction()方法有时不起作用

来自分类Dev

Android ImageButton单击有时不起作用

来自分类Dev

字体斜体有时在Firefox中不起作用

来自分类Dev

从数组打印值有时不起作用

来自分类Dev

移相器sprite.kill()有时不起作用

来自分类Dev

抬头通知有时不起作用

来自分类Dev

斯威夫特:String.fromCString()有时不起作用

来自分类Dev

element.remove()方法有时不起作用

来自分类Dev

Android-仅*有时* OnItemClickListener不起作用

来自分类Dev

ClListView Ajax分页有时不起作用

来自分类Dev

jQuery切换有时不起作用

来自分类Dev

表单提交按钮有时不起作用

来自分类Dev

子域有时不起作用

来自分类Dev

Google字体不起作用..有时

来自分类Dev

移相器sprite.kill()有时不起作用

来自分类Dev

鼠标单击有时不起作用

来自分类Dev

触发点击有时不起作用