Czy ktoś może mi powiedzieć, co zrobiłem tutaj źle?
Oto ostateczne pytanie:
Dlaczego, gdy używam polecenia logger, nie mogę uzyskać jego danych wyjściowych do niestandardowego pliku dziennika /var/log
?
W moim skrypcie:
logger -i -t ANM -p local7.info "This is a local 7 test"
W rsyslog.conf
I dołączyłem na końcu pliku:
local7.* /var/log/anm.log
Ponadto skrypt ma uprawnienia do /var/log/anm.log
pliku
* AKTUALIZACJA *
Zapomniałem zrestartować usługi rejestrowania. Próbowałem zrestartować komputer i service rsyslog restart
wciąż nie ma zmian. Tekst testowy nie pojawia się w, /var/log/anm.log
ale pojawia się w/var/log/syslog
* AKTUALIZACJA *
Jakie uprawnienia są /var/log/"yourlogfilehere"
potrzebne? Owner
, Group
, rwx
?
Próbowałem ustawić grp i own na root i na nazwę użytkownika uruchamiającą komendę logger. Z żadną zmianą.
Próbowałem także utworzyć pliki dziennika w niestandardowym katalogu w /var/log
. tj. /var/log/anm/anm.log
i ustawienie obu typów uprawnień do katalogu.
* AKTUALIZACJA *
rsyslogd jest uruchomiony
syslog 598 0.0 0.1 31060 1292 ? Sl 03:02 0:02 rsyslogd -c5
a oto dane wyjściowe z mojego /etc/rsyslog.conf
pliku
# /etc/rsyslog.conf Configuration file for rsyslog.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Filter duplicated messages
$RepeatedMsgReduction on
#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
#
# Where to place spool files
#
$WorkDirectory /var/spool/rsyslog
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
local7.* /var/log/anm.log
Próbowałem także zainstalować /etc/rsyslog.d/50-default.conf
(korzystam z Ubuntu 12.04 LTS)
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
#user.* -/var/log/user.log
local7.* /var/log/anm.log
* AKTUALIZACJA *
Cóż, w końcu to rozgryzłem. Chciałbym, żeby ktoś mi na to odpowiedział. Zajęło mi kilka dni, aby dowiedzieć się, co było nie tak, ale wydaje mi się, że nie ma zbyt wielu osób na superużytkowniku.
Problem dotyczył uprawnień do pliku niestandardowego pliku dziennika, tak jak pierwotnie teoretyzowałem. Myślałem, że mam prawidłowe uprawnienia, ale okazuje się, że właścicielem musi być syslog
i grupa adm
. Ustaliłem to, porównując do user.log
pliku. Po zmodyfikowaniu i ponownym przetestowaniu uprawnień wszystko działa idealnie! Mam nadzieję, że pomoże to komuś innemu szybciej niż byłem w stanie znaleźć odpowiedź.
Odpowiedzi:
Cóż, w końcu to rozgryzłem. Chciałbym, żeby ktoś mi na to odpowiedział. Zajęło mi kilka dni, aby dowiedzieć się, co było nie tak, ale wydaje mi się, że nie ma zbyt wielu osób na superużytkowniku.
Problem dotyczył uprawnień do pliku niestandardowego pliku dziennika, tak jak pierwotnie teoretyzowałem. Myślałem, że mam prawidłowe uprawnienia, ale okazuje się, że właścicielem musi być „syslog”, a grupa „adm”. Ustaliłem to, porównując z plikiem user.log. Po zmodyfikowaniu i ponownym przetestowaniu uprawnień wszystko działa idealnie! Mam nadzieję, że pomoże to komuś innemu szybciej niż byłem w stanie znaleźć odpowiedź.
Oto ostateczne uprawnienia
źródło
service restart
zapoznaniu się z regułą i przy pierwszym odpowiednim wywołaniu zlogger
tworzy plik z ustawionymi prawidłowymi uprawnieniami.@Atomiklan wspomniał, że musiał zmienić właściciela / grupę swojego pliku niestandardowego na syslog / adm. Próbowałem tego i zadziałało ...
Ale komentarz @ MichaelKjörling również wydawał się słuszny: dlaczego nie pozwolić, aby demon syslog utworzył plik?
Kluczem w moim przypadku (i sugeruję OP) jest to, że użytkownik syslog nie miał uprawnień do zapisu w katalogu mojego dziennika niestandardowego . Zrobiłem
chmod o+w
, zrestartowałem rsyslog, a mój plik dziennika z radością pojawił się tam, gdzie powinien ... ze syslog / adm jako użytkownik / grupa.źródło
musi być:
uruchomić zdalne logowanie!
źródło