Jak zamknąć proces na porcie na serwerze Linux

Aby zamknąć (zabić) proces na porcie na serwerze Linux należy wydać polecenie:

fuser -n tcp -k 21

*(gdzie 21 to numer portu)
Innym sposobem jest uruchomienie aplikacji htop i po wybraniu procesu strzałkami naciśnięcie
'k' w celu zabicia procesu/aplikacji. W tym przypadku powinniśmy znać nazwę aplikacji.

Po wybraniu procesu i przyciśnięciu 'k' (kill) możemy usunąć/zamknąć proces na różne sposoby,
wymienione po lewej stronie.

Sprawdzanie prędkości łącza internetowego w terminalu (speedtest, nload, iftop)

Dzisiaj kilka słów o tym, jak sprawdzić przepustowość łącza na hoście, na który jesteśmy właśnie zalogowani. Zazwyczaj możemy to zrobić za pośrednictwem przeglądarki, jednak zdarza się, że firewall na serwerze uniemożliwia pingowanie hostów, w związku z tym nie możemy przeprowadzić testu przepustowości.
Rozwiązaniem takiej sytuacji jest zastosowanie aplikacji Speedtest. Aby pobrać narzędzie do testowania prędkości internetu, wpisujemy w terminalu Ubuntu następujące polecenia:

sudo apt-get install python-pip

Następnie poprzez narzędzie do zarządzania pakietami popieramy pytona speedtest:

sudo pip install speedtest-cli

Jeżeli chcemy teraz sprawdzić prędkość łącza, wpisujemy:

speedtest

A oto wynik działania speedtestu:

Jeśli chcemy na bieżąco monitorować przesył danych przez poszczególne interfejsy, możemy skorzystać z narzędzia nload. Poszczególne interfejsy można zmieniać za pomocą strzałek góra/dół.

sudo apt-get install nload
nload


Możemy też użyć narzędzia iftop, które pokazuje połączenia naszego hosta z wszystkimi domenami.
Powyższe narzędzia charakteryzują się niewielką złożonością, ale mogą okazać się przydatne.
Jeżeli spodobał Ci się temat, zostaw komentarz poniżej.

Add icon and script to Ubuntu dashboard

Create activator in:

cd /usr/share/applications

we creat activator:

nano myActivator.desktop

and define icon, execute and terminal or not one in file:

[Desktop Entry]
Type=Application
Terminal=false
Name=chromium-browser
Icon=/opt/chromium.png
Exec=/usr/bin/chromium-browser --user-data-dir=/opt/
szymon@geek:/usr/share/applications$ pwd
/usr/share/applications

Brak log-ów /var/log/syslog

Jeżeli masz problem z logami

apt-get install --reinstall rsyslogd
apt-get install inetutils-syslogd

Pamiętaj o uprawnieniach pliku:

sudo chown syslog:adm /var/log
sudo chmod 0775 /var/log

Prawdopodobnych błędów można szukać w pliku:

/etc/rsyslog.conf

i plikach

/etc/rsyslog.d/50-default.conf

można uruchomić również usługę w trybie debugowania:

/etc/init.d/rsyslog stop
rsyslogd -n -i /var/run/syslogs.pid

Oprogramowanie przyckisków Canon Lide 100 na Linuxie

Aby debugować scanbd używamy polecenia:

sudo scanbd -d7 -f -c /etc/scanbd/scanbd.conf

Output:

 scanbd: foreground
scanbd: config-file: /etc/scanbd/scanbd.conf
scanbd: reading config file /etc/scanbd/scanbd.conf
scanbd: debug on: level: 7
scanbd: dropping privs to uid saned
scanbd: dropping privs to gid scanner
scanbd: group scanner has member:
scanbd: saned
scanbd: drop privileges to gid: 109
scanbd: Running as effective gid 109
scanbd: drop privileges to uid: 108
scanbd: Running as effective uid 108
scanbd: dbus_init
scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
scanbd: SANE_CONFIG_DIR not set
scanbd: sane version 1.0
scanbd: Scanning for local-only devices
^Xscanbd: start_sane_threads
scanbd: start dbus thread
scanbd: Not Primary Owner (2)
scanbd: timeout: 500 ms
scanbd: Iteration on dbus call

Przykładowa konfiguracja:

global {
       
        debug   = true
        debug-level = 2
        user    = saned
        group   = scanner
        saned   = "/usr/sbin/saned"

       
        timeout = 500
        pidfile = "/var/run/scanbd.pid"
       
        environment {
                device = "SCANBD_DEVICE"
                action = "SCANBD_ACTION"
        }
        function function_knob {
                filter = "^message.*"
                desc   = "The value of the function knob / wheel / selector"
                env    = "SCANBD_FUNCTION"
        }
        function function_mode {
                filter = "^mode.*"
                desc   = "Color mode"
                env    = "SCANBD_FUNCTION_MODE"
        }
 
        action scan {
                filter = "^scan.*"
                numerical-trigger {
                        from-value = 1
                        to-value   = 0
                }
                desc   = "Scan to file"
                script = "/etc/scanbd/copy.sh"
        }
        action email {
                filter = "^email$"
                string-trigger {
                        from-value  = ""        
                        to-value    = "^email.*"
                }
                desc   = "Scan to email"
                script = "/etc/scanbd/mail.sh"
        }
        action copy {
                filter = "^copy$"
                string-trigger {
                        from-value  = ""
                        to-value    = "^copy.*"
                }
                desc   = "Copy to printer"
                script = "/etc/scanbd/copy.sh"
        }
        action preview {
                filter = "^preview$"
                numerical-trigger {
                        from-value = 1
                        to-value   = 0
                }
                desc   = "Preview"
                script = "/etc/scanbd/scan.sh"
        }
        action globaltest {
                filter = "^message.*"
                desc   = "Test (print all env vars)"
                script = "/etc/scanbd/pdf.sh"
        }
        action globaltest {
                filter = "^pdf.*"
                desc   = "Test (print all env vars)"
                script = "/etc/scanbd/pdf.sh"
        }
}

include(scanner.d/canon.conf)

Zwróć uwagę na ostatnie linijki, które powinne zaierać Twój skaner.

W plikach mamy nazwy script np:
/etc/scanbd/pdf.sh

przykładowy plik:

#!/bin/sh
TMPFILE="/tmp/image.tiff"
LOCKFILE="/tmp/copy.lock"

echo "pdf tworzę" >> /var/log/syslog

/usr/bin/scanimage --mode lineart -B10M --resolution 600 | pnmtops -imageheight 11 -imagewidth 8.5 | ps2pdf - /home/szymon/skaner/output.pdf | /usr/bin/mail -s "PDF" -a /home/szymon/skaner/output.pdf szymon@artmetic.pl
 
pamiętajmy o nadaniu uprawnień plikom:
 
chmod +x /etc/scanbd/pdf.sh

Linux błąd filtru i pytania o hasło drukarki – naprawa.

Dziś po upgradzie do Ubuntu 16.04 moja drukarka odmówiła posłuszeństwa, a co gorsza w panelu z drukarkami jestem ciągle atakowany o podanie hasła więc postanowiłem po wielu nieudanych próbach podawania prawidłowego hasła jednak odpalić ją z roota. Jednak to nie był koniec kłopotów bo wyświetlał się ciągle komunikat o brakującym filtrze do drukarki. A więc rozwiązałem to tak:

sudo system-config-printer

następnie usunąłem i dodałem. Drukarka wystartowała ale od razu przeszedłem do kolejki wydruku bo trochę zaległych dokumentów tam wpadło 🙂

Jak stworzyć serwer DHCP na Linuxie?

Poniżej przykładowa konfiguracja:

cat /etc/dhcp/dhcpd.conf

default-lease-time 86400; #czas w sekundach okresu dzierżawy ip max-lease-time 86400; # maksymalny czas w sekundach okresu dzierżawy ip option subnet-mask 255.255.255.0; option domain-name-servers 127.0.0.1;#,8.8.8.8; #domyślne adresy domenowe dla naszego hosta; lepiej użyć dns-a, który daje nam dostawca lub dns google 8.8.8.8 lub 8.8.4.4 option domain-name "artmetic.pl"; # opcjonalna nazwa domeny ddns-update-style none; server-name artmetic; # nazwa serwera subnet 192.168.2.0 netmask 255.255.255.0 { interface "eth0"; # interfejs sieciowy, którego będzie dotyczyć rozdawanie adresów ip option subnet-mask 255.255.255.0; option routers 192.168.1.1; next-server 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; pool { # allow members of "DRBL-Client"; range 192.168.1.2 192.168.1.3; // zakres adresów ip, które mogą zostać przydzielone } } subnet 10.1.1.0 netmask 255.255.255.0 { interface "eth1"; # interfejs sieciowy, którego będzie dotyczyć rozdawanie adresów ip option subnet-mask 255.255.255.0; range 10.1.1.5 10.1.1.60; # zakres adresów ip, który może zostać przydzielony option domain-name "artmetic.pl"; option domain-name-servers 89.78.78.230,8.8.8.8, 8.8.4.4; # tutaj podajemy adresy dns, które zamieniają adresy nazwy domen na adresy ip option routers 10.1.1.1; # domyślna droga, przez którą się łączą hosty do dhcp-a option broadcast-address 10.1.1.255; # adres rozgłoszeniowy (broadcast) default-lease-time 3600; #okres dzierżawy w sekundach max-lease-time 28800; # maksymalny okres dzierżawy deny unknown-clients; # niespodzianka dla nieznanych hostów, czyli nikt niepowołany się nie połączy } Poniżej definicja pierwszego urządzenia/hosta: host laptop { hardware ethernet E6:B9:C5:1D:FA:97; # adres MAC fixed-address 10.1.1.5; # użyłem pierwszego możliwego adresu z zakresu od 10.1.1.5 10.1.1.60 # option domain-name "artmetic.pl"; # option domain-name-servers 8.8.8.8; } host komorka-android { hardware ethernet 01:70:4c:c5:1e:32; fixed-address 10.1.1.6; option domain-name-servers 8.8.8.8, 8.8.4.4; # domyślne adresy dns dla naszego hosta } host VirtulaBox { hardware ethernet 08:01:27:32:68:00; fixed-address 10.1.1.10; } host telewizor { hardware ethernet c8:44:10:64:49:e1; fixed-address 10.1.1.15; }

Następnie restartujemy usługę poleceniem:

sudo /etc/init.d/isc-dhcp-server restart

Sudoers, nadawanie uprawnień zwykłym użytkownikom

Uprawnienia użytkowników są jednym z fundamentalnych paradygmatów w systemach Linux. Zwykli użytkownicy mają ograniczone uprawnienia, aby zredukować ich wpływ na działanie systemu i ograniczyć go do ich własnego środowiska, po którym mogą się poruszać.

Użytkownikiem specjalnym z punktu widzenia całego systemu jest super- użytkownik zwany root-em. Root może wykonywać wszystkie polecenia, chyba że charakter aplikacji na to nie pozwala (np. VLC), ponieważ mógłby zostać uszkodzony sprzęt.

Konto roota ma charakterystyczny uuid:
root@szymon:/home/szymon# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

Poniżej kilka słów o tym, w jaki sposób można nadawać użytkownikom uprawnienia do wykonywania niektórych poleceń. Do tego używam systemu Ubuntu 14.04.

Aby zalogować się na konto roota wydajemy polecenie:

sudo su

Aby wyjść z konsoli roota i wrócić do naszego użytkownika wydajemy polecenie:

exit

Aby wykonywać polecenia z uprawnienieniami super-użytkownika, wydajemy polecenie:

sudo polecenie

Następnie zostaniemy poproszeni o hasło. Przez kolejne 5 minut będziemy mogli wykonywać polecenia na prawach roota bez podawania hasła. Aby uniknąć sytuacji, gdzie polecenie wymaga użycia uprawnień roota, możemy dodać nowego użytkownika i polecenie do pliku konfuguracyjnego.

Aby to zrobić, trzeba wyedytować plik /etc/sudoers. Należy to zrobić za pomocą polecenia:

sudo visudo

Dzięki temu unikniemy kłopotów związanych ze złą składnią, którą waliduje przed zapisem program visudo.

Po otwarciu pliku poleceniem visudo, pojawi nam się w systemie Ubuntu domyślny edytor tekstowy w terminalu nano. W innych systemach może otworzyć nam się plik w vi.

Aby zmienić edytor możemy wydać polecenie:

sudo update-alternatives --config editor

Będziemy wtedy mogli wybrać jeden z alternatywnych edytorów, znajdujących się w /usr/bin/nazwaEditora.

Są 3 dostępne alternatywy dla editor (dostarczające /usr/bin/editor):

Wybór Ścieżka Priorytet Status ------------------------------------------------------------ * 0 /bin/nano 40 tryb auto 1 /bin/ed -100 tryb ręczny 2 /bin/nano 40 tryb ręczny 3 /usr/bin/vim.tiny 10 tryb ręczny

W CentOS, możesz dokonać zmiany w pliku ~/.bashrc:
export EDITOR=/path/to/nazwaEditora

A następnie, wydając polecenie:

. ~/.bashrc

Po ustawieniu wygodnego dla nas edytora, możemy wydać polecenie:

sudo visudo

Domyślna konfiguracja znajdująca się w pliku sudoers wygląda w następujący sposób (bez komentarzy):

Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" root ALL=(ALL:ALL) ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d

Pierwsza linijka „Defaults env_reset”, czyści wszystkie zmienne użytkownika, ze względów bezpieczeństwa, z sesji użytkownika sudo.

Następna linijka – rozpoczynająca się „Defaults secure_path=…” – ustawia ścieżkę, gdzie można odnaleźć aplikacje, które są używane w systemie przy wydawaniu polecenia sudo.

Następne liniki odnoszą się do uprawnień użytkowników:

szymon ALL=(ALL:ALL) ALL

Nazwa szymon odnosi się do użytkownika, którego reguły będą dotyczyć. Pierwsze ALL odnosi się do hosta, którego reguła dotyczy; następne „ALL” (pierwsze w nawiasie) odnosi się do możliwości wykonywania poleceń przez użytkownika i kolejne do grupy.
Ostatnie all odnosi się do poleceń – w tym przypadku użytkownik szymon może wszystko wykonywać bez użycia polecenia sudo. Nie jest to jednak zalecane.

Ostatnie dwie linijki są podobne do uprawnień użytkownika, odnoszą się jednak do grup użytkowników i są poprzedzone %.:

%admin ALL=(ALL) ALL

W przypadku powyższym grupa administatorów może wykonywać każde polecenie przez każdego użytkownika na każdym hoście.

Aby wygenerować aliasy użytkowników należących do grup, które ułatwią nam pisanie reguł, możemy je utworzyć w poniższy sposób. Należy pamiętać przy tym, że nazwy grup powinny zaczynać się wielkimi literami:

User_Alias GROUPONE = szymon, maria, marta User_Alias NINJA = enrike, szymon, marek

Aby umożliwić wykonywanie restartowania apache’a (usługi) określonej grupie możemy dopisać regułę dla grupy NINJA w następujący sposób:

NINJA ALL = /usr/bin/apache restart

Możemy również zezwolić użytkownikom na wykonywanie kilku poleceń, za pomocą aliasu dla poleceń.

Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart NINJA ALL = POWER

W poniższym poleceniu możemy umożliwić grupie pierwszej wykonywać polecenia jako użytkownik „www-data” lub „apache”:

Runas_Alias WEB = www-data, apache GROUPONE ALL = (WEB) ALL

Jeżeli chcemy, aby użytkownik mógł wykonać dane polecenie bez potrzeby wprowadzania przez niego hasła, możemy utworzyć następującą regułę:

GROUPONE ALL = NOPASSWD: /usr/bin/rm

NOPASSWD oznacza, że nie będzie wydawana prośba o podanie hasła. Jest to bardzo przydatne przy pisaniu skryptów, ponieważ nie przerywa ich wykonywania.
Antagonizmem do NOPASSWD jest PASSWD, które domyślnie wymusza podanie hasła.

GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill

Kolejnym ważnym poleceniem jest NOEXEC, które ochrania przed niebezpiecznym zachowaniem wykonania niektórych programów.

Np polecenie „less” może spowodować działanie innych programów:

szymon ALL = NOEXEC: /usr/bin/less

Jest jeszcze kilka interesujących poleceń, które można wykorzystać przy nadawaniu uprawnień grupom. Jeżeli mamy dodanego użytkownika lub grupę w pliku konfiguracyjnym, możemy – dodając flagę -u dla użytkownika lub -g dla grupy – wydać polecenie jako określony użytkownik/grupa:

sudo -u run_as_user polecenie sudo -g run_as_group polecenie

Dla wygody domyślnie sudo zapisuje uwierzytelnienie na pewien okres czasu, oznacza to, że nie trzeba podawać polecenia przez pewien okres czasu.

Należy o tym pamiętać i dla celów bezpieczeństwa możemy usunąć zegar opóźniający poleceniem:

sudo -k

Aby odłożyć zaś wymuszenie wpisania hasła możemy posłużyć się poleceniem:

sudo -v

By sprawdzić, jakie mamy uprawnienia w chwili obecnej, możemy wydać polecenie:

szymon@szymon:~$ sudo -l Pasujące wpisy Defaults dla szymon na szymon: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin Użytkownik szymon może uruchamiać na szymon następujące polecenia: [cce_bash width="100%" no_cc="true"] (ALL : ALL) ALL

Dzięki poleceniu mamy wylistowane wszystkie reguły dla użytkownika z pliku /etc/sudoers. Dzięki temu będziesz mógł się dowiedzieć co możesz zrobić jako użytkownik, wydając polecenie sudo.

Niekiedy zdarza się, że wydajesz jedno i to samo polecenie polecenie, i zapominasz wpisać sudo. W takiej sytuacji, jeżeli używasz tego samego ostatniego polecenia, możesz użyć skrótu:

szymon@szymon:~$ sudo !! sudo sudo -l Pasujące wpisy Defaults dla root na szymon: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin Użytkownik root może uruchamiać na szymon następujące polecenia: (ALL : ALL) ALL

Jeżeli chcesz dla zabawy, aby po każdym wpisaniu hasła były generowane śmieszne komunikaty, możesz dopisać w pliku następującą konfiguracje:

sudo visudo Defaults insults

This will cause sudo to return a silly insult when a user types in an incorrect password for sudo. We’ll use sudo -k to clear the previous sudo cached password to try it out:

szymon@szymon:~$ sudo -k szymon@szymon:~$ sudo ls szymon@szymon:~$ sudo su [sudo] hasło użytkownika szymon: I feel much better now. [sudo] hasło użytkownika szymon: I don't wish to know that.

Możemy też wymusić, aby dany użytkownik nigdy nie zapamiętał hasła użytkownika w pliku konfiguracyjnym:

Defaults:użytkownik timestamp_timeout=0

Na sam koniec należy wspomnieć, że ze względów bezpieczeństwa powinieneś się dwa razy zastanowić, jakie uprawnienia nadejesz użytkownikom, a także nie powinieneś nadawać zwykłym użytkownikom uprawnień administracyjnych.

Jak sprawdzić jaka usługa nasłuchuje na danym porcie

Poniżej opiszę procedurę, dzięki której możesz sprawdzić czy dana aplikacja/ usługa nasłuchuje na określonym porcie w systemie operacyjnym Linux.

Sprawdź, kto Cię monitoruje i obserwuje! Kogo interesują Twoje dane osobowe, to co robisz i czym się zajmujesz?

szymon@szymon:~$ sudo netstat -tulpn

Aby znaleźć konkretny port lub usługę możemy posłużyć się poleceniem grep.

Polecenie daje następujące informacje:
root@server:/home/szymon# netstat -tulpn | grep apache
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 5369/apache2
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5369/apache2
root@server:/home/szymon# netstat -tulpn | grep :80
tcp 0 0 192.168.0.12:8088 0.0.0.0:* LISTEN 3049/asterisk
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 3451/beam
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5369/apache2

Następnie za pomocą kolejnego polecenia możemy sprawdzić czy usługa na pewno jest uruchomiona:
root@server:/home/szymon# ls -l /proc/5369/exe
lrwxrwxrwx 1 root root 0 mar 24 18:09 /proc/5369/exe -> /usr/sbin/apache2
gdzie 5369 jest PID-em usługi.

netstat

netstat

Jak sprawdzić sumę kontolną MD5 plików

Niekiedy potrzebujemy sprawdzić czy pobrany plik nie jest w jakiś sposób uszkodzony lub czy jest zgodny z oryginałem.

Aby to zweryfikować, możemy posłużyć się sumą kontrolną.

Tak więc, aby sprawdzić sumę kontrolną pliku, wykonujemy polecenie:

md5sum nazwaPliku

Aby porównać 2 pliki naraz (może okazać się to przydatne, jeżeli nie jesteśmy pewni czy nie dokonaliśmy w pliku jakichś zmian), wykonujemy polecenie:

md5sum ./skryptVideo.sh ./skrypt.sh~
95098865f4aabd0a11e4aea0717d2c97 ./skryptVideo.sh
3c2565df4cdd9827fc2594b3961a4d8f ./skrypt.sh~

Suma MD5 jest 128 bitowym kodem, zawierającym cyfry i litery z pliku lub łańcucha znaków.

Tak więc dla łańcucha znaków również możemy sprawdzić sumę kontrolną:
echo -n ‚Witaj świecie!’ | md5sum –

Przydatnym poleceniem jest zapamiętanie do pliku sumy kontrolnej:
root@server:~$ md5sum sent skrypt.sh~ > md5sums.md5

Po zapamiętaniu możemy zweryfikować czy pliki się zmieniły za pomocą polecenia:
root@server:~$ md5sum -c md5sums.md5
sent: DOBRZE
skrypt.sh~: DOBRZE

Następnie, gdy zmienimy coś w jednym z plików i wydamy polecenie:
root@server:~$ md5sum -c md5sums.md5
sent: DOBRZE
skrypt.sh~: NIEPOWODZENIE
md5sum: UWAGA: 1 policzona suma się NIE zgadza

Otrzymamy ostrzeżenie, że plik został zmieniony.

Taka funkcjonalność może być przydatna przy aktualizacjach – wtedy możemy pobrać plik z sumami kontrolnymi i zweryfikować czy na serwerze są jakieś zmienione pliki, a jeżeli tak – dokonać aktualizacji.

Aby dokonać rekursywnego zapisu całych folderów z plikami możemy wykorzystać polecenie:
md5deep -rl mojFolder > checksum.md5

Albo też:
find mojFolder -type f -print0 | xargs -0 md5sum >> checksum.md5

W drugim przypadku należy pamiętać o tym, że plik powinien być pusty:
echo „” > checksum.md5

Jak ograniczyć start systemu do trybu tekstowego w Linux

Aby nasz komputer nie przechodził do trybu gui podczas startu systemu należy edytować plik grub:
sudo nano /etc/default/grub

Zamieniamy linijkę:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash

na:

GRUB_CMDLINE_LINUX_DEFAULT=”text

Następnie trzeba wydać polecenie, które zaktualizuje naszego grub-a:

sudo update-grub

Teraz tylko restart systemu i gotowe! 🙂

Wyszukiwanie plików w systemie Linux

Aby wyszukać plik po nazwie w systemie Linux należy wydać polecenie:

sudo find /etc/ -name apache2
sudo find /Sciezka/ -name nazwaPliku
gdzie /etc/ to ścieżka, w której pliki mają być wyszukiwane rekursywnie, a apache2 to nazwa pliku.

Jeżeli chcemy wyszukać plik o określonej wielkości, możemy podać jego minimalną wielkość poleceniem:

sudo find /etc/ -name apache2 -size 1M
gdzie 1M to 1 megabajt.

Poza poleceniem -name można jeszcze użyć poleceń:
-user – gdzie możemy wyszukać po nazwie użytkownika;
-group – analogicznie do user po nazwie grupy np www-data.

Aby wyszukać tekst w pliku należy użyć polecenia:

sudo grep /home/szymon/ -ril szymon
sudo grep /home/szymon/ -ril wyrażenie
gdzie szymon to szukany wyraz.