Úvod do UNIXu

Z ωικι.matfyz.cz
Verze z 10. 6. 2005, 12:07, kterou vytvořil MiEro (diskuse | příspěvky) (SEDCHECK (10.6.2005): reformat)

Přejít na: navigace, hledání
Úvod do UNIXu
Kód předmětu: NSWI095
Přednáší: Libor Forst

Odkazy

Rozširující informace ke zkoušce

Při řešení zkouškových úloh se některé věci vyplatí znát podrobněji nežli byly probírané na přednáškach a cvičeních. Některé z nich naleznete níže. Nerozumíte-li něčemu, co tady není, přidejte to jako nový nadpis a někteří zkušenější to jistě rádi vysvětlí... ;-)

Formát e-mailové zprávy

  • zpráva začíná řádkem From adresa@odesilatele datum
  • následuje zbytek hlavičky emailu, která má formát tag: hodnota
    • hodnota může být rozdělena na více řádcích, v tom případě je na začátku dalších řádků aspoň jeden bílý znak (mezera nebo tabulátor)
  • hlavička obsahuje informace o doručení Received, jedinečný identifikátor zprávy Message-Id a další informace poskytnuté odesílatelem (From, To, Cc, Date, ...)
    • je dobré si uvědomit, že jediný údaj, na kterému lze v emailu alespoň trochu věřit je první řádek zprávy From adresa@odesilatel datum, ostatní údaje vám mohl podvrhnout odesílatel. Bohužel, ani to však nestačí. Aby byl email důvěryhodný, musel by celou cestou putovat mezi mailservery, které si důvěřují a na začátku cesty být odeslán uživatelem, který prokázal svoji identitu. Což se však v současnosti vůbec nedělá a proto pro důvěryhodnou komunikaci potřebujeme emaily šifrovat...
From zaskodnik@matfyz.cz  Thu Jun  9 09:06:05 2005
Return-Path: <zaskodnik@matfyz.cz>
X-Original-To: honzik@ss1000.ms.mff.cuni.cz
Delivered-To: honzik@ss1000.ms.mff.cuni.cz
Received: from localhost (localhost [127.0.0.1])
        by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id E44F12C024
        for <honzik@ss1000.ms.mff.cuni.cz>; Thu,  9 Jun 2005 09:06:04 +0200 (CEST)
Received: from ss1000.ms.mff.cuni.cz ([127.0.0.1])
 by localhost (ss1000 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP
 id 14106-02 for <honzik@ss1000.ms.mff.cuni.cz>;
 Thu,  9 Jun 2005 09:06:03 +0200 (CEST)
Received: from u-pl20 (u-pl20.ms.mff.cuni.cz [195.113.21.150])
        by ss1000.ms.mff.cuni.cz (Postfix) with ESMTP id DFEB52C021
        for <honzik@ss1000.ms.mff.cuni.cz>; Thu,  9 Jun 2005 09:05:37 +0200 (CEST)
From: anicka.dusicka@matfyz.sk
Message-Id: <20050609070537.DFEB52C021@ss1000.ms.mff.cuni.cz>
Date: Thu,  9 Jun 2005 09:05:37 +0200 (CEST)
To: honzik@ss1000.ms.mff.cuni.cz
Subject: pranicko

Preji Ti hezky den! :-)

Zpracovávaní příchozích emailů

Typickým úkolem býva registrace odpovědí nějaké ankety, automatické oznámení o nepřítomnosti adresáta počas jeho dovolené, vzdálené spouštění příkazů přes email, nebo komprese emailu pro zaslání textovky na mobilní telefon.

Hlavní myšlenka řešení spočíva v spuštění nějakého programu pro každý příchozí email. To lze snadno docílit pomocí souboru ~/.forward . Neexistuje-li, všechny příchozí emaily se (typicky) doručují na místo uvedené ve proměnné $MAIL. Vytvořením souboru ~/.forward říkame, že každý email se má doručit na místa uvedené na jednotlivých řádcích tohoto souboru.

Příklad:

/cesta/k/adresaru/soubor_postove_schranky
jina.emailova@adresa.com
\vaslogin
| /cesta/k/adresaru/se/skriptem/jmeno_skriptu parametre pro skript
  • Třetí řádek ukladá emaily na standní místo podle $MAIL.
  • Čtvrý řádek spustí skript a na standardní vstup mu pošle obsah emailu (formát viď výše).

Poznámky:

  • skript se spouští práve jednou pro každý email, a běží s právami majitele schránky
  • není zaručeno, že nebude spuštěno více skriptů najednou
  • program může být binárka, anebo shell skript, ale musí byt spustitelný (chmod +x) a obsahovat hlavičku interpretru (napr: #!/bin/sh)
  • spouštení programů nefunguje, není správcem povoleno. Na MS ale z výukových účelů povoleno je... :-)

Co tu ještě schází?

...

Zadání zkouškových písemek

SEDCHECK (10.6.2005)

program, ktory sa spusta raz o polnoci a kontorluje "nebezpecia" v systeme, o ktorych potom posle spravcovi mail

kontroluje tieto 4 veci:

heslá

  • kontroluje prazdne hesla uzivatelov (ulozene v /etc/passwd), s uid < 100, ktory niesu v /sec/passwd (fromat tohoto suboru sme si mohli zvolit...)
  • ak najde takehoto uzivatela nastavi mu heslo na "disable"
  • a posle spravu (sprava sa posle iba jedna suhrna na konci, a nesiem byt prazdna)

práva adresárov

  • vo vsetkych domoskych adresaroch (okrem root-a (toho som si nevsinmol ), najst subory a adresare zacinajuce sa bodkou, (iba v prvej urovni.. nie rekurzivne... )
  • najst take co:
  1. maju vlastika rovnakeho ako vlastnik domovskeho adresara a maju pravo zapisu nastavene inak ako iba pre vastnika,
    • o takychto suboroch poslat report a zobrat pravo zapisu
  2. maju ineho vlastika ako vlastink HOME, v tom pripade poslat report a zmenit vlastnika...

hesla v ~/.netrc

  • v kazdom domovskom adresary existuje subor .netrc ktory obsahuje info o ftp serveroch..
  • v nejakom takomto formate:
machine menostroja 
login nazovuzivatela 
passwd heslo 
pricom medzi tym mozu byt este nejake zvasty, a oddelovac nemusi byt novy riadok ale aj lubovolnuy pocet medzier,
  • ak v tomto subore najdeme server taky, ktory ma meno rozne od "anonymous" a ma nastavene heslo (t.j. passwd heslo sa v bolku pre danu machinu nachadza) poslat report a zobrat vsetky prava suboru..

nove set[ug]id subory

  • prejst vsetky subory v systeme, okrem adresarov a symlinkou, take ze UID < 100 & ma nastaveny SetUID alebo GID < 100 & nastaveny SetGID porovnat so suborom /sec/setguid a poslat report o vsetkych takych novych suboroch, ktorym ale odoberieme SGID a SUID.