在研究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] 删除。
我来说两句