|
KOPI Forum Klubu Opiekunów Pracowni Internetowych
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
geronimo Użytkownik Forum
Dołączył: 30 May 2014 Posty: 20 Skąd: PołudnieRP
|
Wysłany: Thu Oct 16, 2014 1:26 pm Temat postu: EOS zarządzanie kontami, tabela routingu, reset hasła |
|
|
Założyłem nowy temat, bo może się komuś przydać krótki opis sytuacji, które trochę mi napsuły krwi przy instalacji serwera, a i też pochwalę się, bo udało mi się uruchomić EOSa z którego jestem naprawdę zadowolony. Sporo się też w tym okresie nauczyłem nt. linuxa. Nie jestem specjalistą w tej dziedzinie, więc w pełni dopuszczam wszelkie uwagi, jeżeli gdzieś popełniam jakiś rażący błąd merytoryczny. Jeżeli admin uzna, że temat nie zasługuje na zaszczyt bycia nowym tematem, to może go zdjąć bez żadnego tłumaczenia.
A więc do rzeczy.
Serwer powstawał w pracowni ministerialnej, więc na stacjach z Vistami i tak już niestety musiało zostać. Serwer jest jednostką zupełnie wydzieloną zamkniętą w szafie serwerowej z odłączonym monitorem, myszą i klawiaturą z dostępem tylko poprzez pulpit wirtualny z jednej ze stacji, na której zainstalowano putty i nomachine. Można się na niego także dostać z internetu, co umożliwia "domowe" wprowadzanie potrzebnych na serwerze zmian.
Problemy z Vistą na stacjach.
Na dzień dobry okazało się, że monitory Samsunga na stacjach pracują w rozdzielczości 1440x900 i aby taką rozdzielczość uzyskać, to trzeba być zalogowanym do serwera SBS, bo tylko on podawał właściwie ustawiony sterownik. Stacje miały płyty główne Gigabyte z grafiką Intela. Jeżeli ktoś się nie zalogował do SBS, to miał ekran w rozdzielczości 1200x900 z zamglonymi literkami. Wspaniały pomysł na sygnalizację braku połączenia z serwerem, a nie tak łatwo zmusić oryginalny intelowski sterownik do pracy z rozdzielczością 1440x900, który z nieznanych mi przyczyn w standardzie również nie zawiera tej opcji.
Najbardziej jestem jednak zadowolony ze struktury katalogowej uczniów i nauczycieli.
Opiszę to szczegółowo.
Założenia
System kont i katalogów opiera się na zasadzie dodawania całych klas uczniów.
Logując się do systemu uczeń widzi tylko swoje katalogi domowe w windows (tzw. Moje dokumenty) oraz ma do dyspozycji dodatkowy pusty napęd (serwowany przez sambę EOSa) do którego może sobie wgrywać swoje dane.
Nauczyciel tej klasy ma w swoim komputerze ten sam układ, ale dodatkowo ma zamapowany napęd z katalogami swoich uczniów, zarówno z grupy Moje dokumenty jak i napęd (katalog) dodatkowy. Wszystko funkcjonuje w ramach profili przechodnich, co oznacza, że nie ma znaczenia przy którym komputerze dzisiaj usiądzie uczeń, a przy którym nauczyciel. O tym co uczeń i nauczyciel zobaczą na swoich ekranach, decyduje wyłącznie wprowadzona przy logowaniu nazwa użytkownika (login).
Oznaczenie prefiksu klasy może być oczywiście dowolne. Moją propozycją jest oznaczanie klas rokiem urodzenia jej uczniów. Można wtedy taką klasę prowadzić w systemie przez cały okres pobytu uczniów w szkole i nie zmieniać co roku. Może to więc być np. klasa02, uczen00 itp. Gdzie 02 i 00 to rok urodzenia uczniów z danej klasy. Później z takich prefiksów powstają systemy: klasa021…klasa0225 lub uczen001…uczen0030
Realizacja
Na serwerze powstała więc ikonka „Dodaj klasę”. Klikając w nią musimy podać tylko dwie informacje: nazwa klasy - prefiks (np. klasa05r) i ilość uczniów (proponuję zawyżyć o 3-5 do obecnej ilości na wypadek dojścia nowych). Hasło jest generowane automatycznie i w każdym przypadku pojedynczego użytkownika hasło równa się jego nazwie. Dodatkowo system generuje jedno konto nauczycielskie z nazwą równą nazwie prefiksu.
Najlepiej zobrazuje to przykład.
Mając faktyczną klasę szkoły podstawowej z 20 uczniami z rocznika 2005 wprowadzamy następujące dane:
Nazwa klasy – klasa05r (od klasa z rocznika 2005) i jest to prefix wszystkich tworzonych nazw.
Wprowadzona do programu ilość uczniów – 23 (trzech rezerwowych)
System utworzy łącznie 24 użytkowników:
• Konta uczniów z nazwami od klasa05r1 do klasa05r23
• konto nauczycielskie klasa05r
W systemie wygląda to tak, że wszystkie konta zostaną utworzone w jednym katalogu o nazwie klasa05r. Dostęp do tego katalogu jako całości ma nauczyciel klasa05r. W katalogu klasa05r są 24 katalogi – 23 z nazwami od klasa05r1 do klasa05r23 i jeden katalog z kontem nauczycielskim klasa05r. Układ każdego z tych katalogów jest identyczny. W środku każdego są tylko 2 katalogi: profil i dane. Nazwa katalogu profil w tym opisie jest zastępcza, bo faktycznie jest to nazwa zależna od nazwy konta i dla konta klasa05r1 ma oznaczenie klasa05r1.V2 (tak oznacza je vista). Jest to oczywiście katalog z profilem przechodnim. Dane z profili przechodnich są dostępne dla nauczyciela tylko do odczytu. Dane z dodatkowego katalogu, (widocznego dla ucznia jako dodatkowy napęd) są dostępne do odczytu i zapisu. Jest to podyktowane faktem, że zapis do katalogu dodatkowego jest on line, a katalog z profilem przechodnim wraz z Moimi dokumentami jest odczytywany przy logowaniu ucznia i zapisywany, aktualizowany dopiero w momencie jego wylogowania. Wszelkie zapisy dokonane więc przez nauczyciela w trakcie zalogowania ucznia byłyby i tak tracone.
Struktura katalogowa przykładowej klasy wraz z prawami i właścicielami.
Tu konto nauczyciela 'klasa05r' ma dostęp do wszystkich katalogów w katalogu głównym klasa05r. Zawartość katalogu głównego 'klasa05r' jest odrębnym udziałem samby, zamapowanym po zalogowaniu na loginie 'klasa05r' jako odrębny napęd. Zawartość katalogów z rozszerzeniem .V2 jest tworzona automatycznie przez Vistę przy pierwszym logowaniu (dokładnie przy pierwszym wylogowaniu) i przenoszona później na komputer lokalny przy każdym logowaniu, co trochę spowalnia cały proces logowania.
Kod: | klasa05r | -prawa 755; właściciel/grupa = root/root
|-klasa05r - 755; klasa05r/klasa05r; członek grupy klasa05r
|-katalog_dane
|-klasa05r.V2
|-klasa05r1 - 755; klasa05r1/klasa05r; członek tylko smbusers
|-katalog_dane - 775; klasa05r1/klasa05r
|-klasa05r1.V2 - 755; klasa05r1/klasa05r
|-klasa05r2
|-katalog_dane
|-klasa05r2.V2
.
.
|-klasa05r23
|-katalog_dane
|-klasa05r23.V2
|
Od zaplecza system wygląda tak, że po wprowadzeniu prefiksu klasy, tworzony jest główny katalog o tej samej nazwie. W tym przypadku dla klasy klasa05r jest to katalog klasa05r. Prawa do tego katalogu są ustawiane na 755. W takim katalogu zostaje dodane konto nauczycielskie o tej samej nazwie klasa05r. Katalog domowy tego konta zostaje ustawiony na klasa05r/klasa05r. W tym katalogu domowym zostają utworzone katalogi klasa05r.V2 oraz katalog dane (tak dokładnie to katalog dane jest tworzone przy generowaniu konta, bo jest utworzony jako jedyny w katalogu /etc/skel). Obydwa katalogi mają prawa 755 (ale może to być także 775 bo i tak jest tylko jeden członek grupy klasa05r). Tworzona też jest grupa klasa05r i użytkownik klasa05r staje się jej jedynym członkiem. Użytkownik klasa05r jest też członkiem grupy nauczyciel i smbusers. Grupa nauczyciel będzie później miała dostęp do zapisu w katalogu public samby.
Katalogi uczniów są tworzone podobnie, ale katalog ‘dane’ otrzymuje prawa 775. Dla tych użytkowników nie tworzy się odrębnej grupy. Wszyscy uczniowie należą tylko do grupy smbusers. Właścicielem każdego katalogu z grona uczniów jest dany użytkownik (klasa05r1 … klasa05r23) oraz grupa klasa05r. Każdy z katalogów dane i profil należy także do grupy klasa05r. Zagwarantuje to później wgląd i zapis zamapowanego w sambie napędu dla nauczyciela klasa05r ze wskazaniem na katalog klasa05r z dostępem dla grupy @klasa05r (dokładny wpis w smb.conf to valid users = @%U). Tym sposobem nauczyciel ma wgląd w katalogi uczniów, ale nie odwrotnie, bo uczeń nie jest członkiem grupy klasa05r. Trochę dużo tego klasa05r ale faktycznie czasami jest to zawiłe.
Dla każdego użytkownika jest też tworzony, na podstawie wzoru, odrębny plik bat dla visty. Daje to możliwość mapowania w systemie różnych napędów dla wybranych konkretnych użytkowników. Są odrębne wzory dla nauczyciela z grupy (klasy), nauczyciela pojedynczego nie związanego z grupą, ucznia i wreszcie admina. Różnice polegają na różnym mapowaniu udziałów samby. Konfig zamieszczam poniżej.
Problem Gateway.
W serwerze mam zainstalowane 3 karty sieciowe. Dodatkowa karta służy do komunikacji z sieciową macierzą dyskową, gdzie każdego dnia, z crona, są archiwizowane dane. Fizycznie są wpięte 2 karty PCI, a trzecia to karta na płycie głównej. Karta na płycie i jedna PCI są gigabitowe, a druga PCI to 100Mb. Oczywiście chciałem, aby setka była WANem na eth0, jednak system ciągle czytał ją jako eth2. Odpuściłem i ustawiłem wszystko w konfiguracji sieci i w firewalu: eth2 – WAN i eth1 – LAN. I tu zaskoczenie – nie ma neta na serwerze ani na stacjach. Wytłumaczenie jest dość proste. Odpowiada za to tabela routingu, która utworzy się oczywiście tak jak my ustawimy dane, ale system sam z siebie robi dużo, abyśmy ją ustawili właśnie źle. Otóż jeżeli będziemy mieli taki przypadek, że eth0 to WAN, eth1 – LAN, to taka konfiguracja będzie zawsze (prawie) skutkowała poprawną pracą internetu. Jeżeli jednak eth0 to LAN, a WAN jest przypisany do eth1, eth2… to trzeba być bardzo ostrożnym. Maciek pisze o tym w podręczniku, że w ustawieniach LAN wpisujemy tylko adres IP oraz maskę, a pozostałe pola powinny być puste. Jest to nawet wytłuszczone. Problem w tym, że system sam uzupełnia nam pole „Router” oraz „Serwer DNS 1”. Jeżeli teraz nie wykasujemy tych wpisów i tak jak leci, klepniemy enter, to mamy problem. Nie wdając się zbytnio w dywagacje, trzeba po skonfigurowaniu interfejsów sieciowych z konsoli jako root, wpisać polecenie „route” i zobaczyć czy linijka 'default...' jest tylko jedna i czy wskazuje na nasz interfejs WAN. Droga ‘default’ wskazuje na standardowe kierunki pakietów do internetu. Żeby wszystko szło dobrze, default musi wskazywać na nasz interfejs ppp lub WAN i mieć adres Gateway, który jest adresem naszego dostawcy internetu, czyli naszego routera do którego wpięliśmy nasz serwer. Droga default jest tworzona zawsze jeżeli w konfiguracji sieci wpisaliśmy dane dotyczące bramy (gateway lub router) jakiegoś interfejsu. EOS niestety próbuje to sobie wpisać sam i stąd problemy. Już samo tylko zajrzenie do konfiguracji poprzez Centrum Sterowania/Centrum konfiguracji sieci, powoduje powstanie wpisów w te pola, nawet jeżeli wcześniej zapisaliśmy konfigurację bez wartości router i DNS. Podczas pracy, system czytając tabele routingu i mając kilka wpisów default wybiera ten pierwszy. Jeżeli podczas tworzenia takiej tablicy eth0 trafia przed eth1 i eth0 to nasz WAN to jest OK, ale to tylko szczęśliwy zbieg okoliczności.
Trochę to namieszane więc podsumujmy.
Po skonfigurowaniu sieci proponuję otworzyć konsolę jako root i wpisać route lub ip route. W odpowiedzi powinna być tylko jedna linijka 'default...' i powinna wskazywać na ppp lub interfejs WAN poprzez bramę, której adresem jest IP naszego routera zewnętrznego do którego jest wpięty WAN. Czyli jest to dla polecenia ip route taki np. wpis: dafault via 192.168.2.1 dev eth2. Dla ppp będzie to np. default dev ppp0. Jeżeli jest kilka linijek default, to proponuję wejść do /etc/sysconfig/network-scripts, zajrzeć do pliku ifcfg-ethX, który odpowiada naszemu LAN i wykasować linijki GATEWAY i DNS. W moim przypadku WANem był eth2 więc tylko w ifcfg-eth2 była linijka GATEWAY=192.168.2.1 a ifcfg-eth0 i ifcfg-eth1 były bez tego wpisu i bez wpisów DNS=…. Restart sieci poprzez service network restart i powinno być OK.
Ostatni problem
Nieprzewidzianym na wstępie problemem okazało się zapominanie haseł przez uczniów. Trzeba było więc dopisać skrypt resetu haseł, uruchamiany przez admina z konsoli serwera. Reset polega na pierwotnym przypisaniu hasła wg zasady hasło=login.
EOS to naprawdę fajny system na serwer szkolny. Chylę czoła przed jego twórcami do użytku szkolnego. Dużo niżej schylę jednak swoje czoło, jak jego główny autor (może i jedyny) przedstawi jego następcę, bo niektóre zagadnienia w EOSie zdążyły się już trochę przeżyć.
pozdrawiam
GS
Ostatnio zmieniony przez geronimo dnia Sun Oct 19, 2014 2:02 pm, w całości zmieniany 3 razy |
|
Powrót do góry |
|
|
geronimo Użytkownik Forum
Dołączył: 30 May 2014 Posty: 20 Skąd: PołudnieRP
|
Wysłany: Sat Oct 18, 2014 7:47 am Temat postu: |
|
|
Skrypt resetu hasła do postaci hasło=login. Skrypt przerobiony ze skryptów EOSa. Uruchamiany z konsoli jako root.
Argumentem do uruchamianego skryptu musi być login użytkownika, któremu resetuje się hasło.
Kod: |
#!/bin/bash
# Skrypt resetowania hasla
clear
LOGIN=$1
#hasło jest takie samo jak login
HASLO=$LOGIN
#-------------------------------------------------------
function reset_hasla
{
grep "^${LOGIN}:" /etc/passwd >/dev/null 2>&1 ;
if [ $? -eq 0 ];
then echo 'Resetuję hasło dla: '$LOGIN'.
Teraz haslo = login ';
echo "$HASLO" > pass
echo "$HASLO" >> pass
smbpasswd -a -s $LOGIN < pass
passwd $LOGIN < pass
rm ./pass
else echo '
!!!!!!>> BŁĄD <<!!!!!!!!!
Nie ma takiego użytkownika: '$LOGIN;
echo;
exit;
fi
}
#===============================================
# Start programu
#===============================================
reset_hasla;
if [ $? -eq 0 ]; then echo '
HASLO ZRESETOWANE.
login: '$LOGIN'
hasło: '$HASLO;
fi
#====================================#
#=========\_ KONIEC _/===========#
|
|
|
Powrót do góry |
|
|
geronimo Użytkownik Forum
Dołączył: 30 May 2014 Posty: 20 Skąd: PołudnieRP
|
Wysłany: Sat Oct 18, 2014 8:13 am Temat postu: |
|
|
Dodawanie klasy uczniów+nauczyciela. Skrypt tworzy katalogi w /home/nis (tak mi już zostało od początku testów) co można oczywiście zmienić. Parametrami są
1 - prefiks (np. uczen00)
2 - liczba uczniów.
Katalog /etc/skel musi być wyczyszczony i zawierać w sobie tylko pusty katalog o nazwie katalog z prawami 770
Cytat: |
#!/bin/bash
NAZWA=$1
ILOSC=$2
#katalogi domowe
DOMOWE="/home/nis/$NAZWA"
#utworzenie katalogu głównego do którego zostaną dodane katalogi domowe
#uczniów i nauczyciela
mkdir --mode 755 $DOMOWE
#dodanie konta nauczycielskiego
#grupa podstawowa nauczyciela musi być nazwą NAZWA np. klasa01
zmienna=`/usr/sbin/adduserdom "$NAZWA" $DOMOWE >/tmp/smbuserauto`
chmod 755 -R $DOMOWE/$NAZWA
#tworzenie katalogu .V2
mkdir --mode 755 $DOMOWE/$NAZWA/$NAZWA.V2
#dodanie grupy
#dodanie konta do nowej grupy
groupadd -f $NAZWA
usermod -G nauczyciel,smbusers,$NAZWA $NAZWA
chown -R $NAZWA:$NAZWA $DOMOWE/$NAZWA
cp /home/samba/netlogon/wzbelfer.bat /home/samba/netlogon/$NAZWA.bat
#dodanie x-kont uczniowskich
#PRAWA=770
x=1;
#GR_PODST="users"
while [ $x -le $ILOSC ]; do
zmienna=`/usr/sbin/adduserdom $NAZWA$x $DOMOWE >>/tmp/smbuserauto`
chmod -R 755 $DOMOWE/$NAZWA$x
chmod 775 $DOMOWE/$NAZWA$x/katalog
usermod -G smbusers $NAZWA$x
mkdir --mode 755 $DOMOWE/$NAZWA$x/$NAZWA$x.V2
chown -R $NAZWA$x:$NAZWA $DOMOWE/$NAZWA$x
cp /home/samba/netlogon/wzuczen.bat /home/samba/netlogon/$NAZWA$x.bat
x=$[x + 1];
done
|
no i skrypt adduserdom do którego odwołuje się powyższy skrypt:
(widzę, że trochę rozjechało się kodowanie)
Kod: |
#!/bin/bash
# Skrypt tworzenia konta uczniowskiego
# na potrzeby szkolnej pracowni komputerowej
# Na podstawie skryptu Dawida Ĺawnickiego - W.T.
clear
####################################
# konfiguracja:
#*****************************
#ustalanie minimalnej i maksymalnej ilości parametrów
#
MINPARAM=2
MAXPARAM=2
# definiowanie zmiennych
ILOSCARG=$#
LOGIN=$1
#hasło jest takie samo jak login
HASLO=$LOGIN
#katalog domowy w hierarchii katalogĂłw np. /home/nis/klasa01
DOMOWY=$2
echo 'LOGIN = '$LOGIN
echo 'DOMOWY = '$DOMOWY
# deklarowanie funkcji
function konto_u_smb
{
#echo '>>> FUNKCJA KONTO_U <<<'
grep "^${LOGIN}:" /etc/passwd >/dev/null 2>&1 ;
if [ $? -eq 0 ];
then echo 'Uzytkownik '$LOGIN' istnieje w systemie, zakładam konto w sambie. ';
echo "$HASLO" > pass
echo "$HASLO" >> pass
smbpasswd -L -a -s $LOGIN < pass
smbpasswd -e "$LOGIN"
rm ./pass
else echo '
!!!!!!>> BĹÄ„D <<!!!!!!!!!
KONTO nie zostało założone'
echo;
exit;
fi
}
function konto_u
{
echo 'Zakładam konto uczniowskie';
echo "Login uĹĽytkownika to " $LOGIN;
grupa="users"
powloka="/bin/false"
home=$DOMOWY/$LOGIN
temppass="$1$FR00rckt$g6GE0HomrMuGwNBzMldaD/"
echo "Katalog home to >> "$home
if [ $? -gt 0 ]; then echo '!!!>> PROBLEM z zakolozeniem katalogu' $home'koncze <<!!!'; exit; fi
useradd -d "$home" -p '$1$FR00rckt$g6GE0HomrMuGwNBzMldaD/' -g "$grupa" -s "$powloka" -c "Konto $LOGIN" "$LOGIN";
if [ $? -gt 0 ]; then echo '!!!>> KONTO systemowe nie zostało utworzone <<!!!'; exit; fi
}
#-------------------------------------------------------------------------------------
function sprawdz_usera
{
#echo '>>> FUNKCJA SPRAWDZ_USERA <<<'
#######################################################################
# sprawdza czy takie konto istnieje
# oraz czy nazwa usera jest małymi literami
#
echo "sprawdzanie poprawności nowego użytkownika" $LOGIN;
#echo "===========================================";
grep "^${LOGIN}:" /etc/passwd >/dev/null 2>&1 ;
if [ $? -eq 0 ];
then echo '!!!!!!!!!!!!!>> BĹÄ„D <<!!!!!!!!!!!!!!!!!
KONTO '$LOGIN' Juz istnieje w systemie, wybierz inny login.';
echo;
exit
elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]
then echo "- KONTO '$LOGIN' zawiera niewłaściwe znaki";
echo;
exit;
else echo "Takie konto może zostać założone";
echo;
fi
}
function info_argumenty
{
echo '
>>> FUNKCJA INFO ARGUMENTY <<<
=============================
Ois kolejnych parametrĂłw:
nazwa_usera - jeden wyraz
"nazwa wyświetlana" - np.: imię i nazwisko - w cudzysłowie
haslo - haslo nadane przez admina
"Opis konta" - opis, np jaka klasa - w cudzysłowach
=============================
PRZYKĹAD:
'``$0' nowakja "Jan Nowak" tajnehaslo345 "Uczeń klas IV-VI rocznik 1996"
';
}
function sprawdz_argumenty
{
#echo '>>> FUNKJCJA SPRAWDZ_ARGUMENTY <<<'
if [ $ILOSCARG -lt $MINPARAM ]
then echo '
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Za mało argumentów jest' $ILOSCARG '
a jest powinno być' $MINPARAM;
info_argumenty
exit;
elif [ $ILOSCARG -gt $MAXPARAM ]
then echo '
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Za duĹĽo argumentĂłw, max to ' $MAXPARAM '
możliwe, żee nie uwzględniono poprawnie cudzysłowów';
info_argumenty
exit 0;
else
echo '
parametry OK ';
fi
}
# Koniec deklaracji funkcji #
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##
#===============================================
# Start programu
#===============================================
sprawdz_argumenty
echo 'Po argumentach'
if [ $? -eq 0 ]; then echo 'argumenty ok'; sprawdz_usera; fi
# tu dodać wybor konta -n czy u
if [ $? -eq 0 ]; then konto_u; fi
if [ $? -eq 0 ]; then konto_u_smb; fi
if [ $? -eq 0 ]; then echo '
KONTO ZAĹOĹ»ONO POPRAWNIE DLA' $LOGIN; fi
#====================================#
#=========\_ KONIEC _/===========#
|
Wszystko z przerobienia skryptów EOSa.
Pliki bat:
wzbelfer.bat
Kod: |
echo Mapuje dyski sieciowe
net use G: \\eos\CD_iso /yes
net use P: \\eos\public /yes
net use I: \\eos\Pliki_iso /yes
net use K: \\eos\CalaKlasa /yes
net use M: \\eos\MojKatalog /yes
echo Koncze skrypt....
|
wzuczen.bat
Kod: |
echo Mapuje dyski sieciowe
net use G: \\eos\CD_iso /yes
net use P: \\eos\public /yes
net use M: \\eos\MojKatalog /yes
echo Koncze skrypt....
|
do tego SAMBA mapuje jeszcze dla wszystkich zalogowanych dysk Z: z Moimi dokumentami
Ostatnio zmieniony przez geronimo dnia Mon Oct 20, 2014 7:53 am, w całości zmieniany 5 razy |
|
Powrót do góry |
|
|
geronimo Użytkownik Forum
Dołączył: 30 May 2014 Posty: 20 Skąd: PołudnieRP
|
Wysłany: Sat Oct 18, 2014 8:27 am Temat postu: |
|
|
Konfig samby smb.conf. Dla zaoszczędzenia miejsca wyrzuciłem linijki skanowania clamava. W konfigu są jeszcze dwa udziały, które chciałbym skomentować. Są to: Pliki_iso i CD_iso. Są to udziały, które powstały głównie na potrzeby nauczycieli klas 1-3 ale i inni mogą z tego korzystać. Podręczniki uczniowskie zawierają teraz często płyty CD. Każdorazowe korzystanie z płyt jest w pracowni trochę uciążliwe. Jeden zapomni, drugiemu napęd chodzi wolno, trzeciemu napęd wcale nie działa i jest problem. Można więc utworzyć z dowolnego kompaktu plik ISO i wrzucić taki plik do udziału Pliki_iso, mapowanego dla każdego usera z grupy nauczyciel, zwrócić się do admina o zamontowanie tego pliku w udziale CD_iso i wtedy wszystkie dzieciaki widzą tę płytę na swoich komputerach w zamapowanych napędach CD-iso i znika problem zapominalskich i niedziałających napędów CD. Ktoś nawet pytał o to w dziale SBS. W linuksie to kilka łatwych linijek (w zasadzie jedna).
Kod: |
# Plik konfiguracyjny samby jako kontrolera domeny
[global]
# Podstawowe ustawienia
workgroup = SCHOOL
netbios name = EOS
server string = Serwer %L
# Ustawienia domeny
domain logons = Yes
os level = 200
preferred master = Yes
domain master = Yes
dns proxy = No
wins support = Yes
ldap ssl = no
panic action = 'echo "SAMBA ERROR PANIC `date` ">>/samba.error'
winbind cache time = 15
# Drukarka cups
printcap name = cups
printing = cups
load printers = yes
printcap cache time = 750
cups options = raw
# Ustawenia administracyjne
admin users = administrator
# Ustawienia zasobow
create mask = 0660
directory mode = 0770
hosts allow = 127.0.0.1, 192.168.100.0/24
hosts deny = ALL
browseable = Yes
blocking locks = No
strict locking = No
volume = samba
dos filetime resolution = Yes
#max disk size = 2000
# Kodowanie znakow
dos charset = CP852
unix charset = ISO8859-2
display charset = CP852
# Opcje sieci
interfaces = 127.0.0.1, 192.168.100.0/24
bind interfaces only = Yes
# Opcje autoryzacji oraz przechowywania hasel
update encrypted = Yes
map to guest = Bad User
obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd
pam password change = Yes
# unix password sync = Yes
passwd program = /usr/bin/passwd '%u'
passwd chat = *New*UNIX*password* %n\n *Re*ype*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# username map = /etc/samba/smbusers
# Logi
log level = 1
syslog = 0
log file = /var/log/samba/log.%m
max log size = 350
debug pid = Yes
debug uid = Yes
# Ustawienia protokolow
min protocol = COREPLUS
read bmpx = Yes
name resolve order = lmhosts, host, hosts, wins, bcast
#Samba serwerem czasu dla klientow
time server = Yes
server signing = auto
# deadtime = 2
keepalive = 30
socket options = SO_KEEPALIVE SO_REUSEADDR SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=16384 SO_RCVBUF=16384
# Zarzadzanie maszynami (win xp), uzytkownikami, grupami
add user script = /usr/sbin/useradd %u
delete user script = /usr/sbin/userdel %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
delete user from group script = /usr/sbin/deluser %u %g
set primary group script = /usr/sbin/groupadd %g
add machine script = /usr/sbin/useradd -d /dev/null -g machines -c 'Konto Maszyny %I' -s /bin/false %u
# Skrypty logowania i profile
logon script = %U.bat
logon path = \\%L\profiles\%U
logon drive = Z:
logon home = \\%L\profiles\%U.V2
hide files = /*.ini/*.desktop/*.dat/
# katalogi
[netlogon]
comment = Katalog skryptow logowania i zasad uzytkowania systemu
path = /home/samba/netlogon
write list = administrator
read only = No
browseable = No
create mask = 0750
directory mask = 0770
#katalog do którego wgrywa się obrazy ISO. Udostępniany jest obraz.iso
[Pliki_iso]
comment = Katalog z plikami ISO wgranymi przez @nauczyciel
path = /home/samba/iso
read only = yes
browseable = no
valid users = @nauczyciel
write list = @nauczyciel
create mask = 0644
directory mask = 0755
#katalog w którym zamontowany jest plik: obraz.iso z katalogu /iso
[CD_iso]
comment = Katalog z obrazami ISO
path = /home/samba/CDiso
read only = yes
browseable = yes
# mapowanie napędów katalogów domowych uczniów i nauczycieli, katalog_dane z pierwszego postu
[MojKatalog]
comment = Katalog domowy każdego ucznia i nauczyciela
browsable = no
writable = yes
path = %H/katalog
[CalaKlasa]
comment = Katalog z katalogami uczniów
path = /home/nis/%U
browsable = no
valid users = @%U
writable = yes
directory mask = 0774
[profiles]
# Folder moich dokumentow, unikalnych dla kazdego usera.
path = %H
comment = Dokumenty uzytkownika %U
read only = No
guest ok = No
create mask = 0640
directory mode = 0750
browseable = no
valid users = %U
[public]
comment = Katalog ogolnodostepny
path = /home/samba/public
read only = yes
browseable = yes
guest ok = yes
create mask = 0644
directory mask = 0755
write list = @nauczyciel
[admin]
comment = Katalog administrowania
path = /home
read only = yes
browseable = no
guest ok = No
create mask = 0660
directory mask = 0770
write list = @smbadmins
|
skrypt montowania obrazów ISO
Kod: |
#!/bin/sh
#skrypt do montowania napędów z obrazów ISO z konsoli
#nazwa pliku jest przyjmowana jako $1
#plik ISO musi się znajdować w katalogu /home/samba/iso
NAZWA=$1
mount -o loop /home/samba/iso/$NAZWA /home/samba/CDiso 2> /tmp/smbmount
|
no i odmontowanie (wersja okienkowa)
Kod: |
#!/bin/bash
#skrypt do okienkowego odmontowania napędów z obrazów ISO
umount -l /home/samba/CDiso 2> /tmp/isou
wynik=`cat /tmp/isou`
kdialog --msgbox "Odmontowano $wynik"
|
I to już chyba wszystko na chwałę EOSa ku potomności. U mnie to wszystko ładnie działa. Gdyby coś nie działało, tzn., że usunąłem jakąś ważną linijkę w ramach kasowania niepotrzebnych komentarzy.
Na koniec muszę się jeszcze wytłumaczyć dlaczego na stacjach są tylko Visty. Otóż chciałem im (bo nie jestem tam zawodowym opiekunem tej pracowni, raczej takim społecznym) dodać np. debiana do uruchamiania z PXE. Niestety byłaby to para w gwizdek i chyba nikt, nigdy by tego nie uruchomił. Informatyk szkolny to z wykształcenia artysta muzyk. I tak mam do niego szacunek (największy za to, że przez 7 lat toczył walkę z SBSem), bo dużo wie, dużo rozumie, dużo potrafi zrobić, ale jego pasją jest muzyka, a nie komputery. Ten artyzm ma też swoje zalety, bo tworzy piękne w wyglądzie strony internetowe.
pozdrawiam
GS
Ostatnio zmieniony przez geronimo dnia Sat Oct 18, 2014 10:40 am, w całości zmieniany 4 razy |
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
Powered by phpBB © 2001, 2005 phpBB Group
|