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 ;-]

5 Responses to “Resetujący się MOTD w Ubuntu”

  1. eleven March 24, 2007 at 8:42 am #

    Dając 777 ustawiasz +rwx dla wszystkich, a to nie jest do końca pożądany efekt…

  2. z3ppelin March 24, 2007 at 8:42 am #

    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…

  3. radmen March 24, 2007 at 8:42 am #

    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.

  4. eleven March 24, 2007 at 8:42 am #

    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.

  5. radmen March 24, 2007 at 8:42 am #

    Hmm ok, zgadzam się z Tobą, zaraz poprawię wpis