Почему перенаправление (>) иногда не работает, а добавление (>>) работает?

Первым является вывод от lsof для единственного PID, показывающего соединения открытой сети:

lsof -p 3075 -a -i TCP

Вторым является дополнительное от журнала веб-сервера, это, кажется, находится в форме:

client-ip vhost-name URI-path

Можно заставить Apache регистрироваться непосредственно в том формате с CustomLog и/или LogFormat:

LogFormat "%a %v %U"

хотя это почти наверняка a grep | awk (или эквивалентный) от более всестороннего формата журнала.

7
04.05.2015, 13:43
1 ответ

Это - вероятно, ошибка в политике SELinux относительно semanage двоичный файл (который имеет его собственный контекст semanage_t) и /tmp каталог, который имеет его собственный контекст также - tmp_t.

Я смог воспроизвести почти те же результаты на своем CentOS 5.6.

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

Когда я пытался использовать файл в другом каталоге, я получил нормальные результаты

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

Различие между /tmp и /root их контексты

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

И наконец, после попытки перенаправить в файл в /tmp У меня есть следующие ошибки в /var/log/audit/audit.log

type=AVC msg=audit(1310971817.808:163242): avc:  denied  { write } for  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=file
type=AVC msg=audit(1310971838.888:163255): avc:  denied  { append } for  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 login -l  | tee /tmp/users.txt > /tmp/users1.txt
# file /tmp/users.txt 
/tmp/users.txt: ASCII text
# file /tmp/users1.txt 
/tmp/users1.txt: ASCII text
2
27.01.2020, 20:20

Теги

Похожие вопросы