Administracja systemu FreeBSD
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