1. Opis ogólny
1.1 Wstęp
1.2 Pojęcia
2. Logowanie
3. Aktywne sesje
Ekran informacyjny
Aktywne funkcje
4. Zamykanie sesji
4.1 Zamykanie sesji aktywnej
4.2 Zamykanie sesji zerwanych
5. Blokowanie logowania
Blokowanie
Zwolnienie blokady
6. Sesje tego samego wydania programu
7. Skrypt: tr-killuser
8. Logowanie do serwera bez hasła
9. Tematy powiązane
1. Opis ogólny
1.1 Wstęp
Sesja programu to jest okres, w którym użytkownik jest zalogowany do programu
i korzysta z jego funkcjonalności.
Sesja obejmuje wszystkie czynności wykonywane w programie od momentu zalogowania
do momentu wylogowania.
Sesją jest także okres wykonywania w programie czynności (funkcji) wywoływanych
automatycznie, np. AutoRun, Alert, SOA (API).
Od liczby udostępnionych sesji zależy opłata licencyjna.
Opłata licencyjna nie zależy od liczby użytkowników programu.
Wiele osób może być użytkownikami (operatorami) nawet gdy dostępna jest tylko jedna sesja.
Można odpowiednio rozdzielić czas użytkowania programu.
Zarządzanie sesjami
* Identyfikowanie sesji. Sesję identyfikuje systemowy numer procesu PID
PID Process IDentifier
IdProces identyfikator wykonywanej funkcji
* Przeglądanie sesji aktywnych
* Zamykanie sesji
* Blokowanie logowania
* Kontrola limitu sesji określonych w kluczu licencyjnym
* Przeglądanie i analiza kroniki sesji (logów)
IdProces (en: IDprocess)
Identyfikator wykonywanej funkcji.
Wewnętrzny (systemowy), unikalny identyfikator funkcji.
Każda wykonywana funkcja ma unikalny IdProces.
Np. NA > Rejestrowanie faktur sprzedaży --> [NA_DFA10].
Patrz szczegóły:
IdProces. Identyfikatory funkcji programu
Patrz też:
Funkcje w menu (drzewo)
1.2 Pojęcia
data wydania
Kolejne wydania programu Trawers oznaczone są datą.
Np. Data wydania 20xx.10.27
Aktualizacja programuIdentyfikacja programu Trawerslogowanie (en: Log-in, de: Log-in)
Od: log in - wejście do systemu.
Podanie identyfikatora użytkownika i hasła w celu uzyskania dostępu
do programu.
Można użyć zmienne środowiskowe, aby zautomatyzować logowanie.
Zmienne środowiskowelogowania blokowanie (en: Lock Out the System, Disable logins)
Zabronienie logowania do programu innym operatorom. Aby zapewnić administratorowi
wyłączny dostęp do bazy danych, np. podczas aktualizacji zbiorów danych
sesja (en: Session)
Uruchomnienie (wywołanie, logowanie) programu Trawers.
Liczba sesji jest kontrolowana. Nie można uruchomić programu
wiecej razy niż liczba sesji (limit sesji) określona w kluczu licencyjnym.
Komunikat:
----------------------------------------------------
Nie można uaktywnić kolejnej sesji
Liczba aktywnych sesji: ...
i na tyle sesji jest licencja (proszę dokupić sesje)
----------------------------------------------------
Patrz opis warunków liencji i reguły ustalania liczby sesji:
Warunki licencjisesje zdalnego dostępu (en: Remote Access Sessions)
Sesje zdalnego dostępu, np. partnerów firmy użytkownika w module RA
Limit sesji w module RA może być inny niż limit sesji pozostałych modułów
Sesje modułu RA zajmują jedną sesję z ogólnej puli sesji, tzn. uruchomienie
dowolnej liczby sesji RA wymaga jednej wolnej sesji w puli (sesji AD)
Na zestawieniu: Aktywne sesje, sesje zdalne oznaczone są w kolumnie [Z]
RA Zdalny dostęp kontrahentówsesje aktywne (en: Active Sessions)
Lista zalogowanych użytkowników. Zawiera symbol użytkownika,
datę i czas zalogowania, identyfikację stacji roboczej (terminala)
oraz identyfikator wykonywanej funkcji (IdProces).
Program tworzy zestawienie aktywnych sesji.
Patrz: Aktywne sesje > Ekran informacyjny [AD_PAS20].
Kronika zalogowań i wylogowań poszczególnych operatorów znajduje się w logu.
Kronika operacji (log)sesje nieaktywne (en: Non-Active Sessions)
Sesje, w których, przez określony czas, nie było aktywności operatora.
Tzn. operator nie naciskał klawiszy i nie poruszał myszką.
1. Program może automatycznie zamknąć sesje nieaktywne, tj. wylogować
operatora po określonym czasie nieaktywności (en: Time Out)
Patrz parametr w systemie AD (dotyczy wszystkich operatorów):
Zamknij nieaktywną sesję po .. minutach (0 - nie kończ)
Parametry systemu AD
2. Program może automatycznie zablokować sesje nieaktywne, tj. wstrzymać możliwość
wykonywana operacji. Komunikat: [Blokada dostępu]. Aby wznowić, trzeba podać hasło.
Patrz parametr pracy operatora (dotyczy konkretnego operatora)
Blokuj nieaktywną sesję po ... minutach (0 - nie blokuj)
Parametry pracy operatorówsesji limit
Liczba sesji określona jest w kluczu licencyjnym i jest kontrolowana.
Nie można uruchomić programu wiecej razy niż podano w licencji.
Także funkcje AutoRun i funkcje SOA (wykonywane w AutoRun i via Server SOA),
pobierają sesje z puli podanej w licencji.
Wybrane funkcje, zgromadzone w systemie RA Zdalny dostęp kontrahentów
można uruchamiać więcej razy niż podano w licencji konfiguracji podstawowej
Zdalny dostęp kontrahentówsesji limit operatora
Parametr pracy operatora pozwala ograniczyć liczbę jego jednocześnie
aktywnych sesji: Max ilość aktywnych sesji: nn (MaxSess)
AD > Operatorzy i role > Parametry pracy operatora: xx [AD_PPO30]
Podaje się max liczbę sesji, które może wywołać ten operator.
Jeżeli ilość = 0, to operator może logować się tym samym loginem
wiele razy, aż do wyczerpania limitu sesji wyznaczonego w kluczu
licencyjnym. Domyślna ilość sesji operatora = 1.
Parametry pracy operatorówsesji limit procesu AutoRun
Można ustalić ilość sesji przeznaczona (zarezerwowana) dla procesów
AutoRun, np. 2 sesje
Można ograniczyć ilość sesji, które może pobrać AutoRun z puli podanej w licencji.
Np.
1 : 0 Jedna sesja zarezerwowana dla AutoRun
1 : 3 Jedna sesja zarezerowana dla AutoRun, można uruchomić
co najwyżej 3 procesy AutoRun
Parametry systemu ADzamykanie sesji (en: ShutDown)
Spowodowanie zakończenia pracy w programie. Sesję może zamknąć program
lub inny użytkownik
2. Logowanie
Logowanie (od log in), to wejście do programu (uruchomienie) programu.
Po wywołaniu programu z powłoki systemu operacyjnego, program oczekuje
podania identyfikatora operatora, np. AA oraz hasła.
Bezpieczeństwo. Mechanizmy
Do programu Trawers można logować sie automatycznie wykorzystując
zmienne środowiskowe.
Zmienne środowiskowe
3. Aktywne sesje (którzy użytkownicy są on-line)
Pokazuje kto aktualnie jest zalogowany i jak długo trwa jego sesja.
AD > Aktywne sesje Sterowanie [AD_PAS20]
Ekran informacyjny
Sesje używane --o o-- Sesji w puli (wg licencji)
| |
| | o-- Sesje używane przez RA Zdalny dostep
| | |
| | | o -- Sesje używane prze DC
| | | |
v v v v v-- Sesje dla AutoRun
------------------------------------------------------------------------------
AKTYWNE SESJE: (12/35) (RA:3) (DC:0) (AutoRun:0/0:0) 20xx.09.28 Godz 15:56:10
-----------------------------------------------------------------------------
Op Sy Fi ---- Logowanie ---- Praca - PID - ------ IP ----- IDPROCES *Z
JD/00 AD TR 20xx.09.28 09:56:28 05:59 17604 192.168.1.116 AD_PAS20 *
PZ/00 RZ TR 20xx.09.28 11:03:41 04:52 18632 192.168.1.122 RZ_DZA10
JW/00 MG HA 20xx.05.20 07:21:00 02:17 29023 192.168.0.149 AD_PZS20
RD/00 MG HA 20xx.05.20 07:49:51 01:48 31464 192.168.0.216 MG_ZSP10
CK/00 NA HA 20xx.05.20 07:51:51 01:46 31964 192.168.0.118 NA_PSZ10
AP/00 ZA HA 20xx.05.20 08:06:18 01:32 1026 192.168.0.183 ZA_DZA20
AR/00 NZ HA 20xx.05.20 08:52:46 00:45 5409 192.168.0.108
LK/02 NA HA 20xx.05.20 08:53:12 00:45 5453 192.168.0.115 NZ_ZSA20
------------------------------------------------------------------------------
--o-- o o ---------o--------- --o-- --o--- -----o------ ----o--- oo
| | | | | | Nr IP IdProces ||
| | | Data i godzina | PID ||
| | Firma zalogowania Czas Sesja bieżąca [*]-->-o|
| System trwania (operatora wyświetlającego) |
Operator sesji |
oddział Sesja zdalna [Z]--->-o
Sesja AutoRun[A]--->-o
Aktywne funkcje
-------------------------------------------------------------------------
Y/F9-zamknij sesje F10-wyślij wiadomość
--o--------------------o-------------------------------------------------
| |
| v
| Wysyła wiadomość do jednego
| lub wielu aktywnych operatorów
| Powiadomienia, wiadomości
|
v
Zamyka sesje innego operatora
Home-odśwież Pokazuje aktualne (bieżące) dane
4. Zamykanie sesji innych operatorów (en: Kill user)
4.1 Zamykanie sesji aktywnej
Zamykanie sesji innego operatora
Podczas przeglądania aktywnych sesji, można zamknąć sesje innego operatora
klawiszem: F9-zamknij sesję
Sesje należy zamknąć, aby wykonać funkcje wymagające wyłącznego dostępu do danych,
np. aktualizację, weryfikację.
Wyłączny dostęp do bazy danych
Można także zamknąć sesje operatora, który nie pracuje, bo np. zapomniał
wylogować się.
Automatyczne zamykanie sesji
NOTE: W parametrach AD można ustalić czas bezczynności.
Sesja bieżącego operatora zostanie automatycznie zakończona,
jeżeli przez podaną liczbę minut, ten operator nie naciskał klawiszy
Parametry systemu AD
Zamknięcie sesji pozwala udostępnić sesje z limitowanej puli sesji innym
operatorowm czekającym na zalogowanie.
Powiadomienie operatora
Przed zamknięciem, można wysłać (F10) wiadomość operatorowi, że jego sesja
będzie zamknięta.
Dodatkowo, już po uruchomieniu funkcji zamykania, operator 'zamykany'
otrzyma komunikat (przez 30 sekund):
o-- Sesja AB ---------------------------o
| |
| Sesja zostanie zakończona za 24 s |
| |
|---------------------------------------|
| F10-przerwij |
o---------------------------------------o
Sesje ma prawo zamykać administrator, który ma oznaczony parametr 1107 [1]
Param operat 05xx 06xx ...
W parametrach pracy operatora można podać maksymalną liczbę jednocześnie
aktywnych sesji operatora.
Param pracy operatorów
4.2 Zamykanie sesji zerwanych
Klawisz: F9-zamknij sesję, zamyka tylko sesje aktywne, tzn. gdy terminal
nadal połączony jest z serwerem.
Nie zamyka sesji tzw. zerwanych (en: Session is terminated, disconnected).
NOTE: Dot systemu Linux:
Sesje zerwane można zamknąć klawiszem: Y-zamknij sesję
a) Sesja zerwana należy do aktywnego operatora
Program wykona polecenie: kill
b) Sesja zerwana należy do innego operatora
Program wykona polecenie: sudo kill
(należy odpowiednio ustawić uprawnienia użycia sudo w Linux)
Przed wykonaniem: kill i sudo kill program nie wysyła żadnych informacji
do zamykanego operatora
Polecenie: kill używać gdy nie można zamknąć sesji klawiszem: F9
Sesje ma prawo zamykać administrator, który ma oznaczony parametr 1107 [1]
P. Automatyczne zamykanie sesji
Jak zapewnić, żeby program Trawers automatycznie zamknął te sesje,
które zostały zerwane, np. przez wyłączenie prądu w oddziale lub
przerwanie łącza transmisyjnego ?
O. Sam program Trawers nie potrafi automatycznie zamknąć zerwanych sesji.
Należy zbudować mechanizm w systemie operacyjnym Linux.
Warianty:
a. Odpowiednio ustalić parametry SSH (TCPKeepAlive, ClientAlive itp.),
które zapewnią automatyczne odłączenie terminala i zamknięcie sesji.
Zamknięcie sesji przez Linux jest sygnałem dla Trawersa, aby usunąć
sesję z wewnętrznego rejestru wykorzystanych sesji, oddać do puli
wolnych sesji i pozwolić zalogować się kolejnemu użytkownikowi.
b. Zamknąć sesje ręcznie
Użyć polecenia: kill lub bardziej masowo: użyć skryptu
tr-killuser.sh (poniżej treść skryptu)
c. Zamkniecie wszystkich sesji
killall <nazwa programu>
np. killall tr5x.exe
P. Jak wymusić logowanie ?
Jak zalogować się do programu, gdy sesja administratora została zerwana
a inni operatorzy są zablokowani ?
Sytuacja: Administrator zabronił logowania innym operatorom gdyż rozpoczął
prace serwisowe. Sesja administratora została zerwana. Nikt nie może
zalogować się do programu.
O. Zamknąć zerwaną sesje, np. poleceniem kill
Zabezpieczenie przed zerwaniem sesji
P. Jak unikać zerwania sesji ?
O. Na pewne sytuacje nie mamy wpływu, np. utrata łącza terminala.
Mamy jednak wpływ na sposób zamykania programu.
Np. w programie wywołanym funkcją AD_PIN10 (wykonanie programu dodatkowego)
nie zamykać okna Putty krzyżykiem [x]
Zawsze naturalnie zamykać aplikacje, np. powłokę bash poleceniem: exit
Program: screen i X2Go
W firmie Tres skutecznym mechanizmem okazał się program: screen.
Trawers5 TUI uruchamiany jest zawsze w screen. To powoduje, że po
zerwaniu sesji program nadal pozostaje aktywny (PZ 2022/02)
Po ponownym zalogowaniu przywracana jest sesja użytkownika.
Jeżeli użytkownik nie zaloguje się ponownie w czasie bezczynności
ustalonym w parametrach AD, to Trawers sam sie zamyka.
Parametry systemu AD
Zerwaną sesję można też zamknąć zdalnie przez F9.
Od momentu wdrożenia screen w firmie Tres nie ma problemu wiszących sesji.
W Trawers6 GUI problem rozwiązuje program:X2Go, który zachowuje się
tak jak screen.
Po zerwaniu połączenia albo zamknięciu krzyżykiem i ponownym zalogowaniu
na serwer, przywracana jest poprzednia sesja programu.
5. Blokowanie logowania
Funkcja pozwala zabronić logowania do programu innym operatorom.
Aby zapewnić administratorowi wyłączny dostęp do bazy danych,
np. podczas aktualizacji zbiorów danych
Funkcje:
Zablokować można na czas wykonywania funkcji wymagających wyłącznego
dostępu do zbiorów, np. na czas aktualizacji zbiorów
Wyłączny dostęp do bazy danych
Gdy logowanie jest zablokowane, to menu programu jest wyświetlone innymi
kolorami (inverse). To jest sygnał dla operatora, aby po zakończeniu
prac zwolnić blokadę
Po zakończeniu prac, np. aktualizacji, trzeba zwolnić blokadę
Gdy logowanie jest zablokowane, to operatorzy otrzymują komunikat:
o--------------------------------------------------------[X]o
| Firma TR: Program niedostępny od 20xx.06.30 godz 18:38 |
| Dostęp zablokował: JD Jan Dworaczek Oddział: [00] |
| Trwają prace serwisowe - kontakt tel. 87 21 321 324 |
o-----------------------------------------------------------o
6. Sesje tego samego wydania programu
Użytkowany musi być zawsze program najnowszy, tzn. z najwyższą datą wydania.
Kolejne wydania mogą bowiem wprowadzić, np. zmiany w strukturze bazy danych
Nie można jednocześnie (z różnych stanowisk) wywoływać sesji różnych wydań programu,
tj. wydań z różnymi datami wydania (różne daty .exe).
Uruchamianie różnych wersji jest ryzykowne, np. możliwość uszkodzenia danych,
brak zgodności z nową strukturą.
Administrator jest zobowiązany do usunięcia programów .exe poprzednich wydań
Aktualizacja programuPolityka aktualizacji
7. Skrypt: tr-killuser
--------------------------------------------------------------------------
#!/bin/sh
#=========================================================================
#
# *** tr-killuser ***
#
# (C) 2011 Dobroslaw Wolanowski
# serwis@tres.pl
#
# Zastosowanie:
# Skrypt likwiduje wszystkie procesy wskazanego uzytkownika
#=========================================================================
echo
echo -e "\n*** Usuwanie wszystkich procesow wskazanego uzytkownika *** \n"
# Kontrola id uzytkownika wykonujacego skrypt
User=`expr "\`id\`" : "uid=\([[:digit:]]*\).*"`
if [ "$User" != "0" ]; then
echo -e "Operacja musi byc przeprowadzana przez uzytkownika root \n"
exit
fi
# Okreslenie uzytkownika, ktorego procesy maja byc usuniete
echo
echo -n "Prosze podac nazwe uzytkownika: "
read uid
echo
echo -e "\nUsuwanie procesow uzytkownika: $uid"
echo
# Listowanie procesow uzytkownika i usuwanie wg id procesu (PID)
ps -u $uid | grep -v PID | while read pid reset; do kill -9 $pid; done
echo
echo -e "\nWszystkie procesy uzytkownika: $uid zostaly usuniete"
echo
# koniec
--------------------------------------------------------------------------
8. Logowanie do serwera bez hasła
P: Jak logować się do serwera bez podawania hasła,
gdy na stacji roboczej oraz na serwerze jest system Linux?
O: Wykorzystać autoryzację za pomocą pary kluczy
1) Na stacji roboczej i serwerze założyć użytkownika: trawers
2) Na stacji roboczej zalogować się jako: trawers
i wygenerować klucze poleceniem:
ssh-keygen -t rsa
Program zapyta o:
- nazwę pliku, w którym zapisać klucze: pozostawić domyślną
- passphrase: pozostawić puste.
Wygenerowane klucze są w katalogu
/home/trawers/.ssh
/home/trawers/.ssh/id_rsa - klucz prywatny
/home/trawers/.ssh/id_rsa.pub - klucz publiczny
3) Klucz publiczny umieścić na serwerze w katalogu
/home/trawers/.ssh
i zmienić jego nazwę z id_rsa.pub na authorized_keys
Teraz już można logować się do serwera z tej stacji roboczej
bez podawania hasła: ssh trawers@serwer
9. Tematy powiązane
Platformy systemoweKronika operacji (log)ChangeLog. Kronika zmian w danychWarunki licencjiPolityka aktualizacjiAutoRun Procesy automatyczneF12 Menu wewnętrzneFunkcje w menu (drzewo)Param pracy operatorówParam operat 05xx 06xx ... Słowa kluczowe#Admin-Bezpieczeństwo#Admin-Uprawnienia#Raporty-KronikaLog#Raporty-ErrorLog#Pomoc-AsystentAI
(AsystentAI)
Zarządzanie sesjami Programu Trawers ERP
Skrócona wersja opisu: Zarządzanie sesjami programu Trawers ERP
Przeznaczona do szybkiego zapoznania się z najważniejszymi informacjami
przez administratorów lub serwisantów.
1. Co to jest sesja ?
* Sesja to czas, w którym użytkownik (lub automat, np. AutoRun) jest zalogowany do Trawersa.
* Każda sesja zużywa jedną licencję. Licencja określa maksymalną liczbę sesji, nie użytkowników.
2. Gdzie sprawdzić aktywne sesje ?
* AD > Aktywne sesje [AD_PAS20]
* Zobaczysz listę użytkowników, czas logowania, terminal, PID i aktualnie wykonywaną funkcję (IdProces).
* Sesje zdalne (RA) oznaczone są jako [Z], AutoRun jako [A].
3. Zamykanie sesji
* F9 - zamyka aktywną sesję operatora.
* Y zamyka sesje zerwane (np. po utracie połączenia).
* W razie potrzeby administrator może zamknąć sesję ręcznie lub automatycznie (po bezczynności - parametr w AD).
4. Automatyczne zamykanie i blokowanie
* Parametr AD może zamknąć sesję po X minutach nieaktywności.
* Parametry operatora mogą zablokować sesję po czasie - potrzebne hasło do wznowienia.
5. Blokowanie logowania
* AD_TBL10 - zablokuj logowanie dla innych.
* AD_TBL20 - zwolnij blokadę po zakończeniu prac.
* Program informuje operatorów o przyczynie blokady.
6. Zerwane sesje - co robić ?
* Trawers nie zamyka ich automatycznie.
* Można:
* ręcznie zabić proces: `kill`, `sudo kill`
* użyć skryptu: `tr-killuser.sh`
* skonfigurować system Linux (SSH: TCPKeepAlive, ClientAlive)
* używać programów: `screen`, `X2Go` - sesja zostaje zachowana nawet po zerwaniu połączenia
7. Wersje programu
* Wszyscy użytkownicy muszą korzystać z tej samej wersji programu (data wydania `.exe`).
* Nie wolno uruchamiać różnych wydań jednocześnie - grozi błędami w bazie.
---
Najczęstsze problemy i rozwiązania
| Problem | Rozwiązanie |
| -------------------------------------------------- | ------------------------------------------- |
| Nie można się zalogować - limit sesji | Zamknij nieaktywne/zerwane sesje |
| Zerwana sesja blokuje logowanie | Użyj `kill`, `tr-killuser.sh` |
| Administrator się rozłączył i zablokował logowania | Usuń jego sesję z serwera |
| Użytkownik zapomniał się wylogować | F9 - zamknij jego sesję |
| Sesja się 'wiesza' po zamknięciu okna | Zawsze używaj `exit`, unikaj zamykania [X] |
---