🐧 Linux Junior. Программирование под Linux.
3.19K subscribers
171 photos
2 videos
1 file
102 links
Канал для программистов работающих с Linux.
Почти все Python девелоперы с нами ну и другие тоже подтянутся.

По рекламе: @jannytg
@anothertechrock
Download Telegram
👩‍💻 Полезные опции команды curl

Команда curl — одна из самых мощных и часто используемых утилит в Linux. Она предназначена для отправки запросов по различным интернет-протоколам (HTTP, HTTPS, FTP и др.) прямо из терминала.

В большинстве дистрибутивов curl уже предустановлен.

⚙️ Примеры использования

Указание времени выполнения команды
Некоторые операции выполняются бесконечно, что может привести к зависанию системы. Чтобы прервать выполнение команды cURL по истечении определенного времени, можно установить таймер (время указывается в секундах):

$ curl -m 60 example.com


Также есть возможность указать, в течении какого времени держать соединение активным. Это позволит избежать бесконечных попыток соединения с недоступным узлом.

Эта опция тоже в качестве аргумента принимает значение в секундах. А команда выглядит так:

$ curl --connect-timeout 60 example.com


Указание логина и пароля
Утилита cURL позволяет указывать имя пользователя и пароль при подключении. Чаще всего это нужно при аутентификации на FTP-сервере. Для этого используется ключ -u.

$ curl -u username:password ftp://example.com


Данную опцию можно использовать с любым протоколом, но FTP является самым распространённым для простой передачи файлов.

Если нужно скачать файл, запускаем ту же команду, только указываем полный путь к нужному документу:

$ curl -u username:password ftp://example.com/readme.txt


Использование прокси
cURL можно указать, чтобы подключение выполнялось через прокси-сервер. По умолчанию curl использует HTTP-прокси, но можно указать и другие. Чтобы направить трафик через прокси, используется ключ -x.

$ curl -x 192.168.1.1:8080 https://example.com


Данная команда обязует cURL подключиться к прокси по адресу 192.168.1.1 на порту 8080 перед обращением на example.com

Прокси можно использовать и с другими протоколами. Ниже показан пример использования прокси-сервера для получения файла с FTP-сервера.

$ curl -x 192.168.1.1:8080 ftp://example.com/readme.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥2
🔥 Расширенные права доступа (ACL) в Linux

Обычная модель прав в Linux проста: есть владелец, группа и все остальные. Для большинства случаев этого хватает, но не всегда.

А что если нужно, чтобы user1 и user2 имели разные права к одному и тому же файлу? Или чтобы у определённого пользователя был доступ только к подкаталогу?
Тут на сцену выходит ACL — Access Control List.

✔️ Что такое ACL

ACL позволяет задавать права не только для владельца и группы, а для любого пользователя или группы. Это похоже на “дополнительный слой” поверх обычных разрешений.

🔍 Проверка наличия ACL

Посмотрим на файл:

ls -l report.txt
-rw-r-----+ 1 marina staff 2048 Oct 22 11:20 report.txt


Плюсик + после прав (rw-r-----+) говорит, что у файла есть ACL.

Подробнее:

getfacl report.txt


Результат может выглядеть так:

# file: report.txt
# owner: marina
# group: staff
user::rw-
user:john:r--
group::r--
mask::r--
other::---


Мы видим, что кроме владельца и группы, есть отдельная запись для пользователя john.

✏️ Назначение ACL

Выдать пользователю john права на чтение файла:

setfacl -m u:john:r file.txt


Выдать группе designers права на запись:

setfacl -m g:designers:rw file.txt


Удалить конкретную запись ACL:

setfacl -x u:john file.txt


Сбросить все расширенные права (оставив только базовые chmod-права):

setfacl -b file.txt


🗂 Установка ACL по умолчанию для каталога

ACL можно "прикрепить" к каталогу, чтобы новые файлы наследовали права автоматически.

Пример: всем пользователям группы team разрешить читать и писать в каталог /srv/docs:

setfacl -d -m g:team:rw /srv/docs


Теперь любой файл, созданный внутри /srv/docs, получит те же права.

🟢 Полезно знать

mask в выводе getfacl — это "ограничитель" максимальных разрешений ACL. Даже если пользователю выданы права rwx, но в качестве mask стоит rw-, то выполнение будет заблокировано.

Маску можно менять отдельно:

setfacl -m m:rw file.txt


⚙️ Пример из жизни

Пусть в /var/www/project лежит сайт, над которым работают два человека: admin и editor. Админ имеет полный доступ, а редактор — только чтение и запись контента:

chown -R admin:admin /var/www/project
setfacl -R -m u:editor:rw /var/www/project/content
setfacl -d -m u:editor:rw /var/www/project/content


Первая команда setfacl назначает права доступа для уже существующих файлов и каталогов в /var/www/project/content. Вторая устанавливает шаблон прав, который унаследуют будущие файлы и папки, созданные в /var/www/project/content.

Теперь editor сможет редактировать файлы в /content (в том числе и все созданные в дальнейшем), но не затронет код приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как удалить список файлов, сгенерированный другой командой?

Ответ через час.

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Утилита xargs в Unix-подобных операционных системах считывает данные из стандартного ввода и использует их для построения и выполнения команд. С ее помощью можно, например, удалить список файлов, полученный от другой команды:

ls *.log | xargs rm

Так можно удалить все файлы, найденные предыдущей командой. Работает с find, grep и многими другими.

Конечно, если список можно выразить шаблоном, то проще всего передать шаблон команде rm:

rm *.log
rm file{1..100}.txt

Это не требует промежуточных команд и работает мгновенно.

Но xargs тоже может пригодиться. Например, можно удалить только те файлы, имена которых содержат определённое слово:

ls | grep "temp" | xargs rm


Можно использовать и более сложные фильтры, включая регулярные выражения.

Если установлен fzf, можно удалять файлы выборочно:

ls | fzf -m | xargs -r rm

Вы получаете список файлов, выбираете нужные пробелом, и xargs их удаляет. Очень удобно.

#вопросы
3👍2
Выберите правильный вариант для поиска в указанных файлах (files) строк, где встречается BOB, Bob, BOb или BoB.
Anonymous Quiz
26%
grep –i Bob files
54%
grep 'B[oO][bB]' files
5%
grep '[BOB]' files
7%
grep -v 'Bob' files
9%
Посмотреть ответ
👩‍💻 Команды apt и apt-get

Это две команды, предназначенные для установки, удаления и обновления программного обеспечения на системе.

apt-get

apt-get - это одна из первых команд, использовавшихся для управления пакетами в системах Debian и Ubuntu.

🟩 Преимущества apt-get:

✔️ Широкая поддержка. apt-get является стандартной командой для управления пакетами в Debian и Ubuntu, что делает ее широко распространенной и надежной.
✔️ Подробные выводы. При выполнении команд apt-get выводит подробную информацию о процессе установки или удаления пакета, что позволяет пользователям следить за процессом.

🟧 Недостатки apt-get:

✔️ Медленное обновление индексов пакетов. apt-get иногда может работать медленно из-за обновления индексов пакетов перед выполнением команды.
✔️ Неудобство в использовании. Использование apt-get требует ввода длинных команд, что может быть неудобно для новичков.

apt

apt - это более новая команда, предназначенная для упрощения управления пакетами в системах Debian и Ubuntu.

Она является частью более современного инструмента APT (Advanced Package Tool), который объединяет несколько функций в одном интерфейсе.

🟩 Преимущества apt:

✔️ Упрощенное использование. apt предоставляет более простой и интуитивно понятный интерфейс для управления пакетами, что делает его более удобным в использовании.
✔️ Более быстрое обновление индексов пакетов. apt автоматически обновляет индексы пакетов перед выполнением команды, что уменьшает время ожидания пользователя.

🟧 Недостатки apt:

✔️ Менее подробные выводы. При выполнении команд apt вывод может быть менее подробным по сравнению с apt-get, что затрудняет отслеживание процесса установки или удаления пакета.
✔️ Ограниченная поддержка сторонних репозиториев. apt может иметь ограниченную поддержку сторонних репозиториев по сравнению с apt-get, хотя это не так часто встречается.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎥 Вебинар по Linux: С Windows на Linux: первый шаг системного администратора

На вебинаре вы узнаете:
- В чем принципиальные отличия Linux и Windows
- Какие базовые команды нужны для работы в консоли Linux
- Как устроена файловая система Linux и где искать нужные файлы


В результате вебинара вы:
- Научитесь выполнять базовые команды в терминале Linux
- Поймете структуру файловой системы и принципы работы с файлами
- Сможете устанавливать программы и управлять пакетами
- Разберетесь, как адаптироваться к Linux после Windows


👉 Для участия зарегистрируйтесь: https://vk.cc/cUMPNt

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Basic"

Курс создан для тех, кто хочет перейти от случайного опыта к уверенной работе с сервером. Вы освоите основы операционной системы, научитесь работать в Bash, поймёте, как устроены сети, научитесь запускать веб-сервисы, работать с MySQL, Docker, Git, Prometheus и Grafana. Это фундамент, без которого невозможен дальнейший рост.


👉 Повысить свои навыки:  https://vk.cc/cUMPUk


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥 Разница между su и su -

Ни для кого не секрет, что Linux - система, с которой можно работать от разных пользователей. Сегодня я запускаю сессию от Паши, завтра от Пети.

Когда вы в сессии открываете терминал, стартует оболочка, которая подстраивает окружение под конкретного юзера: выполняет скрипты, определяет переменные.

Бывает, приходится, работая в сессии одного пользователя, переключиться на другого, например, чтобы использовать ресурсы, ограниченные правами доступа. Для этого мы используем команду su (substitute user), которая позволяет сменить пользователя в текущей оболочке:

$ su vasya


После выполнения команды создастся дочерняя оболочка, которая переймет все переменные окружения родителя, определит пользовательские (USER, HOME ...) и выполнит локальные "Васины" скрипты: /home/vasya/.bashrc и т.д.:

$ export USER1VAR="vasya"

$ su xoadmin
$ printenv | grep USER
USER=xoadmin
USER1VAR=vasya


Какая-то каша выходит. Половина Васиных переменных, половина юзера xoadmin. Такой способ полезен, когда нам нужно быстро поменять пользователя и не требуется его окружение в изначальном виде.

Если нужно полностью воссоздать среду, как при чистом входе в систему, следует использовать su -:

$ su - xoadmin


Окружение родителя мы не наследуем и запускаем оболочку типа "login shell", которая выполнит дополнительные скрипты инициализации "/etc/profile", "~/.bash_profile".

Также, когда мы используем su -, наш рабочий каталог переключается на домашний для целевого пользователя. Мелочь, но факт:

$ pwd
/home/vasya/Music
$ su - xoadmin
$ pwd
/home/xoadmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Как быстро узнать, какой файл в каталоге самый большой?

Ответ через час.

#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Комбинация find, du и sort позволит найти 10 самых "тяжёлых" файлов с путями и размерами.

find . -type f -exec du -h {} + | sort -rh | head -n 10


#вопросы
👍3
Какая команда используется для копирования файлов и директорий?
Anonymous Quiz
3%
copy
1%
cpy
91%
cp
3%
rn
3%
Посмотреть ответ