Während des Studiums für das RHCE bin ich auf eine Situation gestoßen, in der die Standardumleitung nicht funktioniert in 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
Dies funktioniert jedoch:
# 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
Warum ist das so?
1. Update:
Berechtigungen:
# ls -ld /tmp
drwxrwxrwt. 8 root root 4096 Jul 17 15:27 /tmp
ACLs (kein ACL-Mount, aber nur für den Fall):
# getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
Und ich führe alle Befehle als aus root
(daher die Hash-Eingabeaufforderung).
2. Update
Per Caleb, vollständige Liste der Berechtigungen von /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
3. Update:
Per Hello71:
# mount | grep /tmp
# mount | grep -w '/'
/dev/mapper/vg_svr-tap-lv_root on / type ext4 (rw)
Antworten auf Gilles 'Fragen:
Haben Sie darüber in einem Buch gelesen oder haben Sie diese Situation auf einer realen Maschine erreicht?
Dies wurde bemerkt, als ein Labor in einem Buch auf einer realen Maschine durchgeführt wurde.
Wird SELinux verwendet?
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
Einige Linux-on-Linux-Virtualisierung?
Ja. KVM / QEMU Gast.
Ich stimme der Anfrage von Hello71 zu, außer bitte grep / tmp / proc / mounts
Nichts passt zusammen.
Auch env | grep '^ LD_' bitte.
Nichts passt zusammen.
Oh, und können wir aktive Angriffe ausschließen?
Ja wir können. Ich bin der einzige, der Zugang zu diesem Gast hat.
ls -al
for / tmp und /tmp/users.txt geben?file
Befehl vor und nach der E / A-Umleitung hinzu. Ist das ausreichendmount | grep /tmp
?Antworten:
Es ist wahrscheinlich ein Fehler in der SELinux-Richtlinie in Bezug auf
semanage
Binärdateien (die einen eigenen Kontext habensemanage_t
) und/tmp
Verzeichnisse, die auch einen eigenen Kontext haben -tmp_t
.Ich konnte auf meinem CentOS 5.6 fast die gleichen Ergebnisse reproduzieren.
Als ich versuchte, eine Datei in einem anderen Verzeichnis zu verwenden, erhielt ich normale Ergebnisse
Unterschied zwischen
/tmp
und/root
ist ihr KontextUnd schließlich habe
/tmp
ich nach dem Versuch, in eine Datei umzuleiten, folgende Fehler in/var/log/audit/audit.log
Interessanter Hinweis: Die Umleitung der
semanage
Ausgabe in die Pipe funktioniert einwandfreiquelle