Linux – przy zmianie adresu IP wyślij nową wartość na adres e-mail

Poniższy skrypt przyda nam się w sytuacji, gdy:
– nie posiadamy stałego adresu IP,
– nie posiadamy routera z funkcją dynDNS.

Porównujemy bieżący adres IP z zapisanym w pliku. Jeżeli nastąpi zmiana publicznego adresu IP serwera wysyłamy nową wartość na dany adres e-mail.

Poniżej skrypt napisany w bashu. Plik ip_biezacy.sh musi posiadać atrybut wykonywalny x:
$ chmod +x ip_biezacy.sh

#!/bin/bash

# ścieżka do pliku z ostatnią wartością adresu IP
LOG=/var/log/ip_biezacy.txt

# interfejs karty sieciowej, do której podłączony jest internet
interfejs=eth0

# wycięcie z pliku ifconfig adresu IP
IP=$(ifconfig $interfejs | grep „inet addr” | awk ‚{print $2}’ | awk ‚BEGIN {FS=”:”} {print $2}’)

# dane do wysłania wiadomości e-mail
EMAIL=nazwisko@domena.pl
TITLE=’Zmiana IP’
CONTENT=’Zmiana adresu IP Servera X’

# Sprawdzamy czy plik istnieje, jezeli nie istnieje to go tworzymy i wpisujemy do niego bieżącą wartość adresu IP
if [[ ! -f $LOG ]]
then
echo $IP > $LOG
fi

# Porownujemy IP wpisane do pliku .txt z biezacym IP z komendy ifconfig
# jezeli IP jest rożne to wysyłamy IP na adres EMAIL i zapisujemy nową wartość do pliku .txt
if [[ $IP != $(cat $LOG) ]]
then
echo $CONTENT | mail -s „$TITLE $IP” $EMAIL
echo $IP > $LOG
fi

Zarządzanie serverem Debian/Ubuntu

AKTUALIZACJE SYSTEMU
Pobranie najnowszych informacji o najnowszych pakietach (niezbędne, by instalować najnowsze pakiety)

apt-get update

Instalacja pakietu

apt-get install nazwa_pakietu

Usuwanie pakietu

apt-get remove nazwa_pakietu

Usuwanie pakietów wraz z plikami konfiguracyjnymi

apt-get purge nazwa_pakietu
apt-get –purge remove nazwa_pakietu

Aktualizacja wszystkich pakietów

apt-get upgrade

Aktualizacja całego systemu do nowego wydania

apt-get dist-upgrade

Pakiet sprawdzający wszystkie wersje pakietów na serwerze

apt-get install apt-show-versions

Lista wszystkich pakietów do aktualizacji

apt-show-versions -u | less

Wyciągamy z listy tylko aktualizacje dla apache

apt-show-versions -u | grep „apache”

Aktualizacja wszystkich pakietów w trybie testowym

apt-get install $(apt-show-versions -u -b | fgrep testing)

Aktualizacja konkretnego pakietu

apt-get install apache-perl

MYSQL – TWORZENIE BAZY
Maksymalnie 16 znaków ASCII: [0-9,a-z,A-Z$_] (cyfry, podstawowe litery Latin, dolar, podkreślenie); baza danych, tabela i kolumny nie moga kończyć się spacją.
Baza MySQL przed wersją 5.1.6, baza danych i nazwa tabel nie mogą zawierać “/”, “\”, “.”, lub znaku, który jest niedozwolony w nazwie.

MYSQL – KOPIA I PRZYWRÓCENIE BAZY
Kopia zapasowa

mysqldump -u [user] -p [database_name] > [backupfile].dump

Przywrócenie z kopii zapasowej (jeżeli plik jest spakowany rozpakuj go wcześniej)

mysql [database_name] < [backup_file].dump

PAKOWANIE I ROZPAKOWYWANIE PLIKÓW
Pakowanie plików

tar -czvf plik.tar.gz /katalog/do/spakowania
tar -cjvf plik.tar.bz2 /katalog/do/spakowania
unzip nazwa_pliku.zip /katalog/do/spakowania

Rozpakowywanie plików

tar -zxvf plik.tar.gz
tar -xvjf plik.tar.bz2
unzip nazwa_pliku.zip

parametry:

-j (archiwum bzip2)
-c (utwórz nowe archiwum)
-z (archiwum gzip)
-v (verbose – wypisywanie nazw plików)
-f (nazwa pliku archiwum).

Przykłady:

tar -cvzf www.tar.gz /home/www –exclude=”/home/www/log”
tar -cvzf `date +’%d%m%y’`.tar.gz /home/rambix/perl.
tar -cvzf perl.tar.gz perl –exclude perl/other.

Bezpieczne kopiowanie z komputera lokalnego do serwera.

scp plik.tar.gz username@11.22.33.44:

Bezpieczne kopiowanie z serwera do komputera lokalnego (port 2222).

scp -P 2222 username@11.22.33.44:plik.tar.gz /home/local_username/temp/

Drupal – uprawnienia plików i katalogów

$ cd /path_to_drupal_installation
$ chown -R greg:www-data .
$ find . -type d -exec chmod u=rwx,g=rx,o= {} \;
$ find . -type f -exec chmod u=rw,g=r,o= {} \;
$ cd /path_to_drupal_installation/sites $ find . -type d -name files -exec chmod ug=rwx,o= ‚{}’ \;
$ for d in ./*/files do
find $d -type d -exec chmod ug=rwx,o= {} \;
find $d -type f -exec chmod ug=rw,o= {} \;
done

Meaning of the signs:
„+” add a permission to the ones already assigned
„-” revoke a given permission maintaining the others already assigned
„=” ignores the already assigned permissions and gives the ones listed
„u” = user
„g” = group
„o” = others
„a” = everybody (user, group, others)
For files:
r = read
w = write
x = execute
For directories:
r = list (read directory contents)
w = write
x = can access the directory. Whoever has not an x for a directory can’t make a cd to it. chmod human
chmod numeric resulting permission
ugo=rwx 777 rwxrwxrwx
u-wx 470 r–rwx—
o+r 774 rwxrwxr–
u-w,g-wx,o+r 544 r-xr–r–
a-wx 440 r–r—–
DRUSH
Create new website with alias

$ drush quickstart-create all –domain=exampleX.dev
$ drush quickstart-create all –domain=exampleY.dev –codepath=/home/quickstart/websites/exampleY.dev
$ drush quickstart-create all –domain=exampleZ.dev –codepath=/home/quickstart/websites/exampleZ.dev –makefile=/home/quickstart/websites/d7.make

Download current recommended versions of CCK module and Zen theme.

drush dl cck zen

Enable the content (cck) module.

drush enable content

Make theme_name theme default theme

drush vset theme_default theme_name

Show status command for the example.com multi-site.

drush –uri=http://example.com status

Get info on all available releases for backup_migrate.module, e.g.

drush pm-releases backup_migrate

Checkout via git, the current stable version of the backup_migrate module on the DRUPAL-6–1 branch into your sites/{active.site}/modules/ directory. In this case the result is identical with just drush dl backup_migrate –package-handler=git_drupalorg as the requested version is the recommended version.

drush -v dl backup_migrate-6.x-1 –package-handler=git_drupalorg

Checkout via git, the unstable dev version of the backup_migrate module on the DRUPAL-6–2 branch into your sites/{active.site}/modules/ directory.

drush -v dl backup_migrate-6.x-2.x-dev –package-handler=git_drupalorg

Without specifying a –package-handler, (the default) the project bundle is retrieved via wget, and unpacked locally without the git information. This may overwrite any local changes. drush -v dl backup_migrate-6.x-2.x-dev Update the devel module to the latest recommended release and apply any database updates

drush pm-update devel

To update only Drupal core (in case of a security update)

drush pm-update drupal

źródło: http://drush.ws/
Edytor VIM
Zmiana domyślnego edytora

sudo select-editor

ZADANIA CRON
/etc/crontab to cron systemowy i wymaga dodatkowego pola user. crontab -e jest uruchamiony dla konkretnego użytkownika. Jeżeli logujemy się jako marek, wykonamy komendę crontab -e i wpiszemy komendę do wykonania nawet z hasłem to inni użytkownicy tego zadania nie zobaczą. Plik komendy crontab -e znajduje się w katalogu /var/spool/cron/crontabs
Dodanie/edycja pliku crontab

crontab -e

W pliku crontab ustawiamy, by backup bazy danych odbywał się co 12 godzin.

* */12 * * * * mysqldump -uroot -pPASSWORD mysql > /var/backup/mysql/`date +\%d-\%m-\%y`.dump

Usunięcie pliku crontab

crontab -r

Restart usługi

service cron restart

Linux block websites

I sposób (hosts)
Open the Terminal app found in the Accessories folder in the „Applications” menu.
Type „sudo gedit /etc/hosts” in the prompt that appears.
Add a line under the „127.0.0.1” line that reads „0.0.0.0” followed by the website you want to block.
Click the „Save” button, then restart your computer to make the changes take effect.

II sposób (iptables)
iptables -A FORWARD -m string –algo kmp –string „facebook.com” -j DROP
iptables -A OUTPUT -p tcp -m string –string „facebook.com” –algo kmp -j DROP
III Aplikacje
SQUID
http://www.opendns.com/

http://www.netfilter.org/
http://dansguardian.org/

http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-i-%E2%80%93-warstwa-sprzetowa/
http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-ii-%E2%80%93-konfiguracja/
http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-iii-sarg/

Smoothwall/IpCop
DansGuardian
Untangle
SonicWall
Watchguard Fireboxes.

Iptables

Program iptables służy do filtrowania pakietów sieciowych w systemach operacyjnych rodziny Linux/Unix/BSD. Pakiety są routowane i filtrowane z poziomu jądra systemu (wymagany moduł ip_tables). Do uruchomienia iptables wymaga uprawnień roota. Ścieżka: /usr/sbin/iptables albo /sbin/iptables.
WYŚWIETL WSZYSTKIE NASŁUCHUJĄCE GNIAZDA TCP i UDP oraz NAWIĄZANE POŁĄCZENIA

root$debian:~# netstat -untap

DEFINICJA ZMIENNYCH

LAN=”eth0″
WAN=”eth1″

SPRAWDZENIE OBECNYCH REGUŁ

iptables -L

CZYSZCZENIE IPTABLES

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

Domyślną polityką kernela jest ACCEPT dla wszystkich pakietów w tabeli filter w łańcuchach FORWARD, INPUT i OUTPUT. Polityka ACCEPT w łańcuch OUTPUT jest oczywista bo bez niej nie moglibyśmy nawiązywać połączeń na zewnątrz, ale łańcuch FORWARD i INPUT otwiera nasze usługi dla reszty świata.

DOMYŚLNA POLITYKA

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

Wiersz niezbędny do prawidłowego działania pętli zwrotnej oraz wewnętrznych usług bazujących na gniazdach

ipatbles -A INPUT -i lo -j ACCEPT

WŁĄCZENIE MASKARADY IP

iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

ZEZWOLENIE na nieograniczony ruch wychodzący, wchodzący jest ograniczony wyłącznie do sesji inicjowanych z sieci LAN
Inicjowanie ruchu (komputer-serwer-komputer)
3 way handshake
NEW => Server1 connects to Server2 issuing a SYN (Synchronize) packet
RELATED => Server 2 receives the SYN packet, and then responds with a SYN-ACK (Synchronize Acknowledgment) packet.
ESTABLISHED => Server 1 receives the SYN-ACK packet and then responds with the final ACK (Acknowledgment) packet.
Akceptujemy ruch wchodzący dla już nawiązanych połączeń z sieci LAN

iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT

Jeżeli powyższy wierz nie działa zapewne używasz VPS więc użyj poniższego wiersza

iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i WAN -o LAN -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i LAN -o WAN -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

Akceptacja istotnych komunikatów ICMP

iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp –icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp –icmp-type destination-unreachable -j ACCEPT

Odrzucenie tych prób nawiązania połączenia, które nie zostały zainicjowane z sieci LAN

iptables -A INPUT -p tcp –syn -j DROP

Przekazywanie ruchu przy wykorzystaniu squida zmiana portu 80 na 8080

iptables -t nat -p tcp -A PREROUTING -s 192.168.0.0/24 –dport 80 -j DNAT –to 192.168.0.1:8088

akceptujemy ruch wchodzący, który został zainicjowany przez pakiety sieci lokalnej

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

dostep z zewnatrz do ssh na porcie 23123 tcp

iptables -A INPUT -p tcp –dport 23123 -j ACCEPT

wylaczenie rozgloszenia w sieci

iptables -A INPUT -p ALL -d 255.255.255.255 -j DROP

RUCH OD SERWERA akceptujemy polaczenia wychodzace juz ustanowione

iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

akceptujemy caly ruch wychodzacy TCP z sieci lokalnej

iptables -A OUTPUT -j ACCEPT

Narzędzie do zarządzania iptables ufw [1]
Nakładka graficzna na ufw [2]

Źródło:
Linux administracja RECEPTURY
https://help.ubuntu.com/community/IptablesHowTo http://zsk.wsti.pl/publikacje/iptables_przystepnie.htm
http://pl.wikipedia.org/wiki/Iptables

Synchronizacja plików i katalogów

Instalacja rsync:
apt-get install rsync

a [archive] – rekursywność (drzewo katalogów), zachowywanie linków, uprawnień, czasów;
u [update] – zachowanie w niezmienionej postaci pliki które są nowsze na synchronizowanym komputerze. Należy zadbać o synchronizację czasu synchronizowanych komputerów. Najprościej skorzystać z serwera publicznego ntp na synchronizowanych komputerach;
v [verbose] – ilość komunikatów, przy (-vvv) komputer podaje bardzo szczegółowe komunikaty;
h [human-readable] – dane w czytelnej dla nas postaci;
z – kompresja danych podczas transferu co może być szczególnie istotne w wypadku rozbudowanych sieci komputerowych;
e ssh – przekazujemy rsyncowi z jakiej zdalnej konsoli mamy zamiar skorzystać. W naszym wypadku SSH;
progress – pokazuje postęp synchronizacji;
exclude=[maska] – wykluczenie grupy plików, których nie chcemy przenosić, co jest bardzo użyteczne do blokowania transferu plików tymczasowych,
delete – z katalogu synchronizowanego (docelowego) zostaną skasowane pliki/katalogi, których nie ma w katalogu synchronizującym (źródle).

Przykłady (katalog źródłowy 1, katalog docelowy 2):
1) Synchronizacja plików i katalogów.
rsync -a /home/user/1/ /home/user/2/

2) poprzednie + komunikaty
rsync -av /home/user/1/ /home/user/2/

3) poprzednie + usunięcie z katalogu 2 plików i katalogów, których nie ma w katalogu 1
rsync -av –progress –delete /home/user/1/ /home/user/2/

4) poprzednie + wyłączenie synchronizacji dla wszystkich plików o rozszerzeniu bak.
rsync -av –progress –delete –exclude=*.bak /home/user/1/ /home/user/2/

S.M.A.R.T.

S.M.A.R.T. (ang. Self-Monitoring, Analysis and Reporting Technology) – system monitoruje parametry dysku twardego i na tej podstawie określa stan urządzenia. Gdy system wykryje błędy na dysku twardym powiadamia o tym stanie użytkownika komputera.

S.M.A.R.T. monitoruje:
– liczbę cykli start/stop (Start_Stop_Count)
– sumaryczny czas pracy dysku (Power_On_Hours)
– temperatura dysku (Temperature_Celsius)
– liczbę naprawionych błędów ECC (Hardware_ECC_Recovered)
– liczbę błędów transmisji w trybie Ultra DMA (UDMA_CRC_Error_Count)
– liczbę błędów operacji seek (Seek_Error_Rate)

Krytyczne parametry S.M.A.R.T.:
01 Read Error Rate – częstotliwość występowania błędów podczas czytania danych z powierzchni dysku (problem z powierzchnią dysku albo z głowica odczytująco-zapisujacą)
05 Reallocated Sectors Count – ilość realokowanych sektorów na dysku (wysoka wartość to spadek wydajności dysku lub błędna praca)
0A Spin Retry Count – ilość prób ponownego uruchomienia wirowania (wysoka wartość to problem z mechaniką dysku)
C4 Reallocation Event Count – liczba operacji realokowania sektorów i jest ściśle związana z parametrem „Reallocated Sectors Count”
C5 Current Pending Sector Count – liczba sektorów oznaczonych jako niestabilne i oczekujących na remapowanie
C6 Uncorrectable Sector Count – liczba błędów nie naprawionych

Włączenie/Wyłączenie S.M.A.R.T.
Aby włączyć lub wyłączyć system S.M.A.R.T dla danego dysku należy przejść do ustawień Biosu.

Aby w pełni wykorzystać możliwości S.M.A.R.T. potrzebne jest dedykowane oprogramowanie smartmontools (smartd+smartctl). Smartd odpowiada za monitorowanie dysku. Smartctl to narzędzie do konfiguracji, testowania i odczytywania informacji o stanie dysku. Programy działa na większości systemów operacyjnych.

Instalcja smartmontools na Ubuntu i sprawdzenie stanu dysku twardego

Instalacja pakietu smartmontools
user@pc:~$ sudo apt-get install smartmontools

Wyświetlenie informacji o dyskach twardych i ich partycjach
user@pc:~$ sudo fdisk -l

Sprawdzenie stanu dysku twardego sda
user@pc:~$ sudo smartctl –-health /dev/sda
or in short
user@pc:~$ sudo smartctl -H /dev/sda

Wyświetlenie wszystkich informacji o dysku twardym sda
user@pc:~$ sudo smartctl –all /dev/sda

Linux użytkownicy i grupy

Użytkownicy i grupy w Linuksie Ponieważ Linux jest systemem przeznaczonym głównie do pracy w sieciach, zastosowano w nim konieczny podział na użytkowników i grupy. Pierwszym i najważniejszym użytkownikiem w systemie jest root. Posiada on nieograniczone uprawnienia w systemie (stąd słynne powiedzenie: „Root or God – what’s a difference?” – z ang. dosł. root czy Bóg – co za różnica?).
Konto administratora tworzone jest podczas instalacji systemu. Tworzenie innych kont nie jest wymagane, ale mocno zalecane. Istnieje przekonanie, że nie powinno się przesiadywać cały czas na koncie roota, gdyż ma to poważne znaczenie dla bezpieczeństwa systemu (zarówno wewnętrznego, jak i zewnętrznego).Powinno być używane wyłącznie do zadań wymagających maksymalnych uprawnień (administracja systemem).
Zatem nawet jeśli do Twojego komputera dostęp masz tylko Ty to i tak powinieneś utwórzyć konto dla zwykłego użytkownika – dla siebie.
Grupy tworzone są dla użytkowników charakteryzujących się daną cechą. Dzięki grupom możliwe jest ustalenie uprawnień dla większego grona użytkowników jednocześnie – nie zaś każdemu indywidualnie.
Grupy przydają się na komputerach, do których dostęp mają użytkownicy z zewnątrz (szkoły, kafejki, konta shell) – podział może np. wyróżniać użytkowników domowych i „zewnętrznych”.
Pliki użytkowników i grup W Linuksie istnieją trzy standardowe pliki odnoszące się kolejno do użytkowników, grup i haseł.
Pierwszy z nich to /etc/passwd. Kiedyś przechowywano w nim hasła (ang. password), teraz umieszcza się tam informacje m.in. o użytkownikach. Dane przechowywane są w postaci rekordów.
Poniżej znajduje się format wpisu:
użytkownik:hasło:nr_id:nr_gid:nazwa_grupy:/home/użytkownik:/bin/bash Pierwsza jest nazwa użytkownika, później znajduje się pole dla hasła (zwykle jest tam tylko x). Następny jest numer id użytkownika i numer id grupy (identyfikator w systemie). Następnie katalog domowy użytkownika (zwykle /home/nazwa_użytkownika), a na końcu ścieżka do interpretera poleceń (w tym wypadku powłoka bash – z angielska: walić – w klawisze oczywiście).
Plik odnoszący się do grup to /etc/group – znajdują się w nim informacje o grupach w następującym formacie:
nazwa_grupy:hasło:id_grupy:użytkowni1,użytkownik2 Hasło odnosi się oczywiście do grupy (nie do użytkowników). Tutaj chyba nie trzeba nic wyjaśniać.
Ostatnim plikiem, którego wnętrze należy omówić to /etc/shadow – gdzie przechowywane są m.in. zaszyfrowane hasła.
A oto i format zapisywania rekordów:
użytkownik:zaszyfrowane_hasło:d_1:d_2:d_3:d_4:d_5:d_6: Kolejno możemy wymienić (od lewej): nazwę użytkownika – wiadomo, zaszyfrowane_hasło – np. w systemie md5 lub des, następne pola to daty:
Pole Opis d_1 data ostatniej zmiany hasła (liczona w dniach od początku epoki Uniksa) d_2 liczba dni od ostatniej zmiany hasła, po których hasło może być zmienione ponownie d_3 liczba dni od ostatniej zmiany hasła, po których musi nastąpić zmiana hasła d_4 liczba dni przed wygaśnięciem hasła (o czym użytkownik jest ostrzegany) d_5 liczba dni po wygaśnięciu hasła d_6 data wyłączenia konta liczona w dniach (od początku epoki Uniksa) Unix i jego epoka Początek epoki Uniksa (ang. Unix epoch) jest datowany na 1 stycznia 1970 roku, godziny 00:00:00 (czasu GMT). Jest to przedział czasu od początku istnienia systemu Unix. Czas epoki Uniksa jest ograniczony zakresem dodatniej 32-bitowej liczby sekund, która wynosi 2 147 483 647 (czyli 231 – 1).
Koniec epoki Uniksa ma nastąpić 19 stycznia 2038 o godzinie 03:14:07 (GMT). Liczba sekund, która upłynęła od początku epoki nazywa się uniksowym znacznikiem czasu (ang. Unix Time Stamp). Taki znacznik czasu stosowany jest również w wersjach pochodnych systemu – Linux, BSD i inne…
W wielu sytuacjach w Linuksie musimy użyć właśnie takiej jednostki czasu, np. w sytuacji przedstawionej powyżej.
Tworzenie użytkowników i grup Linux posiada kilka narzędzi, które pozwolą nam stworzyć nowego użytkownika lub grupę. Poniżej opiszę jak stworzyć nowego użytkownika i grupę za jednym zamachem. Tworzenie będzie miało bardzo prostą formę.
Jako root wpisz jedno polecenie:
adduser Następnie zostaniesz poproszony o nazwę nowego użytkownika, hasło oraz inne dane, które nie są już niezbędne. Jest to bardzo prosta metoda, nie zawiera wiele czasu.
Aby skasować użytkownika wpisz deluser a następnie podaj nazwę.
Aby utworzyć nową grupę wpisz:
addgroup Następnie podajesz nazwę grupy i gotowe.
Aby skasować grupę wpisz delgroup i podaj nazwę.
Zarówno w jednym i w drugim przypadku niezbędne informacje (tj. id, katalogi) tworzone są automatycznie. Często te właśnie programy używane są do tworzenia grup podczas instalacji. Niestety nie zawsze znajdziemy je w naszej dystrybucji.
Inne metody tworzenia użytowników i grup Metody zaprezentowane poniżej mogą odstraszyć początkujących użytkowników. Przy odrobinie czasu polecam poeksperymentować z nimi na konta i grupy testowe. To pozwoli złagodzić „strach”.
Polecenia do tworzenia i modyfikowania użytkowników: useradd, usermod, userdel Oto przykład tworzenia użytkownika za pomocą polecenia useradd (zaloguj się jako root):
useradd -d /home/user -G grupa1,grupa2 -m user W ten sposób zostanie utworzony użytkownik (o nazwie user), do tego zostanie utworzony jego katalog domowy. Użytkownik ten zostanie przydzielony do grup: grupa1 i grupa2.
Pozostaje utworzyć jeszcze tylko hasło:
passwd user Po wpisaniu polecenia zostaniesz poproszony o zmianę hasła lub w przypadku roota o podanie nowego. Jest to najprostrzy sposób, aby nadać hasło użytkownikowi.
Innym sposobem na podanie hasła może być zastosowanie opcji -p zaszyfrowane_hasło. W tym wypadku należy podać hasło odpowiednio zakodowane (w zależności jakie szyfrowanie wybrałeś podczas instalacji, np. md5 czy des itp…). Jeszcze innym sposobem jest edycja pliku /etc/shadow i tam też w odpowiednie miejsce wpisujemy zaszyfrowane hasło.
Oto flagi do polecenia useradd (i nie tylko):
Flaga Opis -d ustawia domyślny katalog domowy -e data, od której konto użytkownika zostanie wyłączone (dla użytkowników tymczasowych), czyli data ważności konta -f liczba dni od wygaśnięcia hasła, po których konto ma być blokowane -g grupa użytkownika -G lista grup, do których ma należeć użytkownik (grupy oddzielaj przecinkami) -s podanie shella (np. /bin/bash lub innego zamiast domyślnego) -u numer id użytkownika -l (małe „L”), zmiana nazwy użytkownika (usermod) Poleceniem userdel usuwamy danego użytkownika:
userdel -r user Zastosowanie opcji -r spowoduje dodatkowo usunięcie katalogu domowego tego użytkownika.
Opcję usermod można łączyć z wymienionymi wyżej flagami. Przykładowo opcja -d towrzy nowy katalog (np. -d /home/nowy), opcja -l nowy_login, -G grupa1,grupa2,grupa3 itd…
Polecenia do tworzenia i modyfikowania grup:
groupadd, groupmod, groupdel Oto przykład utworzenia nowej grupy poleceniem groupadd:
groupadd -g 1021 grupa Opcja -g powoduje przypisanie numeru gid (group id) i jest opcjonalna – jeśli nie podasz tego parametru zostanie przydzielony pierwszy wolny identyfikator. Zaleca się nadawanie unikalnego identyfikatora. Całe powyższe polecenie tworzy grupę o nazwie „grupa”.
Modyfikacja grupy – przykład:
groupmod -n nowa_nazwa grupa Polecenie powoduje nadanie nowej nazwy podanej grupie.
Poleceniem groupdel usuwamy grupę. Po poleceniu należy podać nazwę grupy.
Modyfikacja danych osobistych – chfn Jeśli chcesz dokonać zmianę danych takich, jak: imię i nazwisko, telefon itp., użyj polecenia:
chfn nazwa_użytkownika Dostaniesz kilka pól do wypełnienia. Naciśnięcie entera spowoduje pozostawienie aktualnej wartości. Jeżeli chcesz skasować wartość i pozostawić dane pole puste – wpisz spację (spacja, enter).
Zmiana shella Aby zmienić powłokę logowania użyj polecenia chsh (ang. Change Shell). Zostaniesz poproszony o podanie nowej ścieżki do shella. Jako root możesz podać nazwę użytkownika przy wywoływaniu polecenia, aby dokonać dla niego zmiany.
Rada dla początkujących Jeśli nie czujesz się pewnie w tym co chcesz zrobić nie pozostawaj bezradny. Do szybkiego dodawania i usuwania użytkowników oraz grup używaj pierwszych poleceń (tych łatwiejszych).
Jak pisałem wcześniej, polecenia te mogą nie występować w Twojej dystrybucji – w takim wypadku możesz użyć gotowych wzorów (patrz przykłady).
Dodatkowe eksperymenty na trudniejszych poleceniach na pewno nie zaszkodzą, jeśli zachowasz odpowiednią ostrożność.

Źródło:
http://computersun.pl/linux/podstawy/uzytkownicy-grupy-w-linuksie-s_79.html
http://www.ubucentrum.net/2009/02/dodawanie-uzytkownikauzytkownikow-do.html

Linux podstawy

Wersja systemu

uname -a
Linux backup 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686 GNU/Linux

 

cat /etc/debian_version
5.0

Informacje o zmianach statusu połączenia sieciowego

mii-tool -wvv
22:49:43 eth0: negotiated 100baseTx-FD flow-control, link ok
22:49:43 eth1: negotiated 100baseTx-FD, link ok

Uruchamianie vhosta pod osobnym UID/GID pod Apache2[1]

apt-get install apache2-mpm-itk [2]

 

<VirtualHost>
[…]
<IfModule mpm_itk_module>
AssignUserId user group
</IfModule>
</VirtualHost>

Użytkownicy i grupy[]

FIND – to program uniksowy, który służy do wyszukiwania plików o zadanych parametrach.

find /home/robert -iname ‚*Madonna*’ – przeszuka katalog /home/robert, jeśli natrafi na plik, który w nazwie posiada „madonna” (wielkość liter nie ma znaczenia) to wyświetli jego nazwę wraz ze ścieżką dostępu;
find /mnt/Muzyka ! -name ‚*Madonna*’ – przeszuka katalog i wyświetli nazwy plików, które nie mają w sobie nazwy „Madonna” (wielkość liter ma znaczenie);
find . -name ‚dane.*’ – wyszukiwanie pliku o nazwie dane.* w katalogu bieżącym i w jego podkatalogach;
find / -name ‚dane.*’ – wyszukiwanie pliku o nazwie dane.* zaczynając od katalogu głównego;
find /katalog/ -user osoba -type d – poszukiwanie podkatalogów w katalogu /katalog należących do użytkownika osoba;

HOSTNAME

root@bestnet:/# hostname
root@bestnet:/# uname -n
root@bestnet:/# cat /proc/sys/kernel/hostnam
server

 

// Edit the hostname //
root@bestnet:/# vim /etc/hostname /

 

// The Fully Qualified Domain Name (FQDN) //
root@bestnet:/# hostname -f
server

 

// Change hosts //
root@bestnet:/# /etc/hosts// default without IP address
127.0.0.1 localhost
127.0.1.1 .
– the hostname defined in the „/etc/hostname”.
– of the mobile PC, you may chose invalid and safe domain such as „localdomain” or top level domain as „domain.com”// static IP //
127.0.0.1 localhost
xxx.xxx.xxx.xxx server.domain.com server
// dynamic IP //
127.0.0.1 name.no-ip.org name localhost

 

// Active new name of the hostname //
root@bestnet:/# /etc/init.d/hostname.sh start

http://www.debian.org/doc/manuals/debian-reference/ch05.en.html
http://www.debianhelp.co.uk/hostname.htm
http://www.ducea.com/2006/08/07/how-to-change-the-hostname-of-a-linux-system/
http://jblevins.org/log/hostname

Linux block websites

I sposób (hosts)

  1. Open the Terminal app found in the Accessories folder in the „Applications” menu.
  2. Type „sudo gedit /etc/hosts” in the prompt that appears.
  3. Add a line under the „127.0.0.1” line that reads „0.0.0.0” followed by the website you want to block.
  4. Click the „Save” button, then restart your computer to make the changes take effect.

II sposób (iptables)
iptables -A FORWARD -m string –algo kmp –string „facebook.com” -j DROP
iptables -A OUTPUT -p tcp -m string –string „facebook.com” –algo kmp -j DROP
III Aplikacje
SQUID
http://www.opendns.com/

http://www.netfilter.org/
http://dansguardian.org/

http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-i-%E2%80%93-warstwa-sprzetowa/
http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-ii-%E2%80%93-konfiguracja/
http://jakilinux.org/aplikacje/ujarzmij-squida-czesc-iii-sarg/

Smoothwall/IpCop
DansGuardian
Untangle
SonicWall
Watchguard Fireboxes.