Jesteôcie paranoikami? Macie mîodsze rodzeïstwo, które czyta Wasze listy? Mieszkacie w akademikach i nie chcecie, ûeby kaûdy miaî dostëp do wszystkich plików na twardym dysku? Pora, aby utrudniê innym dostëp do Waszych danych? Macie doôê kîopotów z wirusami? Oto rozwiâzanie problemu: MultiUserFileSystem. To wîaônie dla Was go stworzono! ;^)
[Uwagi:
1) Artykuî w duûym stopniu jest tîumaczeniem oryginalnej dokumentacji do
muFS, poza tym opiera sië na moich wîasnych doôwiadczeniach przy
instalacji i uûytkowaniu tego systemu plików
2) Istnieje ogromna grupa programów, które z samej swojej natury
wspierajâ muFS. Sâ to przede wszystkim programy korzystajâce z
ixemul.library, w tym amigowa wersja serwera ftp (wu-ftpd) i amigowa
wersja serwera Apache (http -- w wersji 1.3 naprawdë znakomita!).
3) Z muFS NIE DZIAÎA niestety jeden z najlepszych MTA (mail transfer
agents), czyli qmail. Tak jest przynajmniej w dostëpnych wersjach :-(.
Jeôli nie masz zamiaru uûywaê qmaila, nie powinno cië to w ûaden sposób
zniechëcaê.]
Najproôciej mówiâc, jest to troszeczkë podrasowany FFS, wprowadzajâcy system uûytkowników, grup i haseî. Utrudnia to osobom niepowoîanym dostëp do danych na dysku, pozwala na zabezpieczenie zasobów (jeôli zechcecie, to nikt, kto nie ma uprawnieï roota [administratora] nie bëdzie mógî skasowaê ûadnego pliku systemowego).
Wymagania muFS nie sâ zbyt wielkie - wystarczy KS37.75, odrobina wolnego RAM-u i dysk twardy. Dyskietki nie sâ w ûaden sposób zabezpieczone, bo i po co. Potrzebny bëdzie oryginalny FastFileSystem, w wersji odpowiedniej do posiadanego Kickstartu. MultiUser wymaga teû zainstalowanej biblioteki ReqTools.
muFS jest shareware - prawdziwym shareware; aminetowe archiwum zawiera wersjë peînâ, zaô uczciwy uûytkownik powinien zarejestrowaê sië u autora pîacâc równowartoôê 15 USD.
UWAGA - JAK CAÎKOWICIE SÎUSZNIE RADZI AUTOR - NALEÛY ZAPOZNAÊ SIË Z OPISEM PRZED INSTALACJÂ muFS - NIE W TRAKCIE!
1. Rozpakuj archiwum z MultiUserFileSystemem w dowolne miejsce, najlepiej do RAM-u. Najlepszâ metodâ instalacji muFS jest zrobienie wszystkiego rëcznie, krok po kroku. Otwórz okno shella i wejdú do katalogu z rozpakowanym archiwum.
2. Skopiuj komendy i biblioteki:
1> copy Libs/multiuser.library LIBS: 1> copy C/#? to C: 1> copy Locale LOCALE: ALL
3. Stwórz odpowiedni system plików. Musisz w tym celu skopiowaê plik FastFileSystem z dyskietek systemowych do katalogu L:
Póúniej instalujesz muFS przy pomocy komendy:
1> Patch/spatch -oL:MultiUserFileSystem -pPatch/MultiUserFileSystem_xxx.pch L:FastFileSystem
<xxx> odpowiada wersji Twojego systemu - 2.04, 2.05, 3.0 lub 3.1.
Jeôli otrzymasz komunikat "Incorrect version of original file", oznacza to, ûe uûyîeô zîego patcha, posiadasz FastFileSystem, dla którego nie ma muFS lub plik L:FastFileSystem jest nieprawidîowy.
4. Wybierz dyski/partycje, które chcesz chroniê oraz katalog na dysku, gdzie bëdâ sië znajdowaê pliki konfiguracyjne muFS. Upewnij sië, ûe wybrany przez Ciebie katalog znajduje sië na jednej z partycji, którâ chcesz zabezpieczyê! Zaîóûmy, ûe twój katalog konfiguracyjny to 'SYS:etc/' [Jeôli nazwiesz go inaczej, zamieï wszystkie wystâpienia ciâgu 'SYS:etc/' wybranâ przez ciebie nazwâ :-)]. Skopiuj pliki konfiguracyjne do tego katalogu:
Copy Config/#? SYS:etc/
Jeôli masz zainstalowany jakiô pakiet TCP/IP (np. AmiTCP), masz juû prawidîowy plik z hasîami (inet:db/passwd). Katalog inet:db/ musi byê na jednej z partycji, którâ chcesz zabezpieczyê! Upewnij sië, ûe w pliku passwd znajduje sië linia dla uûytkownika 'root', z '65535' jako numerem uûytkownika i numerem grupy gîównej, np.:
root||65535|65535|The Bastard LUser From Hell|SYS:users/root|cli
^^^^^ ^^^^^
5. Dodaj nastëpujâcâ linië na koniec pliku S:User-Startup:
Logout GUI GLOBAL
Najszybciej zrobisz to w taki sposób:
Echo "Logout GUI GLOBAL" >> S:User-Startup
Pamiëtaj o DWÓCH znakach wiëkszoôci - chcesz DOPISAÊ të linië do pliku, nie NADPISAÊ go ;^>
6. Wybierz nazwë dla swojego komputera. Bëdzie sië ona ukazywaê w requesterze przy logowaniu/wylogowywaniu. Powiedzmy, ûe chcesz nazwaê swój system 'vinorkis' - musisz zrobiê coô takiego:
Echo "vinorkis" > ENVARC:HostName
Zaîóûmy, ûe chcesz zabiezpieczyê dwie partycje, 'SYS:' i "Work:'. Moûesz zabezpieczaê tyle partycji, ile chcesz, po prostu dodaj ich nazwy do listy poniûej. Utwórz wymagane keyfiles na tych partycjach, jeôli NIE MASZ ZAINSTALOWANEGO pakietu TCP/IP AS225 lub AmiTCP:
MakeKeyFiles SYS:etc SYS:etc SYS: Work:
Uûytkownicy stacku AmiTCP *nie* powinni umieszczaê plików konfiguracyjnych w AmiTCP:db/
MakeKeyFiles inet:db SYS:etc SYS: Work:
Skîadnia polecenia MakeKeyFiles jest nastëpujâca:
MakeKeyFiles PASSWDDIR/A, CONFIGDIR/A, VOLUME/A/N
gdzie PASSWDDIR okreôla poîoûenie pliku z hasîami, a CONFIGDIR - poîoûenie pozostaîych plików konfiguracyjnych. VOLUME - to lista dysków lub partycji, które chcesz zabezpieczyê.
7. Uruchom HDToolBox, ûeby zainstalowaê MultiUserFileSystem. Jeôli HDToolBox nie moûe znaleúê twojego twardego dysku, musisz go prawdopodobnie uruchomiê ze shella, uûywajâc skîadni 'HDToolBox <hddev>', gdzie <hddev> jest nazwâ sterownika twardego dysku (np. 'scsi.device', 'hdelsat.device). Jeôli to nie zadziaîa, nie moûesz uûywaê MultiUsera w twoim systemie.
Wybierz dysk, który chcesz zabezpieczyê. Jeôli chcesz zabezpieczyê wiëcej niû jeden dysk, po prostu powtarzasz caîâ procedurë dla kaûdego z nich. Wybierz napëd klikajâc na jego nazwie w liôcie z wszystkimi podîâczonymi napëdami.
Kliknij przycisk <Partition Drive>.
Wciônij gadûet <Advanced Options>
Wciônij przycisk <Add/Update...>
Okno powinno teraz zawieraê listë zainstalowanych aktualnie systemów plików i kilka dodatkowych przycisków. Jeôli robisz update MultiUserFileSystemu, powinna byê juû linia z identyfikatorem '0x6d754653' ('muFS' w szesnastkowym ASCII). Jeôli taka linia sië znajduje, kliknij na niej i wciônij <Update File System...>, w innym przypadku wciônij <Add New File System...>.
Powinien pojawiê sië requester. Wpisz 'L:MultiUserFileSystem' w gadûecie typu string i '0x6d754653' w polu identyfikatora (zwanym takûe DosType). Jeôli twoja wersja HDToolBoxa pyta sië o numer wersji, powinienô uûyê 39. Niektóre wersje HDToolBoxa uûywajâ dwóch requesterów dla tych informacji, moûe sië wiëc okazaê konieczne wciôniëcie przycisku <OK> w requesterze, zanim moûna bëdzie wypeîniê pole DosType.
Wciônij przycisk <OK> w requesterze (jeôli jeszcze tego nie zrobiîeô). Powinieneô znów zobaczyê spis systemów plikowych. Wróê do schematu partycji, wciskajâc przycisk <OK>.
Wybierz partycjë, którâ chcesz zabezpieczyê. Jeôli chcesz zabezpieczyê wiëcej niû jednâ partycjë (a zaleca sië zabezpieczyê wszystkie partycje w napëdzie), po prostu powtarzasz to, co nastëpuje dla kaûdej partycji. Partycjë wybiearsz przez klikniëcie na czëôci dîugiego paska, który symbolizuje twój twardy dysk.
Wciônij przycisk <Change...> albo <Change File System>
Wybierz gadûet <Custom File System> i wpisz '0x6d754653' ('muFS' szesnastkowo) do gadûetu 'Identifier'.
Wciônij przycisk <OK>, ûeby powróciê do obrazu partycji. Przed przejôciem do nastëpnych etapów instalacji, powinieneô powtórzyê powyûsze czynnoôci dla kaûdej z partycji, którâ chcesz zabezpieczyê.
Wciônij przycisk <OK>, ûeby powróciê do gîównego menu HDToolBoxa.
Wciônij przycisk <Save Changes to Drive>. Nie przejmuj sië ostrzeûeniem, ûe zniszczy to wszystkie dane na twojej partycji, ûadne dane nie zostanâ utracone. Jeôli HDToolBox narzeka, ûe nie ma wystarczajâcej iloôci miejsca na zapisanie wszystkich danych o konfiguracji [co jest raczej niemoûliwe, poniewaû RDB, gdzie ,,takie rzeczy'' sië znajdujâ zajmuje od jednego do dwóch cylindrów], powinieneô wróciê do czëôci zarzâdzajâcej systemami plików (przez wciôniëcie przycisków <Partition Drive> i <Add/Update...>). Teraz powinieneô wybraê jakiô inny, NIEUÛYWANY! system plików i skasowaê go, uûywajâc przycisku <Delete File System>, po czym wróciê do gîównego menu i znów spróbowaê zapisaê konfiguracjë. NIE WOLNO skasowaê ûadnego uûywanego systemu plików. To - miëdzy innymi - jest powód, ûeby wszystkie partycje na dysku uûywaîy MultiUsera.
Jeôli wszystko poszîo dobrze, wybierz <Exit> i potwierdú przeîadowanie systemu. Po tym wszystkim komputer powinien sië automatycznie zresetowaê.
8. Po resecie powinien pojawiê sië requester. Wpisz teraz: 'root' jako nazwë uûytkownika. Jesteô teraz zalogowany jako root i masz dostëp do wszystkich plików.
9. Pierwszâ rzeczâ, jakâ musisz zrobiê, jest ustawienie hasîa. Robi sië to poprzez wpisanie ´Passwd GUI' w shellu albo oknie <Execute Command...> Workbencha. Jesteô proszony o wpisanie starego hasîa [po prostu wciônij <RETURN>]. Teraz musisz dwukrotnie wpisaê nowe hasîo. Jeôli dwa razy wpiszesz to samo, hasîo zostanie zmienione i to, co wpisaîeô bëdzie hasîem roota aû zdecydujesz sië je zmieniê :-)
10. Musisz teraz zmieniê prawa dostëpu do kilku istotnych plików, uûywajâc komend MProtect i SetOwner[37] (dla uûytkowników systemów unixowych znacznie wygodniejsze okaûâ sië komendy chmod i chown ;^>). W tym opisie bëdziemy uûywali komendy SetOwner, ale jeôli nie uûywasz KS39.xx+, powinieneô wszëdzie wpisywaê SetOwner37!
Musisz zabezpieczyê keyfiles na wszystkich chronionych partycjach. Wykonaj nastëpujâce komendy:
SetOwner <VOL>MultiUser.keyfile root MProtect <VOL>MultiUser.keyfile R
gdzie <VOL> jest nazwâ partycji (np. 'SYS:' albo 'Work:').
SetOwner SYS:etc/passwd root MProtect SYS:etc/passwd RWD SetOwner SYS:etc/MultiUser.config root MProtect SYS:etc/MultiUser.config RWD SetOwner SYS:etc/MultiUser.group root MProtect SYS:etc/MultiUser.group RWD SetOwner SYS:etc/.profile root MProtect SYS:etc/.profile SRWED GROUP R OTHER R SetOwner S:Startup-Sequence root MProtect S:Startup-Sequence SRWED GROUP R OTHER R SetOwner S:User-Startup root MProtect S:User-Startup SRWED GROUP R OTHER R SetOwner SYS:Tools/HDToolBox root MProtect SYS:Tools/HDToolBox RWED
i wszystkie inne pliki, które chcesz zabezpieczyê...
11. Nie zapomnij zrobiê kopie wszystkich kluczy, na wszelki wypadek.
12. Dobrze jest przygotowaê sobie dyskietkë bootujâcâ na wypadek niebezpieczeïstwa - np. jeôli zapomnisz hasîa roota. Jest to szczegóîowo opisane w pliku Emergency.doc w katalogu Emergency/.
Plik z hasîami zawiera wszystkie informacje o uûytkownikach uprawnionych do korzystania z systemu. Plik, zawsze o nazwie passwd, musi sië znajdowaê w katalogu PASSWDDIR, tak jak to podano przy tworzeniu klucza (komenda 'MakeKeyFiles'). Kaûda linia zawiera informacje o jednym uûytkowniku. Skîadnia linii jest nastëpujâca:
<userid>'|'<passwd>'|'<uid>'|'<gid>'|'<name>'|'<home>'|'<port>gdzie:
Plik passwd moûe wyglâdaê jak ten:
root|ZOpZlqiMZpc|65535|65535|The Bastard LUser From Hell|SYS:home/root|cli mail|User_banned|4098|2050|Pocztmistrz Jan Grabek|Makabra:home/mail|null baran|OKCbkNrem_t|4096|2048|Miroslaw L. Baran|SYS:home/baran|csh player|User_banned|2|1|Anonymous Player|SYS:home/player|noshell guest|User_banned|1|0|Anonymous Little Guest|SYS:home/guest|cli
Jeôli w pliku z hasîami sâ jakieô bîëdne linie, ukaûe sië ostrzeûenie, a bîëdna linia zostanie zignorowana. Ostrzeûenie zniknie po 10 sekundach, jeôli uûytkownik nie odpowie.
Plik konfiguracyjny definiuje pewne ustawienia. Ten plik (o nazwie 'MultiUser.config') musi znajdowaê sie w katalogu CONFIGDIR, tak jak to zostaîo okreôlone komendâ MakeKeyFiles. Zawiera linie z opcjami i wartoôciami, w formie <OPCJA>=<WARTOÔÊ>, oraz komentarze. Komentarze MUSZÂ byê poprzedzone ôrednikiem. Jeôli brakuje jakiejô opcji, przyjmowana jest standardowa wartoôê. 0 jest uûywane dla opcji wyîâczonej (OFF), 1 dla wîâczonej (ON). 'MultiUser.config' dostarczany z pakietem odpowiada ustawieniom standardowym.
Jeôli plik konfiguracyjny zawiera bîëdne linie, zostanie wyôwietlone ostrzeûenie, zaô bîëdna linia zostanie zignorowana. Ostrzeûenie zniknie automatycznie po dziesiëciu sekundach, jeôli uûytkownik nie odpowie.
Spis opcji (i zalecane ustawienie):
Podobnie jak pozostaîe pliki konfiguracyjne, takûe i ten musi sië znajdowaê w katalogu okreôlonym opcjâ CONFIGDIR polecenia MakeKeyFiles. Plik skîada sië z dwóch czëôci oddzielonych pustâ liniâ. Kaûda linia w pierwszej czëôci zawiera informacje o jednej grupie uûytkowników. Naleûy zwróciê uwagë, ûe nie kaûda grupa musi mieê linië w tym plkiu, jednakûe przynajmniej jedna musi byê w nim opisana. Skîadnia takiej linii przedstawia sië w sposób nastëpujâcy:
<GroupID>'|'<gid>'|'<MgrUid>'|'<GroupName>gdzie:
W drugiej czëôci pliku opisane sâ grupy do jakich naleûy uûytkownik, a które nie sâ jego macierzystâ grupâ. Kaûda linia drugiej czëôci pliku posiada informacje o jednym uûytkowniku, przy czym moûe istnieê wiëcej niû jedna linia opisujâca kaûdego uûytkownika. Skîadnia linii jest taka:
<uid>:<gid>[,<gid>...]
Podobnie jak w wypadku pliku passwd lub Multiuser.config, bîëdne pod wzglëdem skîadni linie bëdâ ignorowane, a o ich obecnoôci poinformuje requester.
Przykîadowy plik MultiUser.group:
root|65535|65535|System workbench|2051|65535|For WorkBench Users mail|2050|65535|Poczta, poczta... wheel|2049|65535|Simply not SysAdmin staff|2048|65535|Staff Personel players|1|65535|Players and Lamers noperson|0|65535|Nobody you want to know 4099:65535,2051,2049,1 4098:2048 4096:65535,2051,2049,2048,1,0
Po co istniejâ grupy? Dla zwiëkszenia bezpieczeïstwa pracy, powiadajâ. I majâ racjë. Moûna na przykîad zaîoûyê grupë o nazwie workbench (tak jak ja zrobiîem) i umieôciê w niej komendë LoadWB (naleûâcâ oczywiôcie do roota!). Ustawiamy prawa dostëpu tak, aby jedynie wîaôciciel i grupa mogli korzystaê z niej - od tego momentu ci, którym nie chcemy na to pozwoliê, nie bëdâ mogli uûywaê Workbencha :-) [swojâ drogâ, jestem chyba paranoikiem, poniewaû nikt poza mnâ nie uûywa mojego komputera, a ja bawië sië w takie bzdurki ;^>)
1) Najlepiej jest, gdy wiëkszoôê programów w naszym systemie nie bëdzie naleûaîa do nas, tylko do roota - pliki wykonywalne, biblioteki, urzâdzenia i im podobne. Naleûy wystrzegaê sië sytuacji, w której waûne pliki sâ wîasnoôciâ uûytkownika 'nobody' - poniewaû kaûdy ma prawo je usunâê. Naleûy zadbaê o to, by prawa zapisu (i kasowania) plików systemowych (pliki w katalogach C:, DEVS:, LIBS:, L:, itp.) miaî tylko administrator (root) - pozostali uûytkownicy powinni mieê prawo tylko i wyîâcznie do odczytu z tych plików.
2) Standardowe narzëdzia dostarczane z muFS nie sâ najwygodniejsze - dobrze jest postaraê sië o skompilowane na Amidze unixowe programy (np. z pakietu ADE), chodzi tu zwîaszcza o komendy chmod i chown, które majâ moûliwoôci zmiany wîaôciciela lub praw dostëpu w zagnieûdûonych podkatalogach (nie ukrywam teû, ûe unixowa skîadnia jest mi znacznie bardziej wygodna, poniewaû od lat trzech uûywam tych komend na Unixie ;^)
3) Na Aminecie moûna znaleúê wiele wygodnych i przydatnych programów uîatwiajâcych ûycie z MultiUserem; czëôê z nich znajdziecie na którymô z dysków "Fata".
Poniûej zamieszczam moje skrypty konfiguracyjne do MultiUsera, umoûliwiajâ one kaûdemu uûytkownikowi posiadanie wîasnych katalogów z preferencjami i îadowanie tychûe preferencji po zalogowaniu sië. Uwaga: BARDZO NIE POLECAM ich przepisywania na oôlep - to jest muFS i trzeba myôleê, co sië robi ;^) Moûna np. przypadkiem zabraê prawa do czytania S:startup-sequence i wtedy system nie moûe wystartowaê ;^) Uwaga druga: jeôli nie uûywasz programu HappyEnv, z duûâ pewnoôciâ moûna zakîadaê, ûe wszystko to nie bëdzie dziaîaê ;^) Proszë pamiëtaê, ûe to, co dziaîa u mnie, nie musi dziaîaê gdzie indziej - i potraktowaê to jako przykîady; nie biorë ÛADNEJ odpowiedzialnoôci za to, co moûe sië staê po zainstalowaniu muFS i/lub uûywaniu tych skryptów!
; .profile for MultiUser Release 1.7
;
; © Copyright 1993-1994 Geert Uytterhoeven
;
; customized by Jubal/Alchemy. If it works, it works, and if it
; ain't, it ain't - that's simple :)
set mufs_directory SYS:etc ; tutaj naleûy wstawiê ôcieûkë wskazujâcâ na
; katalog z plikami konfiguracyjnymi, takâ
; jak wpisano przy instalacji muFS
; Dump the Message-of-the-day (More works on serial terminals, too!)
If EXISTS $mufs_directory/motd
More $mufs_directory/motd
EndIf
; Make multi-assign for your $HOME
Run >NIL: MAssign Home: %h volume
; Execute some vital (what a word!) assigns, such as e.g. ENVARC: and
; S: (ev'rything for uhm, personalize desktop look ;^>)
If EXISTS $mufs_directory/.login
Execute $mufs_directory/.login
EndIf
; Execute the user's personal .profile
If EXISTS $Home/.profile
Execute $Home/.profile
EndIf
; $VER: loginscript 0.4 (29. I 1997)
set USER `UserInfo QUICK`
set HOME `UserID HOMEDIR`
; Make assigns for ENVARC:...
If EXISTS $HOME/Env-Archive
Assign ENVARC: $HOME/Env-Archive
Assign ENVARC: SYS:Prefs/Env-Archive add
Else
Assign ENVARC: SYS:Prefs/Env-Archive
EndIf
; and S:
If EXISTS $HOME/S
Assign S: $HOME/S
Assign S: SYS:S add
Else
Assign S: SYS:S
EndIf
; Now it's time to change your system's preferences
Copy >NIL: FROM ENVARC:Sys/~(#?.info) TO ENV:Sys/ QUIET
; Next line only if you're using Master Control Program ;^>
Copy >NIL: FROM ENVARC:MCP/~(#?.info) TO ENV:MCP/ QUIET
Wait 6 sec ; let the system read all preferences...
; ...and copy other programs' prefs into ENV:
Copy >NIL: FROM ENVARC:~(#?.info) TO ENV: QUIET
; To do this you should have csh somewhere in execute path...
; Reconstruct your desktop - place backdrop icons where they
; all belong, feel free to comment this line if you don't have
; both csh and wb_update.
csh >NIL: -CNn forline i sys:.backdrop "sys:c/wb_update $i ONLYICONS >NIL:"
i plik 'shell-startup'
; weirdly composed, but workin' for me ;^> ; You must have a 'getsh' command. ; 'getsh' returns name of shell which ; is written in system passwd file. ; feel free to comment this block of commands set shell `c:getsh` if $shell eq "cli" skip cli endif if $shell eq "csh" BIN:csh -t endcli endif $shell endcli lab cli set _pchar "|" set _mchar "||" C:notify alias exit endcli prompt (%n)>