Puncte:0

Cum să ștergeți în siguranță un pachet/software care nu a fost instalat prin managerul de pachete

drapel in

Am o veche instalare Ubuntu Linux 20. Am descoperit recent că am o grămadă de software pe care l-am instalat înainte de a începe să folosesc pe deplin gestionarea pachetelor și nu-mi amintesc detaliile instalărilor. Am incercat prin apt dar scrie că acele pachete nu sunt instalate.

M-am gândit că aș putea șterge folderele cu software-ul, dar cred că asta ar putea cauza probleme, deoarece unele dintre programe se lansează la pornire și nu găsesc unde exact este configurat.

Am găsit următoarele procese „redundante”/necunoscute:

  • elasticsearch, „/usr/share/elasticsearch/jdk/bin/java” de la utilizator mesajbu (Ne pare rău, numele pare a fi tăiat)
  • „/usr/bin/mono /usr/lib/hyperfastcgi/4.0/...” de la utilizator syslog
  • mysqld de la utilizator systemd-c
  • „/usr/bin/mono /usr/lib/mono/4.5/mono-service.exe” de la utilizator syslog

Deci, de fapt, am trei întrebări:

  1. Este sigur să ștergeți folderul cu binare pentru acest software și toate celelalte lucruri?
  2. Cum pot identifica, unde este configurat pentru a fi pornit la pornire?
  3. Ce altceva ar trebui să știu/să fac pentru a-l șterge în siguranță?

Mulțumiri!

Michael avatar
drapel sa
Vreau să încurajez votarea acestei întrebări. Aceasta este o situație foarte comună pentru oamenii care au fost începători și au început să învețe serios administrarea sistemului, dar trebuie să curețe ceea ce au lăsat în urmă. Efectuarea acestei curățări ar trebui încurajată.
Puncte:2
drapel sa

Răspunsul depinde de multe detalii, așa că Bob are dreptate și curățarea va fi dificilă. Este chiar posibil să existe malware pe sistemul dvs. și poate fi foarte dificil să identificați dacă acest lucru este adevărat. Chiar dacă ai noroc și ai grijă, este foarte probabil că ceva rămâne pe sistemul dvs., care nu ar trebui să fie acolo și acesta ar putea fi un risc de securitate, de exemplu dacă lăsați o versiune veche a unei biblioteci care nu este actualizată atunci când este necesar.

Modul sigur de a face față acestui lucru este să faci a proaspăt instalat de la zero iar de atunci înainte mereu utilizați un manager de pachete pentru toate instalările de software. Dacă aveți un sistem pe care l-ați învățat ca nou administrator, oricum nu este un lucru rău de făcut ocazional. Pe măsură ce faceți noua instalare, puteți automatiza o parte din lucru, astfel încât data viitoare totul să meargă mai repede.

Faceți o copie de rezervă completă a sistemului pe un disc offline, precum și o copie separată a propriilor date înainte de a face acest lucru, desigur. În acest fel, dacă ceva nu merge bine, veți putea reveni la starea de funcționare.

Puncte:2
drapel cn
Bob

Este sigur să ștergeți folderul cu binar pentru acest proces și pentru toate celelalte lucruri?

Da. Nu. Poate.

Depinde cu adevărat de modul în care vânzătorul a intenționat ca o aplicație să fie implementată și de ce a făcut un administrator când a instalat-o.

Unele aplicații (și toate dependențele lor) sunt într-adevăr implementate în propriul lor subdirector, care poate fi un singur director plat sau un subdirector mare, imitând adesea sistemul de fișiere rădăcină Linux convențional, de ex. cu un etc subdirectorul care conține fișiere de configurare, [s]bin pentru binare, a var subdirectorul care conține date etc etc.

Dacă nu ați implementat alte aplicații în același subdirector; ștergerea care va elimina complet aplicația.

Posibil ați ajustat configurația aplicației. Ajustările destul de tipice de făcut sunt schimbarea datelor persistente și a directoarelor de înregistrare în altă parte a sistemului dumneavoastră.

Cum pot identifica, unde este configurat pentru a fi pornit la pornire?

Destul de tipic de văzut sunt serviciile/procesele daemon pornite de systemd ca în exemplul de mai jos. În acest caz starea systemctl ar trebui să listeze fișierele unității și toate procesele începute de acestea și systemctl -a și alte comutatoare pot fi și ele utile.

Un instrument ca pstree poate fi destul de util pentru a vizualiza relațiile dintre părinți și copii și pentru a vedea ce proces a început. Când este folosit numai systemd, aceasta va da rezultate foarte asemănătoare cu starea systemctl dar atunci când sunt folosite alte mecanisme, acest lucru vă va oferi de obicei o perspectivă.

Apoi, există câteva metode mai „obscure”, de exemplu unora le place să folosească @reboot specificația cron timestamp pentru a avea servicii cron (re)pornire după o repornire.

pstree -a

systemd --switched-root --system --deserialize 22
  ââ/usr/bin/spamd
  â ââspamd copil
  â ââspamd copil
  ââagetty --noclear tty1 linux
  ââatd -f
  ââauditd
  â ââ{auditd}
  ââcronidă
  ââcrond -n
  ââdbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  â ââ{dbus-daemon}
  ââdhclient -1 -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H server eth0
  ââporumbar
  â âânicovala
  â ââauth
  â ââconfig
  â ââimap
  â ââimap-login
  â ââlog
  ââfail2ban-server -s /usr/bin/fail2ban-server -xf start
  â ââ8*[{fail2ban-server}]
  ââfirewalld -Es /usr/sbin/firewalld --nofork --nopid
  â ââ{firewalld}
  ââhttpd -DFORGROUND
  â ââhttpd -DFORGROUND
  â ââhttpd -DFORGROUND
  â âârotatelogs -l /var/log/httpd/error_log.%Y.%m 86400
  â âârotatelogs -l /var/log/httpd/access_log.%Y.%m 86400
  ââmaster -w
  â âânicovala -l -t unix -u
  â ââpickup -l -t unix -u
  â ââproxymap -t unix -u
  â ââqmgr -l -t unix -u
  â ââsmtpd -n smtp -t inet -u -o stress= -s 2
  â ââtlsmgr -l -t unix -u
  ââmms
  â ââ85*[{mms}]

Procesul „master” din acea listă pstree este un bun exemplu. Acest nume ciudat de proces este de fapt postfix, fiind pornit din unitatea systemd postfix.service. Asta ar fi mai ușor de găsit în starea systemctl ieșire:

       ââsistem.slice
         ââpostfix.service
         â ââ 1110 /usr/libexec/postfix/master -w
         â ââ 1112 qmgr -l -t unix -u
         â ââ 1121 tlsmgr -l -t unix -u
         â ââ11508 pickup -l -t unix -u
         ââserviciu.spamas-milter
         â ââ1032 /usr/sbin/spamass-milter -g postfix -p /run/spamass-milter/postfix/sock

Ce altceva ar trebui să știu/să fac pentru a-l șterge în siguranță?

Identificați cum este pornit un serviciu și apoi oprirea acestuia este de obicei o primă abordare bună.

Apoi, obișnuiește-te să nu instalezi lucruri din sursă, ci să folosești manageri de pachete sau, de exemplu, să snap sau să rulezi un container.

Michael avatar
drapel sa
Bob, îmi place răspunsul tău, dar poți să comentezi că, după eliminarea software-ului, @GeraldIstar ar trebui să se uite la jurnalele și mesajele de pornire pentru a vedea dacă există erori și, dacă da, ar trebui să le investigheze. S-ar putea chiar să merite să redenumim directorul cu software-ul și apoi să te uiți la jurnalele pentru a afla ce probleme provoacă și apoi să elimini referințele la software.
Puncte:2
drapel sa

Dacă urmați încercarea de a elimina manual software-ul așa cum este descris în celelalte răspunsuri, merită să aruncați o privire la rezultatul comenzii

sudo dpkg --verify

Care verifică integritatea pachetelor software instalate. Probabil veți găsi un număr mic de fișiere pe sistemul dvs. care au fost modificate - probabil fișiere de configurare pe care le-ați schimbat - și ar trebui să încercați să înțelegeți fiecare dintre acestea și, eventual, să le remediați pe cele care par greșite.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.