ś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

piątek, 16 lutego 2024

Wylistowanie jednej kolumny z wyniku w konsoli

 Cześć!

Wynikiem polecenia...:

dpkg -l 

... są dane usytuowane w 5 kolumnach. Kiedyś, w Debianie i debiano-pochodnych popularny był tzw multiarch czyli mieszanie architektur systemu np amd64 z i386. Była to przydatna funkcja przy np wine albo przy steamie. Multiarch jest domyślnie wykorzystywany w np Ubuntu. Ale przy Debianie, chcąc jednak pozbyć się paczek spod i386 (bo np nie korzystamy już ze steama) musielibyśmy wylistować te paczki:

dpkg -l | grep i386 | awk '{print $2}'

Wrzucić w:

aptitude purge `dpkg -l | grep i386 | awk '{print $2}'`

I to w zupełności wystarczy.