Administracja systemu FreeBSD

From Training Material
Jump to navigation Jump to search

Stan uruchomienia wszystkich usług:

service -e

Rezultat:

/etc/rc.d/hostid
/etc/rc.d/hostid_save
/etc/rc.d/cleanvar
/etc/rc.d/ip6addrctl
/etc/rc.d/devd
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/etc/rc.d/dmesg
/etc/rc.d/virecover
/etc/rc.d/motd
/usr/local/etc/rc.d/mysql-server
/etc/rc.d/sshd
/usr/local/etc/rc.d/apache24
/etc/rc.d/sendmail
/etc/rc.d/cron
/etc/rc.d/mixer
/etc/rc.d/gptboot
/etc/rc.d/bgfsck

Konfiguracja SSH:

nano /etc/ssh/sshd_config

Logowanie z uwierzytelnieniem za pomocą hasła oraz na konto roota:

PasswordAuthentication yes
PermitRootLogin yes

Restart usługi SSH:

service sshd restart

Dodawanie usługi do autostartu:

nano /etc/rc.conf

Dla usługi sshd należy dodać:

sshd_enable="YES"

Stan uruchomienia usługi:

service sshd status

Instalacja programów:

pkg install mc

Informacje na temat pakietu:

pkg info mc

Wersje zainstalowanych pakietów:

pkg version

Usuwanie programu:

pkg delete curl

Aktualizacja zainstalowanych paczek:

pkg upgrade

Usuwanie zależności pakietów, które nie są już używane:

pkg autoremove

Usuwanie starych wersji pakietów z pamięci podręcznej:

pkg clean

Poszukiwanie pakietu:

pkg search nano

Aktualizacja systemu:

freebsd-update fetch
freebsd-update install

W przypadku wystąpiennia probemów, możemy przywrócić ostatnią aktualizację:

freebsd-update rollback

Instalacja edytora tekstowego nano:

pkg install nano

Zmiana domyślnego edytora na nano. Dodajemy wpis do pliku .bashrc:

export EDITOR=nano

Instalacja powłoki bash:

pkg install bash

Powłoka zostanie zainstalowana w katalogu:

/usr/local/bin/bash

Powłoka wymaga zamontowania specjalnego systemu plików:

mount -t fdescfs fdesc /dev/fd

Należy dodać odpowiedni wpis do pliku /etc/fstab:

fdesc		/dev/fd		fdescfs		rw	0	0

Zmiana powłoki dla obecnego użytkownika:

chsh -s /usr/local/bin/bash

Listra trybów VESA:

vidcontrol -i mode

Wyszukiwanie numeru trybu dla rozdzielczości 1280x800 32 bity:

vidcontrol -i mode | grep 1280x800x32

Rezultat:

362 (0x16a) 0x0000001f G 1280x800x32 D   16x8  0xa0000 64k 64k 0xec000000 4000k

Zmiana rozdzielczości ekranu. Edytujemy plik:

nano /etc/rc.conf

Dodajemy flagę z wybranym trybem:

allscreens_flags="MODE_362"

Swap info:

swapinfo

Rezultat:

Device          1K-blocks     Used    Avail Capacity
/dev/da0p3        1023964        0  1023964     0%

Wyświetla jeden ekran programu top i kończy jego działanie:

top -d1

Rezultat:

last pid:  2218;  load averages:  0.40,  0.45,  0.42    up 0+04:49:37  02:13:02
29 processes:  2 running, 27 sleeping
CPU:     % user,     % nice,     % system,     % interrupt,     % idle
Mem: 4764K Active, 69M Inact, 35M Wired, 24M Buf, 118M Free
Swap: 410M Total, 410M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME    WCPU COMMAND
  841 mysql        16  31    0   217M 43360K sigwai   0:03   0.00% mysqld
  865 root          1  20    0 79448K  4896K select   0:00   0.00% httpd
 1422 root          1  20    0 86084K  6924K RUN      0:00   0.00% sshd
  891 root          1  20    0 23980K  5172K select   0:00   0.00% sendmail
 1425 root          1  20    0 17576K  3260K wait     0:00   0.00% bash
  903 root          1  20    0 16520K  2156K nanslp   0:00   0.00% cron
  652 root          1  20    0 14432K  2064K select   0:00   0.00% syslogd
  894 www           1  20    0 79448K  4820K kqread   0:00   0.00% httpd
  536 root          1  20    0 13584K  4456K select   0:00   0.00% devd
  944 root          1  20    0 47656K  2708K wait     0:00   0.00% login
  747 mysql         1  52    0 16988K  2356K wait     0:00   0.00% sh
  957 root          1  20    0 17576K  3236K ttyin    0:00   0.00% bash
  899 smmsp         1  20    0 23980K  4892K pause    0:00   0.00% sendmail
  895 www           1  20    0 79448K  4820K lockf    0:00   0.00% httpd
  467 root          1  52    0 14556K  2164K select   0:00   0.00% dhclient
 2218 root          1  20    0 19768K  2544K RUN      0:00   0.00% top

Polecenia w trybie internaktywnym programu top:

h - pomoc
o - stortuj po wybranej kolumnie
k - zabija proces, wysyła sygnał
s - czas pomiędzy odświeżaniem ekranu
a - przełącza wyświetlanie nazwwy procesu
u - wyświetla procesy dla wybranego użytkownika, + wybiera wszystkich
n - lista wyświetlanych zadań
q - kończy program

Instalacja pstree:

pkg install pstree

Rezultat:

-+= 00001 root /sbin/init --
 |--= 00107 root adjkerntz -i
 |--= 00467 root dhclient: em0 [priv] (dhclient)
 |--= 00523 _dhcp dhclient: em0 (dhclient)
 |--= 00536 root /sbin/devd
 |--= 00652 root /usr/sbin/syslogd -s
 |-+= 00747 mysql /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/va
 | \--- 00841 mysql /usr/local/libexec/mysqld --defaults-extra-file=/var/db/my
 |-+= 00860 root /usr/sbin/sshd
 | \-+= 01422 root sshd: root@pts/0 (sshd)
 |   \-+= 01425 root -bash (bash)
 |     \-+= 03027 root pstree
 |       \--- 03028 root ps -axwwo user,pid,ppid,pgid,command
 |--= 00891 root sendmail: accepting connections (sendmail)
 |--= 00899 smmsp sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue 
 |--= 00903 root /usr/sbin/cron -s
 |-+= 00944 root login [pam] (login)
 | \--= 00957 root -bash (bash)
 |--= 00945 root /usr/libexec/getty Pc ttyv1
 |--= 00946 root /usr/libexec/getty Pc ttyv2
 |--= 00947 root /usr/libexec/getty Pc ttyv3
 |--= 00948 root /usr/libexec/getty Pc ttyv4
 |--= 00949 root /usr/libexec/getty Pc ttyv5
 |--= 00950 root /usr/libexec/getty Pc ttyv6
 \--= 00951 root /usr/libexec/getty Pc ttyv7

Instalacja tree:

pkg install tree

Rezultat:

.
|-- Music
|   `-- song.mp3
|-- etc.txt
`-- test

2 directories, 2 files

Nie ma poziomów uruchomienia w systemie FreeBSD, ale jest tryb pojedynczego użytkownika.


Pakowanie plików:

zip -9 images.zip *.jpg

Pakowanie katalogów:

zip -9 -r documents.zip documents

Informacje na temat partycji:

gpart show da0

Tworzenie schematu partycji GPT dla nowego dysku:

gpart create -s GPT da1

Dodawanie partycji:

gpart add -t freebsd-ufs da1

Tworzenie systemu plików:

newfs -U /dev/da1p1

Tworzymy pusty katalog w obecnym systemie plików jako punkt montowania dla nowej partycji:

mkdir /dysk2

Dodajemy automatyczne montowanie partycji w pliku /etc/fstab:

/dev/da1p1	/dysk2		ufs	rw	2	2

Urządzenia USB są widoczne w systemie jako urządzenia SCSI:

camcontrol devlist

Rezultat:

<NECVMWar VMware IDE CDR10 1.00>   at scbus1 target 0 lun 0 (pass0,cd0)
<VMware Virtual disk 1.0>          at scbus2 target 0 lun 0 (pass1,da0)

Alternatywnie możemy użyć programu:

usbconfig

Tworzymy nowe urządzenie dla obrazu ISO:

mdconfig -f cdrom-1.34.iso -u 0

W przypadku nie podania numeru urządzenia, system przydzieli pierwszy wolny numer. Lista dołączonych urządzeń:

mdconfig -l

Zamontuj urządzenie w katalogu:

mount -t cd9660 /dev/md0 /mnt

Alternatywnie można użyć programu:

mount_cd9660 /dev/md0 /mnt

Odmontowanie obrazu:

umount /mnt

Usuwanie wirtualnego urządzenia:

mdconfig -d -u 0

Dodaj nowego konta użytkownika w trybie interaktywnym:

adduser

Rezultat:

Username: szef
Full name: Szef wszystkich szefow
Uid (Leave empty for default): 
Login group [szef]: 
Login group is szef. Invite szef into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh bash rbash nologin) [sh]: bash
Home directory [/home/szef]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: 
Use a random password? (yes/no) [no]: 
Enter password: 
Enter password again: 
Lock out the account after creation? [no]: 
Username   : szef
Password   : *****
Full Name  : Szef wszystkich szefow
Uid        : 1002
Class      : 
Groups     : szef 
Home       : /home/szef
Home Mode  : 
Shell      : /usr/local/bin/bash
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (szef) to the user database.
Add another user? (yes/no): no
Goodbye!

Usuwanie konta:

rmuser szef

Zmiana hasła:

passwd

Głowny plik z hasłami:

/etc/master.passwd

Politykę haseł możemy zmienić w pliku:

/etc/pam.d/passwd

Należy odkomentować i zmodyfikować linię:

password        requisite       pam_passwdqc.so         min=disabled,disabled,disabled,12,10 similar=deny retry=3 enforce=users

Parametry określają skomplikowaność hasła. Wartość 12 określa minimalną długość hasła, które zawiera 3 z 4 elementów takich jak litery, cyfry, znaki specjalne i wielkość znaków. Wartość 10 to minimalna długość hasła, która zawiera wszystkie 4 elementy. Dodatkowo zablokowano możliwość zmiany hasła na podobne do już istniejącego oraz ustawiono liczbę prób wprowadzenia nowego hasła. Jeżeli jest potrzeba zmiany czasu przedwanienia hasła, można zmodyfikować globalne ustawienia w pliku:

/etc/login.conf

Naley odkomentować lub zmodyfikować linię:

:passwordtime=90d:\

Po zapisaniu zmian, należy wykonać polecenie:

cap_mkdb /etc/login.conf

Indywidualne limity dla kont użytkowników można ustawić za pomocą programu pw:

pw usermod -p 30-apr-2015 -n szef

Dodawanie grupy:

pw groupadd grupa

Informacje na temat grupy:

pw groupshow grupa

Dopisz użytkownika do istniejącej grupy:

pw groupmod grupa -m szef

Informacje o użytkowniku:

id szef

Rezultat:

uid=1002(szef) gid=1002(szef) groups=1002(szef),1004(grupa)

Informacje o grupach:

groups szef

Rezultat:

szef grupa

Dodawanie konta z poziomu wiersza poleceń:

pw useradd -n student -c "Wieczny student" -s /bin/bash -m

Usuwanie konta z poziomu wiersza poleceń:

pw userdel -n student -r

Pomoc dla programu pw:

pw useradd help
man pw

Dodawanie konta do istniejącej grupy:

pw usermod szef -G student

Zablokowanie konta:

pw lock szef

Odblokowanie konta:

pw unlock szef

Informacje o sprzęcie:

pciconf -lv

Konfiguracja programu cron:

crontab -e

Na początku skryptu warto dodać zmienne środowiskowe:

SHELL=/usr/local/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

*	*	*	*	*	/root/backup.sh /root/dane

Wyświetlanie tablicy zadań:

crontab -l

Usuwanie całej tablicy zadań:

crontab -r

Informacje o interfejsach sieciowych:

ifconfig

Konfiguracja automatyczna karty. Edytujemy plik:

nano /etc/rc.conf

Dodajemy:

ifconfig_em0="DHCP"

Konfiguracja manualna karty. Edytujemy plik:

nano /etc/rc.conf

Dodajemy:

ifconfig_em0="inet 192.168.0.23 netmask 255.255.255.0"

W przypadku braku serwera DHCP możemy skonfigurować bramę domyślną manualnie:

nano /etc/rc.conf

Dodajemy:

defaultrouter="192.168.0.1"

Podobnie możemy dodać adresy DNS. Edytujemy plik:

nano /etc/resolv.conf

Dodajemy:

nameserver 8.8.8.8
nameserver 8.8.4.4

Konfiguracja dzienników systemowych:

/etc/syslog.conf

Konfiguracja zarządzania i rotacji dzienników:

/etc/newsyslog.conf

Kopia bezpieczeństwa za pomocą rsync:

rsync -azvv -e ssh --delete dane/ student@192.168.0.19:/home/student/dane/

Parametry:

-a - zachowuje daty modyfikacji oraz uprawnienia plików i katalogów
-z - używa kompresji przy przesyłaniu plików
-vv - zwiększa szczegółowość komunikatów wyświetlanych na ekranie w trakcie procesu synchronizacji
-e - określa typ powłoki na zdalnym systemie, w naszym przypadku jest to ssh
--delete - usuwa w docelowym katalogu pliki i katalogi, które nie są obecne w katalogu źródłowym
--dry-run - pozwala sprawdzić na sucho efekt działania polecenia bez modyfikacji katalogu docelowego

Zatrzymanie systemu:

shutdown -h now

Wyłączenie maszyny:

poweroff