Pokazywanie postów oznaczonych etykietą gnu/linux. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą gnu/linux. Pokaż wszystkie posty

sobota, 28 lutego 2026

SWAP w pliku na Linuksie

Obszar wymiany danych (czy to poprawne określenie?) to takie "miejsce" na dysku, które rozszerza pamięć RAM o dodatkową pojemność na dysku twardym. W Windowsie jest to pagerfile, w Linuksie (i pochodnych) odpowiednikiem jest swap, a w Androidzie podobną funkcję oferuje RAM Boost.

W Linuksie obszar wymiany danych może być zarówno partycją (np na oddzielnym dysku nvme) jak i plikiem. Zajmiemy się utworzeniem ostatniej opcji (z roota):

dd if=/dev/zero of=/swap bs=1G count=64

Stworzy nam to plik swap o rozmiarze 64GB, znajdujący się na partycji systemowej. Zmieniamy uprawnienia:

chmod 0600 /swap

Tworzymy "ekosystem":

mkswap /swap

W /etc/fstab tworzymy wpis:

/swap none swap defaults 0 0

Wykonujemy:

systemctl daemon-reload

Następnie:

mount -a

Oraz włączamy swapa:

swapon -a

I to wszystko :D

poniedziałek, 19 stycznia 2026

Zdalne wywołanie poleceń w Linuxie (ssh / port knocking / fwknop / shell2http)

Szukałem ostatnio rozwiązania, które pozwoliłoby mi na zdalne wywołanie dowolnego polecenia na jednym z komputerów. 
Docelowy komputer czasami pracuje u mnie po *naście albo *dziesiąt godzin a że jest to ekonomicznie uzasadnione rozwiązanie smart tv to posiada pełnoprawny interfejs graficzny. A Xorg, jak to Xorg, swoje wady ma i często po kilkunastu godzinach pracy po prostu lubi się całkowicie sfreezować (zamrozić / zawiesić) i wówczas pomaga tylko twardy reset. Poszukiwane rozwiązanie problemu i docelowy zamysł był taki, żeby gui na czas wyjścia z domu wyłączyć (o ile nic się nie renderuje), a można to rozwiązać na cztery sposoby.

Pierwszy sposób to ssh. A zrobimy to w taki sposób:
ssh user@pc 'sudo systemctl stop lightdm.service; sudo chvt 1'
Powyższa komenda zatrzymuje nam menedżera logowania i jednocześnie przełącza tty z 7 (domyślne tty dla gui w Debianie) na 1. Gdybyśmy chcieli tylko podejrzeć, czy menedżer logowania się wyłączył to możemy włączyć sprawdzić np htopem:
ssh -t user@pc htop
Po zamknięciu htopa oczywiście zostaniemy rozłączeni.


Drugim sposobem jest tzw port knocking. Metoda - podobno - trochę przestarzała i mało bezpieczna. Polega na wysłaniu "sygnału" na określone przez nas porty, po czym wykonuje określone w konfiguracji komendy. Rozwiązanie dobre, ale tylko lokalnie.

Instalacja (w Debianie):
apt install knockd
Konfiguracja z sekwencjami portów znajduje się w /etc/knockd.conf, przykładowo:
[options]
UseSyslog
LogFile = /var/log/knockd.log
Interface = eno1

[echo]
        sequence    = 1,1,1
        seq_timeout = 1
        command     = echo
        tcpflags    = syn
W sekcji [options] warto uwzględnić nazwę interfejsu oraz gdzie ma być zapisywany log.
Plik "aktywacyjny" /etc/default/knockd:
# control if we start knockd at init or not
# 1 = start
# anything else = don't start
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1

# command line options
KNOCKD_OPTS="-i eno1"
START_KNOCKD domyślnie jest na 0, nazwę sieci ustawiamy wedle potrzeb.
Z poziomu klienta, jeśli klientem również jest Debian instalujemy tę samą paczkę:
apt install knockd
I terminalu wystarczy wykonać:
knock -v host port1 port2 port3
Opcja -v powoduje wypisanie nam na ekranie poszczególnych działań.
Knocking działa również na interfejsach wifi. Po resztę informacji zapraszam do manuali.


Trzecim sposobem jest fwknop. W tym przypadku "logowanie" do serwera działa jak w przeglądarce internetowej. Tzn tworzymy klucz, który przesyłamy do serwera, prawie jak ciasteczko w przeglądarce. Jak serwer odbierze nasze dane to zaakceptuje nasze połączenie i wykorzysta według konfiguracji.

Przedstawię bardzo uproszczoną konfigurację. W przeciwieństwie do poprzedniego rozwiązania musimy zainstalować dwie różne paczki.

Na kliencie instalujemy:
apt install fwknop-client
A na serwerze:
apt install fwknop-server 
Na kliencie uruchamiamy:
fwknop -a ip.klienta -D ip.serwera --key-gen -C /sciezka/do/zdalnej/komendy --save-rc-stanza
--save-rc-stanza powoduje zapisanie konfiguracje w ~/.fwknoprc. W tym pliku mamy dwa klucze, KEY_BASE64 oraz HMAC_KEY_BASE64 które musimy przenieść na serwer (o tym niżej). Jak do jednego serwera chcemy wysłać kilka różnych komend (raz jedną, innym razem drugą) to przy generowaniu klucza możemy wykorzystać opcję -n nazwa. Dokładny opis w manualu.
Na serwerze włączamy usługę w /etc/default/fwknop-server z poniższymi argumentami:
START_DAEMON="yes"
DAEMON_ARGS="-f -U"
Dodatkowo mamy pliki /etc/fwknop/fwknopd.conf oraz /etc/fwknop/access.conf. Pierwszy zostawiamy z domyślną konfiguracją a do access.conf wrzucamy klucze z ~/.fwknoprc:
SOURCE              ip.klienta
KEY_BASE64          klucz1
HMAC_KEY_BASE64     klucz2
ENABLE_CMD_EXEC     Y
ENABLE_CMD_EXEC zezwala nam na uruchomienie zdalnej komendy. Z poziomu klienta:
fwknop -n docelowy.serwer -C /sciezka/do/komendy
I to wszystko :D fwknop docelowo służy do zdalnej modyfikacji reguł firewalla ale równie dobrze możemy wykorzystać go do zdalnego wykonania komend. W manualu widzimy również opcje CMD_CYCLE_OPEN, CMD_CYCLE_CLOSE oraz CMD_CYCLE_TIMER, których akurat nie testowałem. Mogłyby być alternatywą dla -C /sciezka/do/zdalnej/komendy (czy wystarczyłoby odpalić fwknop -n docelowy.serwer?).
W przeciwieństwie do knockd, za pomocą fwknop udało mi się uruchomić kilka komend jednocześnie (w skrypcie). knockd wykonywał tylko pierwszą komendę z docelowego skryptu.
Na Androida jest aplikacja fwknop. Nie testowałem.

Czwartym i ostatnim sposobem jest shell2http. To taka mała usługa, która pozwala na wykonanie poleceń z poziomu np przeglądarki internetowej (poprzez uprzednio skonfigurowany adress www). Jest to chyba najprostszy sposób jaki udało mi się znaleźć, teoretycznie najmniej problemowy i z tego co widzę to nie wymaga żadnych zależności. Póki co gotowej paczki nie ma w repozytoriach Debiana (stan na 19.01.2026) ale można znaleźć w sieci paczkę *.deb i na luzie ją zainstalować np z wykorzystaniem gdebi:
gdebi shell2http_1.17.0_linux_amd64.deb
Składnia polecenia jest prosta. Tworzymy usługę /etc/systemd/system/shell2http.service:
[Unit]
Description=shell2http
[Service]
Type=oneshot
ExecStart=/bin/shell2http  /polecenie1 "/sciezka/do/polecenia1" /polecenie2 "/sciezka/do/polecenia2"
[Install]
WantedBy=multi-user.target
W miejscu "/sciezka/do/polecenia1" możemy wpisać (między cudzysłowami) kilka poleceń oddzielonych znakiem ";". Następnie aktywujemy:
systemctl enable shell2http.service
Oraz uruchamiamy:
systemctl start shell2http.service
W przeglądarce internetowej odpalamy adres:
adres.ip.serwera:8080/polecenie1
Lub:
adres.ip.serwera:8080/polecenie2
Domyślny port to 8080, ale można to zmienić. Polecam zajrzeć do manuala. Odnoszę wrażenie, że shell2http reaguje najwolniej ze wszystkich opisanych rozwiązań.


I to wszystko :D
Najbezpieczniejszym rozwiązaniem wydaje się być fwknop z racji takiej że "sygnał" jest prawie nie do podrobienia (chyba, ze ktoś ma założony podsłuch) :D

Kilka sztuczek na SSH :) (wysłanie 1 komendy, gui, podniesienie uprawnień)

Mam u siebie kilka różnych komputerów z Debianem, które czasami chodzą po *-naście godzin. Kilka razy zdarzyło się, że się xorg losowo przywiesił (niezależnie od gpu i ogólnie sprzętu) i pomagał tylko twardy reset. Raczej kiepska sytuacja, tym bardziej że różne usługi chodzą w tle :D
Wpadłem na pomysł, że przecież gui zawsze można zdalnie wyłączyć, o ile nie jest w danej chwili potrzebne. Plus jest taki że prawdopodobnie dałoby radę zaprogramować to w automatyce domowej (wychodzisz, wyłączasz gui, wracasz, włączasz ponownie). No i jak zacząłem szukać różnych rozwiązań to zdałem sobie sprawę z tego, że przecież idealnie do tego nadaje się ssh.

1. Pierwsza 'testowa' komenda (odpala nam tylko htop, po zamknięciu sesja jest rozłączana):
ssh -t user@pc htop
2. Poniżej przykładowy sposób na wyłączenie np menedżera logowania (= gui) i przejście na tty1:
ssh user@pc 'sudo systemctl stop lightdm.service; sudo chvt 1'
3. A poniżej sposoby na odpalenie programu w gui z wykorzystaniem X11Forwarding:
ssh -X user@pc 'sudo -E polecenie'
Lub:
ssh -X user@pc 'su -p -c "PATH=/usr/sbin:/sbin:$PATH polecenie"'
sudo -E polecenie oraz su -p -c "PATH=/usr/sbin:/sbin:$PATH polecenie" są potrzebne tylko wtedy kiedy chcemy odpalić polecenie z podniesionymi uprawnieniami. W przypadku odpalenia np przeglądarki internetowej na zdalnym pc wystarczy:
ssh -X user@pc przeglądarka

Oczywiście są inne sposoby na zdalne wyłączenie gui (tudzież wysłanie dowolnej komendy) ale o tym w następnym wpisie :D

sobota, 3 stycznia 2026

Zdalny dostęp do GUI w Debianie (rdp/ssh) (wersja 1min)

To tylko krótka notka.
Poza x11vnc mamy jeszcze dwie inne możliwości, wedle potrzeb.
Pierwsza z nich to 'stare', dobre Windowsowe rdp. Daje nam, tak jak przy vnc, dostęp do "całego" ekranu i środowiska użytkownika. W Debianie instalujemy:
apt install xorgxrdp xrdp
I tyle. Pliki konfiguracyjne mamy w /etc. Usługa systemowa 'tworzy' się w trakcie instalacji, więc każdy sobie musi sam "dopracować" poszczególne ustawienia.

Drugą z opcji, jeżeli korzystamy z ssh, jest tzw X11 Forwarding. W przeciwieństwie do rdp i vnc poniższa funkcja umożliwia nam uruchomienie jednego konkretnego programu z poziomu terminala klienckiego. Sprawdzamy co mamy w pliku konfiguracyjnym:
cat /etc/ssh/sshd_config | grep -e X11Forwarding -e PermitUserEnvironment -e X11UseLocalhost
U mnie jest ustawione na:
X11Forwarding 
PermitUserEnvironment yes 
X11UseLocalhost yes
I tyle. Restartujemy usługę:
systemctl restart ssh.service
I to wszystko.

Druga opcja, umożliwia nam, zamiast instalacji całego środowiska graficznego, instalację np jednego konkretnego programu (do np księgowości, czy co tam potrzebujemy.

Programów graficznym pokroju gimpa czy innego blendera raczej bym nie uruchamiał, ale do mniej wymagających spraw dobre będą obydwie metody :D pozostała tylko kwestia przekierowania audio (w bliżej nieokreślonej przyszłości, mam już kilka pomysłów).

czwartek, 1 stycznia 2026

Stała częstotliwość pracy procesora CPU (poprawa pracy igpu)

Lata temu do zarządzania energią procesora korzystało się z cpufrequtils. Potem zaszły zmiany, wprowadzono intel_pstate i odpowiednik u AMD. Jest to rozwiązanie na pewno bardziej skuteczne w zarządzaniu energią procesora. U mnie wszystko było OK do czasu, aż podłączyłem pod TV starszego mini pc z Intelem. Jak się okazało, zintegrowana gpu bywa kapryśna bo w końcu jest w pełni zależna od cpu. U mnie w trakcie korzystania z serwisów streamingowych przeglądarka potrafiła znienacka zamknąć kartę i wywalić błąd :D (i to mimo wsparcia sprzętowego dla różnych kodeków)

Problem się objawiał tylko na starszych i trochę słabszych jednostkach jak i5-7500T, trochę mniej na i5-8500T a na zwykłym i5-11400 tego problemu nie zauważyłem.

Co ciekawe, kernel Liquorix na Debianie problemów nie sprawiał i w dodatku ma ustawioną stałą wartość częstotliwości pracy procesora. Z małą pomocą forumowego AI (jak na dzisiejsze standardy...) znalazłem sposób jak ustawić procesor na sztywno.

AI jak to AI, często się myli więc jeśli już musimy to trzeba korzystać bardzo ostrożnie i co najwyżej można się zasugerować ale nie można brać za pewnik.

Na tą chwilę (1.01.2026) rozwiązanie działa, ale jak długo tak będzie, nie wiadomo. Wygląda na to, że poniższa metoda działa również na linux-image-rt-amd64, czyli jednym z kerneli czasu rzeczywistego które zazwyczaj są odradzane w zastosowaniach "multimedialnych".


W Debianie instalujemy:

apt install linux-cpupower

Tworzymy plik z usługą systemową /etc/systemd/system/cpufreq.service:

[Unit]

Description=cpufreq max freq

[Service]

Type=oneshot

ExecStart=/bin/cpupower frequency-set --governor performance

[Install]

WantedBy=multi-user.target

Następnie:

systemctl enable cpufreq.service 

Zanim zrestartujemy system, musimy w pliku /etc/default/grub znaleźć i dopisać pogrubiony wpis:

GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=0 pcie_aspm=off intel_pstate=disable"

Po czym:

update-grub2; reboot

Po restarcie sprawdzamy:

cpupower frequency-info

Wynik jak niżej:

analyzing CPU 3:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 3

  CPUs which need to have their frequency coordinated by software: 3

  maximum transition latency: 10.0 us

  hardware limits: 800 MHz - 2.70 GHz

  available frequency steps:  2.70 GHz, 2.70 GHz, 2.60 GHz, 2.40 GHz, 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.90 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 900 MHz, 800 MHz

  available cpufreq governors: performance schedutil

  current policy: frequency should be within 800 MHz and 2.70 GHz.

                  The governor "performance" may decide which speed to use

                  within this range.

  current CPU frequency: 2.70 GHz (asserted by call to hardware)

  boost state support:

    Supported: yes

    Active: yes

Oraz cat /proc/cpuinfo | grep MHz:

cpu MHz         : 2700.001

cpu MHz         : 2700.000

cpu MHz         : 2700.119

cpu MHz         : 2700.277

Odchyły mogą wystąpić, procesor czasami zejdzie poniżej 1000MHz ale generalnie trzyma się wysoko. Taktowanie, temperatury itd najwygodniej sprawdza mi się programem htop.


niedziela, 21 grudnia 2025

Instalacja i konfiguracja Lyrion Music Server na przykładzie Debiana

Całkiem przez przypadek znalazłem ostatnio Lyrion Music Server. Jest to serwer muzyki z masą różnych opcji i dodatków. Okazało się, że instalacja jest cholernie prosta, soft bardzo użyteczny a i jak ktoś ma stary sprzęt grający (tudzież wzmacniacz, głośniki, cokolwiek innego) to wystarczy zainwestować np w jakiś mały komputerek (terminal, mini pc, raspberry pi, cokolwiek podobnego) i mamy na czym słuchać :D

https://lyrion.org/

Poza instalacją Debiana wystarczy zainstalować paczkę deb z powyższej strony (najlepiej z wykorzystaniem gdebi to i dociągnie zależności) oraz dodatkowo wymagany będzie poniższy odtwarzacz:

https://packages.debian.org/trixie/squeezelite

Dla stable instalujemy...:

apt install squeezelite

Pakiet w repo dostępny jest od wydania Debiana Bullseye do Unstable (na 22.12.2025).

Jako że docelowo chciałem mieć możliwość odtwarzania muzyki zgranej z płyt do katalogu domowego docelowego użyszkodnika, to musiałem trochę pokombinować. Serwer tworzy użytkownika squeezeboxserver, więc testowo dodałem go do następujących grup:

gpasswd -a squeezeboxserver users

gpasswd -a squeezeboxserver uzyszkodnik

Uprawnienia dla katalogu domowego:

chmod -R 755 /home/uzyszkodnik

Pozwoli nam to na dostęp do muzyki. Dla list odtwarzania zrobiłem osobny katalog m3u i dla niego inne uprawnienia:

chmod -R 777 /home/uzyszkodnik/m3u

Dodatkowo, w opcjach serwera:


No i to by było na tyle. Reszta konfiguracji odbywa się poprzez panel administracyjny. Dostęp można zahasłować - panel Zaawansowane i Zabezpieczenia.



Konfiguracja transmission-daemon na przykładzie Debiana Stable

Kilka tygodni temu potrzebowałem skonfigurować klienta Transmission w trybie systemowej usługi (tzw demona). Oto bardzo krótki poradnik na przykładzie Debiana Stable (wersja 13 w momencie pisania). U mnie usługa działa na użytkowniku na którym docelowo operuję.

Najpierw instalujemy:

apt install transmission-cli transmission-common transmission-daemon

Usługa po wystartowaniu ładuje sobie konfig i w trakcie wyłączania np systemu nadpisuje wcześniej zapamiętaną konfigurację. Niweluje nam to wprowadzone w między czasie zmiany także jeżeli po powyższej instalacji, o ile usługa sama z siebie wystartuje, wyłączamy:

systemctl stop transmission-daemon.service

Następnie musimy utworzyć następujący plik (katalog, jeśli nie istniejemy, również należy utworzyć)...:

nano /etc/systemd/system/transmission-daemon.service.d/user.conf

... o następującej zawartości:

[Service]

User=

User=xxx

Group=xxx

Naszego użytkownika, w omawianym przypadku xxx, dodajemy do odpowiedniej grupy:
gpasswd -a xxx debian-transmission
W katalogu domowym tworzymy katalog:
mkdir .config/transmission-daemon
I z katalogu plik z ustawieniami:
cp /etc/transmission-daemon/settings.json .config/transmission-daemon/
Zawartość /etc/transmission-daemon profilaktycznie usuwamy (z poziomu roota):
rm -R /etc/transmission-daemon/*
W pliku konfiguracyjnym .config/transmission-daemon/settings.json znajdujemy i zmieniamy następujące linie tak, żeby ściągnięte materiały były np w naszym katalogu domowym:
    "download-dir": "/home/xxx/Pobrane",
    "incomplete-dir": "/home/xxx/Pobrane",
Hasło znajduje się w poniższej linijce...:
    "rpc-password": "jakies-haslo",
Hasło wpisujemy jakie chcemy, transmission-daemon na swój sposób je przetworzy dając wynik w - na pozór - losowych znakach w pliku wyżej (zakładam, że dlatego wczytuje i nadpisuje konfigurację uniemożliwiając dokonanie zmian w trakcie działania).

Teraz wykonujemy z poziomu roota następujące dwie komendy:
systemctl daemon-reload ; systemctl start transmission-daemon.service
I to by było na tyle. Pisane z pamięci, mam nadzieję że się nie pomyliłem gdzieś po drodze :D

niedziela, 14 września 2025

Server VNC z poziomu ekranu logowania - GNU/Linux Debian

Od jakiegoś czasu zachodziła potrzeba uruchomienia serwera vnc na kilku maszynach. Nie zawsze jest czas żeby biegać od ekranu do ekranu, nawet jeżeli są to jednostki do testów itp.


Naskrobałem (no dobra, podobne rozwiązanie można znaleźć...) usługę systemową (unit w systemd pod Debianem 13). Tworzymy plik /etc/systemd/system/x11vnc.service o następującej zawartości:


[Unit]

Description=x11vnc

After=display-manager.service network.target syslog.target

 

[Service]

Type=forking

ExecStart=/usr/bin/x11vnc -forever -display :0 -auth guess -rfbauth plik.z.haslem

ExecStop=/usr/bin/killall x11vnc

Restart=on-failure

 

[Install]

WantedBy=multi-user.target


Tworzymy plik.z.haslem (najwygodniej w katalogu /etc lub ewentualnie /opt):


x11vnc -storepasswd haslo plik.z.haslem


Następnie, oczywiście z uprawnieniami roota:


systemctl daemon-reload

systemctl enable x11vnc.service

systemctl start x11vnc.service

 

I to było na tyle.

poniedziałek, 12 maja 2025

iwlwifi - wyłączenie trybu oszczędzania energii powersave

 Cześć!


Pokrótce. Na wifi6 Intela (AX200) sieć po dłuższym czasie zaczynała "ścinać" i pracować niestabilnie. Pomagało rozłączenie i połączenie na nowo.

Szczegóły znajdują się w tym (wątku)

Używam Network Managera i u mnie zadziałały dwie metody.


Pierwsza metoda jest dla NM. Robimy taki skrypcik (nazwa i zapis w pliku *.sh dowolnie):

wifi=`nmcli connection show --active | grep wifi | awk '{print $1}'`

sudo nmcli connection modify $wifi 802-11-wireless.powersave disable

Niestety składnia wiersza poleceń nmcli wymusza każdorazowe wykonanie skryptu po zmianie sieci więc trzeba zrobić to manualnie. Można wrzucić to też do cron'a lub napisać własną usługę żeby skrypt sprawdzał (w dodatkowej linijce) czy powersave jest włączony, jeśli tak to go wyłączamy jak wyżej i to wszystko.


Druga metoda jest bardziej pewna bo powersave jest wyłączony na poziomie "kernela" i jest to zrobione w trakcie uruchamiania się systemu. W swoim bootloaderze dopisujemy takie cudo jako opcję kernela:

iwlwifi.power_save=0

Dla gruba domyślnie będzie to plik /etc/default/grub i następująca linijka:

GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=0"


Trzecią metodą, której nie sprawdzałem ale powinna zadziałać, jest utworzenie pliku /etc/modprobe.d/iwlwifi.conf z poniższą zawartością:

options iwlwifi power_save=0

I tyle.

czwartek, 18 kwietnia 2024

Przykładowy .asoundrc

$ aplay -l

**** List of PLAYBACK Hardware Devices ****

card 0: Generic_1 [HD-Audio Generic], device 3: HDMI 0 [SAMSUNG]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Generic_1 [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Generic_1 [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Generic_1 [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 3: Device [USB Audio Device], device 0: USB Audio [USB Audio]

  Subdevices: 1/1

  Subdevice #0: subdevice #0


Dla karty pierwszej od góry plik wygląda tak: 

defaults.pcm.card 0

defaults.pcm.device 3

defaults.ctl.card 1


środa, 6 marca 2024

command not found po zalogowaniu się na root'a (via su)

W Debianie 10 wprowadzili małą zmianę w poleceniu su która polega na dostarczeniu (lub nie) zmiennych dotyczących m. in. dostępu do programów tylko dla root'a. Traf chciał że odkryłem to dopiero po 4 latach na Debianie 12 (wcześniej korzystałem przez kilka lat z Ubuntu LTS). Owa zmiana objawiała się jak na zrzucie:


Sprawdziłem zmienne i oto rezultat:


Na wiki Debiana jest taki wpis, w którym napisane jest:

The su command in buster is provided by the util-linux source package, instead of the shadow source package, and no longer alters the PATH variable by default. This means that after doing su, your PATH may not contain directories like /sbin, and many system administration commands will fail. There are several workarounds:

Use su - instead; this launches a login shell, which forces PATH to be changed, but also changes everything else including the working directory.

Use sudo instead. sudo still runs commands with an altered PATH variable.

To get a regular root shell with the correct PATH, you may use sudo -s.

To get a login shell as root (equivalent to su -), you may use sudo -i.

Put ALWAYS_SET_PATH yes in /etc/default/su (create it) to get an approximation of the old behavior. This is documented in su(1).

Put the system administration directories (/sbin, /usr/sbin, /usr/local/sbin) in your regular account's PATH (see EnvironmentVariables for help with this).

Wykorzystałem więc przedostatnią metodę:

/etc/default/su:
ALWAYS_SET_PATH yes

I Problem rozwiązany :D

Podziękowania dla Forumowiczów z dug.net.pl którzy dali namiar na rozwiązanie problemu :D

niedziela, 18 sierpnia 2019

Autologowanie pod tty -> systemd

Cześć!

Pokrótce, najpierw z prawami root'a w terminalu wykonujemy:
# systemctl edit getty@tty1.service
W tym momencie powinien odpalić się domyślny edytor tekstowy w konsoli. Wklepujemy i zapisujemy:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin user --noclear %I $TERM
Po czym restartujemy system i tyle. To jest dokładnie takie samo rozwiązanie, jakie proponuje wiki Archa.

Należy pamiętać o zainstalowaniu xinit w celu odpalenia GUI.

Autologowanie pod tty -> sysvinit

Cześć!

W /etc/inittab zmieniamy:
1:2345:respawn:/sbin/getty 38400 tty1
na:
 1:2345:respawn:/bin/login -f login tty1 </dev/tty1 >/dev/tty1 2>&1
Należy pamiętać o zainstalowaniu xinit w celu odpalenia GUI.

środa, 19 grudnia 2018

vsftpd

vsftpd (Very Secure FTP Daemon) jest chyba najprostszym serwerem FTP, jakiego kiedykolwiek miałem okazję używać. Jest dostępny na większości systemów uniksopodobnych. Poniżej przykładowy konfig:

/etc/vsftpd.conf
listen=YES
ftp_data_port=1025
listen_port=1026
allow_writeable_chroot=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
max_clients=5
max_per_ip=500
chroot_local_user=YES
pasv_min_port=1025
pasv_max_port=1025
/etc/vsftpd.conf
listen=YES
ftp_data_port=1026
listen_port=1026
allow_writeable_chroot=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
max_clients=5
max_per_ip=500
chroot_local_user=YES
pasv_min_port=0
pasv_max_port=0
Linki:
wiki
man page

środa, 10 października 2018

90 sekund w systemd

systemd w domyślnej konfiguracji czasami potrzebuje 90 sekund (1 minuta, 30 sekund) w celu zatrzymania jakiegoś tam zadania. Żeby czas ten skrócić należy w poniższym pliku odhaszować następujące dwie linie i wprowadzić odpowiednie zmiany. U mnie będzie to 10 sekund.

/etc/systemd/system.conf:

DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s

sobota, 27 stycznia 2018

Instalacja Steam i World of Tanks Blitz pod Linuxem na przykładzie Debiana

1. Wstęp

World of Tanks Blitz to lżejsza wersja World of Tanks. Jest to wersja przenośna umożliwiająca jednocześnie rozgrywkę między różnymi systemami (Windows, Android, Iphone, Mac OS). Niestety, nie ma wersji natywnej na Linuxa.

2. Do dzieła!

Zanim zainstalujemy potrzebne pakiety, musimy dodać obsługę multiarch w naszym systemie. U mnie będzie to:
# dpkg --add-architecture i386
# aptitude update

Następnie instalujemy:
$ dpkg -l | grep -e wine -e mscore -e winbind -e steam | awk '{print $2}'
fonts-wine
libnss-winbind:amd64
libwbclient0:amd64
libwine:amd64
libwine:i386
steam:i386
ttf-mscorefonts-installer
winbind
wine
wine-binfmt
wine32:i386
wine64
winetricks

Odpalamy winecfg i jako ustawienia domyślne wybieramy Windows XP:


Ściągamy windowsowego steama z oficjalnej strony i instalujemy. No i mamy połowę sukcesu, teraz zostało tylko uruchomić windowsego steama z poprawnymi parametrami:

wine "/home/logan/.wine/drive_c/Program Files (x86)/Steam/Steam.exe" -no-cef-sandbox
Jest to niezbędne do poprawnego uruchomienia windowsowego steama, który w domyślnej konfiguracji ma w zasadzie dwa problemy:
- czcionki, stąd ttf-mscorefonts-installer przy instalacji paczek
- czarny ekran przy uruchomieniu, stąd -no-cef-sandbox

3. No i tyle.

Logujemy się teraz na swoje konto Steam i pobieramy ze sklepu World of Tanks Blitz. Podczas pierwszej rozgrywki ustawiłem testowo detale na niskie, ale że gra jest dość lekka i obciążenie maszyny jest znikome, to ustawienia można spokojnie zwiększyć.


piątek, 31 stycznia 2014

sed - polskie znaki w plikach tekstowych

Ostatnio szukałem dobrego sposobu, którym mógłbym pozmieniać polskie litery w plikach tekstowych* na litery z alfabetu na łacińskiego**. Poniżej sposób:
sed 's/ą/a/g' `find | grep .txt` -i;
sed 's/ę/e/g' `find | grep .txt` -i;
sed 's/ż/z/g' `find | grep .txt` -i;
sed 's/ź/z/g' `find | grep .txt` -i;
sed 's/ł/l/g' `find | grep .txt` -i;
sed 's/ó/o/g' `find | grep .txt` -i;
sed 's/ą/a/g' `find | grep .txt` -i;
sed 's/ś/s/g' `find | grep .txt` -i;
sed 's/ć/c/g' `find | grep .txt` -i;
sed 's/ń/n/g' `find | grep .txt` -i;
sed 's/Ą/A/g' `find | grep .txt` -i;
sed 's/Ę/E/g' `find | grep .txt` -i;
sed 's/Ż/Z/g' `find | grep .txt` -i;
sed 's/Ź/Z/g' `find | grep .txt` -i;
sed 's/Ł/L/g' `find | grep .txt` -i;
sed 's/Ó/O/g' `find | grep .txt` -i;
sed 's/Ą/A/g' `find | grep .txt` -i;
sed 's/Ś/S/g' `find | grep .txt` -i;
O ile składni seda sam do końca nie znam, o tyle to...:
`find | grep .txt`
... odpowiada za znalezienie wszystkich plików w bieżącym katalogu (find) i wypisanie tylko tych o rozszerzeniu *.txt (grep .txt).


*: pliki z napisami do filmów o rozszerzeniu *.txt
**: za wikipedią, stan na 2014.01.31

niedziela, 15 grudnia 2013

Drobna konfiguracja systemu bazowego Debiana.

Witam!

No w sumie tutaj miał pojawić się jakiś tam wpis (i to kilka miesięcy temu!) dotyczący mojego sprzętu i Debiana, a że o tym blogu kompletnie zapomniałem.... To wpis pojawił się gdzie indziej.

Zapraszam:
Drobna konfiguracja systemu bazowego Debiana.

W najbliższym czasie powinienem coś nowego opublikować.