DTGaraGe | Автомобили, Офроуд, Заваряване, Linux, AI

Регистрирайте безплатен акаунт днес, за да станете член! След като влезете, ще можете да участвате в този сайт, като добавяте свои собствени теми и публикации, както и да се свързвате с други членове чрез вашата лична пощенска кутия!

N3Xus

root
n3xus@shadow:~$ cat ./bullshit/linux_tips_2026.md | wc -l

Всяка седмица някой публикува списък. "Десет трика за Linux, които не знаеш." Отваряш го и вътре има тайни htop, ncdu и как да смениш цвета на промпта.
Това не са тайни. Това е меню.
Истината е по-неудобна: Linux не крие нищо от теб. Всичко е файл, всичко е четимо, всичко е там от трийсет години. Просто никой не гледа.


> Системата е прозрачна. Непрозрачно е твоето внимание.

Ето четири неща, които са в системата ти точно в момента. Не са трикове. Не изискват инсталация на нищо модерно. Съществуват, откакто съществува ядрото.
И почти никой не ги ползва.
Дискът е пълен, но нищо не го пълни.
Класика. df казва, че си на 100 процента. du обикаля файловата система и не намира нищо. Рестартираш и мястото се връща.
Не е магия. Изтрил си файл, който процес още държи отворен. Ядрото не освобождава блоковете, докато дескрипторът е жив. Файлът е изчезнал от директорията и продължава да заема място.


> lsof +L1

Един ред. Показва всички отворени файлове с нула връзки към файловата система. Там е гигабайтът ти.

И по-хубавото: можеш да го върнеш.
Докато процесът държи дескриптора, файлът е достъпен през /proc. Не изтрит - недостъпен по име. Разликата е съществена.


Code:
$ lsof +L1
COMMAND   PID USER   FD   TYPE  SIZE/OFF NLINK NAME
nginx    1847 www    12w   REG  4831838208     0 /var/log/nginx/access.log (deleted)

$ ls -l /proc/1847/fd/12
l-wx------ 1 root root 64 Sep 14 03:12 /proc/1847/fd/12 -> '/var/log/nginx/access.log (deleted)'

$ cp /proc/1847/fd/12 /tmp/recovered.log
$ wc -l /tmp/recovered.log
19483022 /tmp/recovered.log

Четири и половина гигабайта лог, който за всички е изтрит. Върнат с cp.

Файл, който root не може да изтрие.
Всички знаят chmod. Почти никой не знае chattr.


> chattr +i /etc/resolv.conf

Immutable атрибут. Файлът не може да бъде променен, преименуван, изтрит или свързан. От никого. Включително от root.
Единственият начин е да махнеш атрибута обратно. Тоест атакуващият трябва първо да знае, че съществува.
Проверяваш с lsattr. И ако някога си се чудил защо нещо отказва да се изтрие с Operation not permitted, докато си root - ето ти отговора.

Програми с права, за които не знаеш.
Всички гледат SUID битове. Capabilities са по-фина работа и се пропускат системно.


> getcap -r / 2>/dev/null

Изкарва всеки изпълним файл, на който е дадена отделна привилегия - да отваря сурови сокети, да променя собственост, да чете произволни файлове. Без да е SUID. Без да се вижда в ls.
Пусни го на своята машина и виж какво ще излезе. При повечето хора излизат неща, които не са слагали.

Тайните в паметта на чужд процес.
Ако някой стартира програма с парола в променлива на средата, тя остава там.


> tr '\0' '\n' < /proc/PID/environ

Четимо от собственика на процеса и от root. Показва средата в момента на стартиране, не текущата - но точно там сядат паролите, подадени при пускане.
Ако някога си подал credentials през environment variable, защото е било по-удобно от файл - това е причината да не го правиш пак.


Нито едно от тези неща не е скрито. Няма документация, която да ги пази в тайна. Няма ядро, което да ги заключва.
Те са непознати само защото се научават от повреда, а не от списък с трикове.


Затова и хората, които ги знаят, обикновено са ги открили в четири сутринта, докато нещо гори.
Ако искаш да ги научиш по-евтино - започни с това да гледаш какво има в системата ти, вместо да чакаш следващия списък.


n3xus@shadow:~$ ^C
 
Top Bottom
🛡️ Този сайт използва аналитични инструменти за подобряване на потребителското изживяване. Никакви лични данни не се събират. С продължаването си в Потока приемаш тази философия на прозрачност и уважение.