Resetujący się MOTD w Ubuntu
Ostatnio bawiąc się i modyfikując plik /etc/motd zauważyłem, że po restarcie zawartość tego pliku zostaje przywrócona do tej sprzed jakichkolwiek modyfikacji. Problem ten wyjątkowo mnie zdziwił, ponieważ wcześniejsza wersja Ubuntu (Dapper Drake) nie sprawiła mi tego typu problemu.
Za całość jest odpowiedzialny plik /etc/init.d/bootmisc.sh, oraz plik /etc/motd, który jest tylko symbolicznym linkiem do /var/run/motd.
W pliku /etc/init.d/bootmisc.sh znajdziemy coś takiego:
# Update motd
uname -snrvm > /var/run/motd
[ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
Jak widać, za każdym razem zawartość pliku /var/run/motd zostaje zastąpiona. Także można zakomentować (dodać # przed każdą linijką) ten fragment, a potem dowolnie modyfikować plik /var/run/motd, bez obaw o jego reset .
Tak właściwie to możemy usunąć plik /etc/motd, oraz stworzyć czysty plik tekstowy (np. poleceniem "# touch /etc/motd"). Z tego co zauważyłem, symboliczny link miał chmody 777 jednakże najlepiej będzie ustawić chmody na 644 (dzięki eleven za uświadomienie). Teraz już możemy edytować zawartość pliku /etc/motd bez obaw, że po restarcie zostanie zmodyfikowany.
Wprawdzie skrypt bootmisc.sh nadal będzie modyfikować (tzn, jeżeli nie zakomentujemy fragmentu za to odpowiedzialnego) plik /var/run/motd to jednak ten fakt nie wpłynie na plik /etc/motd. Przypominam, że on już nie jest symbolicznym dowiązaniem ;-]
Komentarze (e307316)
eleven
Dając 777 ustawiasz +rwx dla wszystkich, a to nie jest do końca pożądany efekt…
z3ppelin
A nie lepiej po prostu stworzyć /etc/motd.tail i tam wpisać ten swój motd? Przecież skrypt właśnie z tego pliku bierze zawartość /var/run/motd…
radmen
Eleven: pamiętaj, że to jest zwykły plik tekstowy, także prawa do wykonywania (+x) nic nie zrobią, chociaż podejrzewam, że chodz Ci o to, że inni będą mogli to modyfikować, oczywiście można zmienić chmody na np 644.
z3pp3lin: nie jest lepiej, bo przed tym jeszcze wywali zawartość polecenia uname.
eleven
radmen: Mimo wszystko, takich rzeczy nie powinno się robić. Symlinki mają zawsze prawa 777, które są nieistotne – i tak system sprawdza prawa pliku docelowego.
radmen
Hmm ok, zgadzam się z Tobą, zaraz poprawię wpis