es
Feedback
GNU/Linux | Notes

GNU/Linux | Notes

Ir al canal en Telegram

Open Source, GNU/Linux, Debian/Ubuntu, Dotfiles, Software, Scripts, Notes, Terminal, Shell, Tools, Games, Fun, Misc, Music, Geek, Free Software Movement. Почта: krekhov.dev@gmail.com Кто я: https://t.me/krxnotes/246 GitHub: https://github.com/krekhovx

Mostrar más
2 280
Suscriptores
-124 horas
-17 días
-1230 días
Archivo de publicaciones
In Memory of Ian Murdock Иэн Мердок ушел из жизни в 2015 году в возрасте 42 лет. После его смерти проектом Debian продолжает
In Memory of Ian Murdock Иэн Мердок ушел из жизни в 2015 году в возрасте 42 лет. После его смерти проектом Debian продолжает управлять сообщество разработчиков. В Debian нет постоянного единоличного лидера, вместо этого ежегодно избирается Debian Project Leader (DPL). DPL координирует работу проекта, представляет его перед внешними организациями, управляет финансами и ресурсами, а также поддерживает коммуникацию внутри сообщества. DPL выполняет роль координатора и представителя, принимая решения на основе консенсуса и сотрудничества. Debian скорбит о смерти Иэна: https://bits.debian.org/2015/12/mourning-ian-murdock-ru.html ——— @krxnotes

Aptitude - это текстовый интерфейс для управления пакетами в Debian. Мейнтейнеры используют его для: 1. Установки и удаления
Aptitude - это текстовый интерфейс для управления пакетами в Debian. Мейнтейнеры используют его для: 1. Установки и удаления пакетов. 2. Обновления системы. 3. Управления зависимостями. 4. Поиска и просмотра информации о пакетах. 5. Удобного интерактивного управления пакетами. Он помогает эффективно поддерживать систему в актуальном состоянии. Например, в моем ~/.bashrc прописан алиас для удобства:
alias a='sudo aptitude'
Ссылка на исходный код aptitude: https://salsa.debian.org/apt-team/aptitude ——— @krxnotes

Debra + Ian Debian - это операционная система с открытым исходным кодом, основанная на ядре Linux. Она была создана Иэном Мер
Debra + Ian Debian - это операционная система с открытым исходным кодом, основанная на ядре Linux. Она была создана Иэном Мердоком (Ian Murdock) в 1993 году. Название Debian произошло от комбинации имен Иэна Мердока и его тогдашней подруги (впоследствии жены) Дебры Линн (Debra Lynn). Deb + Ian, получилось Debian. Иэн Мердок родился в 1973 году и окончил Университет Пердью в 1996 году. Он был не только создателем Debian, но и активным участником в развитии свободного программного обеспечения. Иэн написал Debian Manifesto, в котором изложил видение и цели проекта. Его работа повлияла на многие аспекты развития свободного программного обеспечения и открытых стандартов. Debian известен своей приверженностью к свободному программному обеспечению, а также своим демократическим процессом разработки, в котором участвуют тысячи добровольцев по всему миру. ——— @krxnotes

Сколько людей трудится над Debian ? Точное количество людей, работающих над Debian, может варьироваться, так как проект являе
Сколько людей трудится над Debian ? Точное количество людей, работающих над Debian, может варьироваться, так как проект является полностью открытым и добровольным. В Debian участвуют как официальные разработчики, так и множество добровольцев со всего мира. По состоянию на 2023 год, в проекте участвует более 1000 официальных разработчиков, но если учитывать всех участников, включая тех, кто вносит свой вклад в виде пакетов, документации, тестирования и поддержки, то общее количество людей может быть значительно выше. Для того чтобы начать делать вклад в Debian необязательно быть каким-то гением программирования, можно начать с простого, например, делать вклад в документацию, переводы, тестирование или пакеты. Кстати, про пакеты: в Debian насчитывается около 30.000 пакетов. Это очень круто 🥳 ——— @krxnotes

Откуда ноги растут Возможно, вам будет интересно узнать, откуда я беру информацию/идеи для постов. Ссылка на репозиторий с моими многочисленными Linux заметками: https://github.com/iikrllx/notes Там хранятся текстовые файлы, которые я составляю многие годы. Мне лень постоянно обращаться к документации/мануалам, поэтому я делаю короткие записи в этом репозитории (на будущее). Информация в файлах взята из книг/статей/документаций, либо я что-то исследовал и решил это записать. Данный канал является более упрощенной и красивой версией этих заметок =) Буду рад если вы поддержите репозиторий ⭐️ звездой. Спасибо. ——— @krxnotes

Создание временного файла или директории (mktemp) Раньше для создания временного файла я писал:
t=$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c 8)
touch "/tmp/$t"
Узнал, что существует mktemp. Например, создание временного файла:
tmpdir=$(mktemp)
Появится файл: /tmp/tmp.iFRIpUv0xt После работы с файлом не забудьте его удалить. Создать временную директорию:
tmpdir=$(mktemp -d)
Появится директория: /tmp/tmp.MUsZJ1cc0C После работы с директорией не забудьте ее удалить. ——— @krxnotes

Получить информацию о пользователе (getent passwd). Получить информацию 1000 uid:
$ getent passwd 1000
kory:x:1000:1000:kory,,,:/home/kory:/bin/bash Получить только имя пользователя 1000 uid:
$ getent passwd 1000 | cut -d ':' -f1
kory Получить имена пользователей от 1000 до 2000 uid:
$ getent passwd {1000..2000} | cut -d: -f1
kory resu gvan ——— @krxnotes

Удаленное исполнение скрипта/команд по SSH (способы). 1. Исполнить команды на удаленном сервере:
$ ssh <user>@<ip> 'команда1; команда2; команда3'
2. Исполнить скрипт на удаленном сервере:
$ ssh <user>@<ip> bash -s < script.sh
Осуществляется перенаправление сценария script.sh с машины А на машину Б через сокет. bash -s считывает из стандартного ввода. 3. Исполнить скрипт на удаленном сервере:
$ scp script.sh <user>@<ip>:/path/to/destination/
$ ssh <user>@<ip> 'bash /path/to/destination/script.sh'
——— @krxnotes

dirname и basename. Удалить последний компонент из имени файла:
$ dirname /usr/local/bin/file
/usr/local/bin Удалить каталог и суффикс из имени файла:
$ basename /usr/local/bin/file
file ——— @krxnotes

——— @krxnotes
——— @krxnotes

Теперь все понятно =) ——— @krxnotes
Теперь все понятно =) ——— @krxnotes

Как устроена память в Linux и как эффективно с ней работать. Отличный урок, рекомендую, сам узнал много полезного, и главное все можно на практике попробовать, а не сухая теория. Ссылка: https://www.youtube.com/watch?v=gSsChHMjugs ——— @krxnotes

Distrowatch - это сайт, который предоставляет информацию о различных дистрибутивах Linux и других Unix подобных операционных
Distrowatch - это сайт, который предоставляет информацию о различных дистрибутивах Linux и других Unix подобных операционных системах, включая обзоры, рейтинги, новости, ссылки на загрузку и сообщества поддержки. Он помогает пользователям выбирать и сравнивать дистрибутивы, оставаться в курсе обновлений и получать доступ к ресурсам для изучения и экспериментов с Linux. Например, за последние 6 месяцев был очень популярен дистрибутив MX Linux. Чем больше посетителей просматривают страницу конкретного дистрибутива, тем выше его рейтинг по популярности. Таким образом, этот рейтинг может помочь пользователям оценить, какие дистрибутивы вызывают наибольший интерес в сообществе. Ссылка: distrowatch.com/ ——— @krxnotes

Полезный ресурс для инженеров, интересующихся кибербезопасностью и хакерством. Описание проекта: A collection of hacking tools, resources and references to practice ethical hacking. Ссылка: https://github.com/sundowndev/hacker-roadmap ——— @krxnotes

Последовательность изучения материала (roadmap). Я не очень положительно отношусь к таким схемам изучения материала, на мой в
Последовательность изучения материала (roadmap). Я не очень положительно отношусь к таким схемам изучения материала, на мой взгляд они очень обширные (можно утонуть), давит объем информации (ведь ты разработчик - должен знать все в мире). Может вы не обращайте на это внимание и данный репозиторий будет вам полезен, он довольно популярен, часто обновляется и можно использовать как шпаргалку. Там для каждого найдется полезная информация, не только для разработчиков. Ссылка: https://github.com/kamranahmedse/developer-roadmap Например, вот Linux Roadmap довольно понятный, ничего лишнего. ——— @krxnotes

Язык программирования Си. Брайан Керниган, Деннис Ритчи (3 издание). Данная классика обязана быть здесь. Вдруг еще остались люди, которые не читали. ——— @krxnotes

Immutable files (extended attributes - lsattr, chattr). Например, необходимо ограничить доступ к файлу (запрет удаления, переименования). Можно добавить биты с помощью chmod и chown, но это не идеальное решение, root все же будет иметь полный доступ к файлу. С помощью chattr можно устанавливать и отключать атрибуты файлов на уровне ФС, независимо от стандартных чтение, запись, выполнение. Такие трюки поддерживают ФС семейства ext (ext2, ext3, ext4), NFS не поддерживает immutable files. Символы '+', '-', '=' - работают аналогично chmod команде.
$ touch <file>
$ lsattr <file>
--------------e------- <file> Флаг 'e' в выводе команды lsattr показывает, что файл имеет установленный атрибут "extended attributes" (дополнительные атрибуты). Это означает, что можно использовать команду chattr для добавления или изменения дополнительных атрибутов для этого файла.
$ chattr =i <file>
<file>: Operation not permitted Можно воспользоваться:
$ sudo chattr =i <file>
или Трюк с привилегией CAP_LINUX_IMMUTABLE:
$ sudo setcap cap_linux_immutable+ep /usr/bin/chattr
$ chattr =i <file>
$ rm <file>
rm: cannot remove '<file>': Operation not permitted
$ sudo rm <file>
rm: cannot remove '<file>': Operation not permitted
$ mv <file> new-name
mv: cannot move '<file>' to 'new-name': Operation not permitted
$ sudo mv <file> new-name
mv: cannot move '<file>' to 'new-name': Operation not permitted
$ sudo setcap -r /usr/bin/chattr
Получился неизменяемый файл. ——— @krxnotes

Что такое монолитное ядро ? Монолитное ядро - это архитектура операционной системы, при которой ядро системы является единым
Что такое монолитное ядро ? Монолитное ядро - это архитектура операционной системы, при которой ядро системы является единым целым и работает в одном адресном пространстве. Все основные компоненты системы, такие как драйверы устройств, файловая система, управление памятью и прочее, интегрированы непосредственно в ядро и выполняются в режиме ядра, то есть с максимальными привилегиями. Это противоположно микроядерной архитектуре, где эти компоненты выполняются отдельно как пользовательские процессы. Примерами операционных систем с монолитным ядром являются: Linux, Windows и macOS. ——— @krxnotes

Разница между терминалом и консолью. Что такое эмуляторы терминала. Меня немного коробит когда терминал называют консолью, контекст: "Попробуй эти команды в консоли" (хотя на самом деле имеют в виду терминал), это совсем разные вещи, а если быть еще правильнее, то не терминал, а эмулятор терминала. Эмуляторы терминала, такие как GNOME Terminal, Konsole, xfce4-terminal, Terminator и многие другие, имитируют функциональность физических терминалов, обеспечивая удобный доступ к командной строке в графической среде. В прошлом это были физические устройства (терминалы) с экраном и клавиатурой, подключенные к мейнфрейму. Сейчас, в современных операционных системах, мы используем программные эмуляторы терминалов. Для работы с консолью GUI не нужен. Консоль предоставляет низкоуровневый интерфейс для взаимодействия с системой, особенно полезный в случаях, когда графическая оболочка не работает из-за проблем с драйверами видеокарты или других сбоев. Терминал же был создан для того, чтобы было возможно использовать консольные утилиты в графической среде. Эмуляторы терминалов позволяют запускать интерактивные оболочки в GUI. Терминал возвращает /dev/pts/<n> – псевдотерминальное устройство. Консоль возвращает /dev/tty/<n> – представляет собой физический или виртуальный терминал на уровне ядра. Можно отправить что-либо с ввода в вывод другого терминала, это весело:
$ echo "Hello" > /dev/pts/0
——— @krxnotes

Разница между /etc/passwd и /etc/shadow файлами. Этот вопрос часто задают на позицию системного администратора Linux =) /etc/passwd хранит информацию о пользователях. /etc/shadow хранит информацию, необходимую для аутентификации пользователей при входе в систему. В отличие от /etc/passwd, файл /etc/shadow доступен только для чтения суперпользователю (root), чтобы обеспечить безопасность хранения паролей. На моей Debian системе:
/etc/passwd -> 0644/-rw-r--r--
/etc/shadow -> 0640/-rw-r-----
Когда создаются новые группы и пользователи, файлы /etc/passwd, /etc/group, /etc/shadow изменяются. Обычные пользователи начинаются с 1000, а с UID 1-499 или 1-999 это псевдопользователи и они выполняют системные службы (от их лица), у них нет оболочки (nologin). А у обычных пользователей есть (обычно это bash). Если в /etc/passwd вместо x поставить hash сумму из /etc/shadow пароль подойдет, и все будет работать без ошибок, например:
user1:$y$j9T$ICRkTA/TqMwVPxvGJUJ9Y1$A4spI3g11fRL0mqUB34tmzILUCCVSMoagET3cFjcQhD:1002:1002:,,,:/home/user1:/bin/bash
Если убрать x в /etc/passwd у конкретного пользователя, тогда пользователь будет без пароля (не будет установлен пароль). Это позволяет пользователю user1 входить в систему без ввода пароля, например:
user1::/home/user:/bin/bash
Раньше хеш-пароля хранился в /etc/passwd, но его решили убрать в отдельный файл /etc/shadow, потому что /etc/passwd доступен на чтение всем, а /etc/shadow может читать только root (из соображений безопасности). ——— @krxnotes

GNU/Linux | Notes - Estadísticas y analítica del canal de Telegram @krxnotes