Вы находитесь на странице: 1из 35

Установка Gnome в Ubuntu 14.04.

1
Установка Gnome в Ubuntu 16.04. 1
Настройка раздела подкачки Swap. 1
Убираем из автозагрузки лишние программы. 2
Каталоги *.d 2

Операции с пакетами (в основном на примере моей Lubuntu 18). 2


Использование rpm в Ubuntu. 3
Репозитории. 3
Что такое apt-get? 3
Что такое apt-cache? 3
В чем разница между apt update и apt upgrade? 5
Просмотр списка репозиториев: 6
grep - одна из консольных утилит поиска заданных выражений. 6
awk - форматирование текста. 7
sort - догадайтесь ) 7
Что такое PPA-репозиторий. 7
Где найти PPA-репозиторий для .... 8
Добавление PPA в систему. 9
Универсальный метод добавления. 9
Как удалить репозиторий PPA в Ubuntu. 11
aptitude 12
Получение информации об аппаратном устройстве компьютера и программных
компонентах работающих железом. 15
lspci 15
modinfo 16
Управление службами Linux. 17
Права доступа. 19
SUID bit 20
SGID bit 20
Программы, утилиты и прочее. 21
RDP 21
MiniDLNA 22
Как это работает: 22
Установка: 23
Что такое технология Ureadahead. 24
Настройка: 24
ss - команда ss используется для отображения статистики сокетов. 25
Символические и жесткие ссылки 25
sudo -u <user> - запуск программы от имени другого пользователя. 27
ls -l - вывод списка файлов 27
tail - удобный просмотр log-файлов. 28
Возможные проблемы: 28
fs.inotify.max_user_watches - что это такое. 28
директория /opt - есть такое мнение как ее нужно использовать. 29

Установка Gnome в Ubuntu 14.04.

sudo apt-get update && sudo apt-get install gnome-session-flashback

Установка Gnome в Ubuntu 16.04.

Самая новая версия Gnome не добавлена в официальные репозитории, поэтому нам


придется использовать PPA разработчиков Gnome. Сейчас там находится версия 3.20, но после
релиза 3.21 вы сможете установить ее таким же образом.
Для добавления PPA в систему выполните:
sudo add-apt-repository ppa:gnome3-team/gnome3-staging
$ sudo add-apt-repository ppa:gnome3-team/gnome3
Затем обновляем списки пакетов и систему, чтобы избежать ошибок, также если у вас уже
установлен Gnome, то эти команды обновят его до самой последней версии:
sudo apt update
$ sudo apt upgrade
Ну и теперь установка Gnome в Ubuntu 16.04:
sudo apt install gnome gnome-shell

Настройка раздела подкачки Swap.

Если у Вас оперативной памяти больше 2-х гигабайт, можно настроить параметр Swappiness:
Swappiness - это параметр, контролирующий тенденцию ядра перемещать процессы из
физической памяти в swap раздел.

Swappiness - это число между 0 и 100 включительно.


Если 0 - то своп не будет использован пока физическая память не заполнится до предела.
Если же 100 - то все процессы будут агрессивно перемещаться на диск.

По умолчанию стоит 60, что значит, если ваша оперативная память загружена на 40
процентов, то включается swap раздел.

Думаю никому объяснять не нужно, что жесткий диск работает намного медленнее, чем
оперативная память.

Чтобы изменить этот параметр проделаем следующее, откройте терминал и выполните


следующую команду:
sudo gedit /etc/sysctl.conf И вставьте в конец файла следующий параметр:
vm.swappiness=10

Убираем из автозагрузки лишние программы.

Начиная с Ubuntu 12.04 в менеджере "Автоматически запускаемые приложения" (startup


applications в Ubuntu 16.04 eng )теперь не отображаются системные службы для управления
при старте с остальными приложениями, они скрыты от пользователя.

1
Чтобы сделать их видимыми в менеджере, выполните следующую команду в терминале (это
одна команда, её нужно скопировать полностью):
sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

После этого переоткрываем менеджер "Автоматически запускаемые приложения" и теперь


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

Например, вот те, которые можно отключить без вреда системе: Orca Screen Reader, Zeitgest
Datahub, Общий доступ к личным файлам, Общий доступ к рабочему столу, Оповещение
об обновлениях, Bluetooth.

Но будьте осторожны убирая остальные, лучше сто раз убедиться, что это приложение
ненужно, чем поломать систему.

И еще хочу заметить: ПРОСТО убирайте галочки, а не нажимайте кнопку "Удалить".

Чтобы опять скрыть системные службы в менеджере, выполните следующую команду (это
одна команда, её нужно скопировать полностью):
sudo sed -i 's/NoDisplay=false/NoDisplay=true/g' /etc/xdg/autostart/*.desktop

Чтобы работать со всеми возможными 7z, zip, gzip, rar, xz, tar, bz2, xar, tar.gz, tar.bz

архивами, распаковывать и упаковывать, нужно установить следующие инструменты,


откройте терминал и выполните команду:
sudo apt-get install p7zip-rar p7zip-full unace unrar zip unzip sharutils rar uudeview mpack arj
cabextract file-roller

Каталоги *.d

Каталоги, название которых заканчивается на .d, встречаются всё чаще и чаще. Каждый
каталог представляет собой конфигурационный файл, разделенный на несколько файлов .
Таким образом, например, все файлы в /etc/apt/apt.conf.d/ это инструкции, настраивающие APT.
APT применяет их в алфавитном порядке, поэтому более поздняя инструкция может изменять
параметры, установленные предшествующим ей инструкциями.

Изменение комбинации клавиш для переключения языка ввода в Lubuntu 18.

Требуется отредактировать файл /etc/default/keyboard


Строка:

XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"
определяет "поведение" или "расположение" модификаторов Control и Group (переключатель
групп — это переключатель "языка", например, русский/латинский).
Варианты переключателей групп:
grp:toggle - переключение правым Alt;
grp:shift_toggle - двумя клавишами shift;
grp:ctrl_shift_toggle - ctrl+shift;
grp:alt_shift_toggle - alt+shift;
grp:ctrl_alt_toggle - ctrl+alt;
https://sites.google.com/site/letterkawiki/home/linux/pereklucenie-raskladki-klaviatury-v-lubuntu

2
Операции с пакетами (в основном на примере моей Lubuntu
18).

Использование rpm в Ubuntu.

sudo apt-get install alien dpkg-dev debhelper build-essential


sudo alien packagename.rpm
sudo dpkg -i packagename.deb

Репозитории.

Репозиторий - это набор файлов, которые содержат информацию о различном программном


обеспечении, его версиях и некоторых других деталях, таких, как контрольная сумма. Каждая
версия Ubuntu имеет собственный официальный набор из четырех репозиториев:
● Основное - бесплатное программное обеспечение с открытым исходным кодом,
поддерживаемое Canonical.
● Universe - поддерживаемое сообществом бесплатное программное обеспечение с
открытым исходным кодом.
● Restricted - проприетарные драйверы для устройств.
● Multiverse - Программное обеспечение ограничено авторским правом или правовыми
вопросами.
Вы можете увидеть такие репозитории для всех версий Ubuntu здесь. Вы можете
просматривать их, а также перейти к отдельным репозиториям. Например, основной
репозиторий Ubuntu 16.04 можно найти здесь.
Эта информация хранится в файле sources.list в каталоге /etc/apt. Если вы посмотрите на его
содержимое, вы увидите, что в нем есть URL-адрес хранилищ. Строки с символом # в начале
игнорируются.
Теперь, когда вы запускаете команду sudo apt update, ваша система использует инструмент
APT для проверки репозитория и сохраняет информацию о программном обеспечении и его
версии в кеше. Когда вы используете команду sudo apt install package_name, она использует
информацию для получения этого пакета с URL-адреса, где хранится реальное программное
обеспечение.
Если в хранилище нет информации об определенном пакете, вы увидите ошибку:
Unable to locate package

Apt строка репозитория имеет такой синтаксис:


deb http://адрес_репозитория версия_дистрибутива ветки
Например:
deb http://ua.archive.ubuntu.com/ubuntu/ xenial main restricted
deb https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main
Чтобы добавить репозиторий Ubuntu через терминал используйте команду: apt-add-repository:
Что такое apt-get?
Утилита apt-get представляет собой мощную и бесплатную
программу командной строки для управления пакетами, которая
используется для работы с библиотекой APT (Advanced Packaging Tool)
Ubuntu для установки, удаления и обновления существующих пакетов

3
программного обеспечения и даже для обновления всей операционной
системы.
Что такое apt-cache?
Инструмент командной строки apt-cache используется для поиска
по кешу программного пакета apt. Говоря простыми словами, этот
инструмент используется для поиска пакетов программного
обеспечения, сбора информации о пакетах, а также для поиска готовых
для установки пакетов в системах на базе Debian или Ubuntu.

sudo apt-add-repository "deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main"


В кавычках указана apt строка репозитория. Также можно просто добавить строчку в
/etc/apt/sources.list:
echo "deb http://ppa.launchpad.net/shutter/ppa/ubuntu wily main" >> /etc/apt/sources.list
Для добавления ключей безопасности GPG существует команда apt-key. Вы можете
добавить ключ из файла, или скачать ключ с помощью curl и перенаправить ее вывод и apt-key:
curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add
На самом деле, curl - это больше чем просто утилита командной строки
для Linux или Windows. Это набор библиотек, в которых реализуются
базовые возможности работы с URL страницами и передачи файлов.
Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS,
TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она
отлично подходит для имитации действий пользователя на страницах и
других операций с URL адресами.
Использование - $ curl опции ссылка
-L - принимать и обрабатывать перенаправления;
-o - выводить контент страницы в файл;
-O - сохранять контент в файл с именем страницы или файла на сервере;
-z - скачать файл, только если он был модифицирован позже указанного
времени;
и многие другие..https://losst.ru/kak-polzovatsya-curl
Самая частая задача - это загрузка файлов linux. Скачать файл очень
просто. Для этого достаточно передать утилите в параметрах имя файла или
html страницы:
curl https://raw.githubusercontent.com/curl/curl/master/README.md
Но тут вас ждет одна неожиданность, все содержимое файла будет
отправлено на стандартный вывод. Чтобы записать его в какой-либо файл
используйте:
curl -o readme.txt
https://raw.githubusercontent.com/curl/curl/master/README.md
А если вы хотите, чтобы полученный файл назывался так же, как и файл
на сервере, используйте опцию -O:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md
Если нужно, одной командой можно скачать несколько файлов:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O
https://raw.githubusercontent.com/curl/curl/master/README
curl -z 21-Dec-17
https://raw.githubusercontent.com/curl/curl/master/README.md -O
https://raw.githubusercontent.com/curl/curl/master/README

И каждый раз обновляем список доступных пакетов, после подключения нового репа:
sudo apt-get update
Когда вы запустите эту команду, вы увидите информацию о пакетах, полученную с разных
серверов.

4
http://blog.sedicomm.com/2017/12/19/25-poleznyh-bazovyh-komand-apt-get-i-apt-cache-dlya-
upravleniya-paketami/

Здесь вы видите три типа линий: Hit, Get и Ign. Давайте разберемся с их значениями:
● Hit: нет обновления для версии пакета.
● Ign: пакет игнорируется. Либо пакет слишком старый, что нет возможности его
проверить, либо произошла ошибка при извлечении файла, но ошибка была
тривиальной и, следовательно, она игнорируется. Не беспокойтесь, это не ошибка.
● Get: доступна новая версия. Загрузится информацию о версии (а не пакет). Вы можете
увидеть на скриншоте выше, что есть информация о загрузке (размер в kb) с названием
«get».
В чем разница между apt update и apt upgrade?
Обновление apt обновляет базу данных пакетов.
Например, если у вас установлен пакет XYZ версии
1.3, после apt update база данных будет знать, что
доступна более новая версия (1.4) (Опция update
используется для повторной синхронизации кеша
пакетов и их источников, указанных в файле
/etc/apt/sources.list. Опция update извлекает кеш из
своих репозиториев и обновит их до более новых
версий.)
). Когда вы выполняете apt upgrade, у вас
произойдет непосредственное обновление
установленных пакетов на их более новые версии.
Именно поэтому самый быстрый и удобный способ
«обновить» вашу систему с помощью этой команды:
sudo apt update && sudo apt upgrade -y
apt-cache policy <name> - покажет из какого репозитория был/будет установлен пакет,
установленную версию пакета и доступные версии. Также отображает приоритеты источников
пакетов.

5
http://blog.sedicomm.com/2017/12/19/25-poleznyh-bazovyh-komand-apt-get-i-apt-cache-dlya-
upravleniya-paketami/
Просмотр списка репозиториев:
apt-cache policy | grep http | awk '{print $2 $3}' | sort -u
apt-cache policy - без аргументов выводит приоритеты для
каждого источника. (репозитория.) В противном случае она
выводит подробную информацию о выбранных приоритетах
пакета.
Вывод команды:
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://ppa.launchpad.net/wfg/0ad/ubuntu bionic/main i386 Packages
release v=18.04,o=LP-PPA-wfg-0ad,a=bionic,n=bionic,l=0 A.D.,c=main,b=i386
origin ppa.launchpad.net
500 http://ppa.launchpad.net/wfg/0ad/ubuntu bionic/main amd64 Packages
release v=18.04,o=LP-PPA-wfg-0ad,a=bionic,n=bionic,l=0 A.D.,c=main,b=amd64
origin ppa.launchpad.net
500 http://archive.ualinux.com/deb ubuntupack/bionic i386 Packages
release v=00.00,o=UbuntuPack,a=ubuntupack,n=ubuntupack,l=UbuntuPack,c=bionic,b=i386
origin archive.ualinux.com
500 http://archive.ualinux.com/deb ubuntupack/bionic amd64 Packages
release v=00.00,o=UbuntuPack,a=ubuntupack,n=ubuntupack,l=UbuntuPack,c=bionic,b=amd64
origin archive.ualinux.com
100 http://ua.archive.ubuntu.com/ubuntu bionic-backports/universe i386 Packages
release v=18.04,o=Ubuntu,a=bionic-backports,n=bionic,l=Ubuntu,c=universe,b=i386
origin ua.archive.ubuntu.com
100 http://ua.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages
release v=18.04,o=Ubuntu,a=bionic-backports,n=bionic,l=Ubuntu,c=universe,b=amd64
origin ua.archive.ubuntu.com
Pinned packages:

Файл /var/lib/dpkg/status содержит серию блоков данных (в формате


запроса заголовков почты для комментариев, RFC 2822), описывающих
состояние каждого пакета, то есть, установленные, отмеченные для
удаления, очистки и.т.д.
Приоритеты репозиториев apt имеют следующие значения:

● P >= 1000 — Устанавливать пакеты, даже если это приводит к


установке более старой версии, чем текущая установленная
● 990 <= P < 1000 — Устанавливать версию пакетов, даже если она не
входит в текущий релиз, за исключением случая, если установленная
версия новее.
● 500 <= P < 990 — Устанавливать пакеты, если они отсутствуют в
текущем релизе, и устанавливаемая версия новее.
● 100 <= P < 500 — Устанавливать пакеты, если нет доступной версии в
других репозиториях или установленная версия старее.
● 0 < P < 100 — Устанавливать пакет только в том случае, если нет
другой установленной версии.
● P < 0 — Предотвратить установку указанной версии
● P = 0 — Неопределенное поведение, не рекомендуется использовать

Pinned packages: пакеты, которые будут установлены по вручную


прописанным приоритетам. Гуглить /etc/apt/preferences, pinning.
https://wiki.debian.org/ru/AptPreferences
https://mnorin.com/prioritety-repozitoriev-apt.html

grep - одна из консольных утилит поиска заданных


выражений.
— утилита командной строки, которая находит на вводе
целые строки, отвечающие заданному регулярному выражению,
и выводит их, если вывод не отменён специальным ключом.

6
Соответственно мы выводим на экран строки начинающиеся
с http, а значит только адреса репозиториев, что и является их
названием.
https://habr.com/ru/post/229501/
https://lyalyuev.info/2016/07/05/howto-ispol-zovanie-komandy-
grep-v-linux-primery/

awk - форматирование текста.


awk '{print $2 $3}' - консольная команда awk интересная
штука, форматирует вывод согласно заданным условиям.
https://www.ibm.com/developerworks/ru/library/l-awk1/index.html
$ awk опции 'условие {действие}'
В нашем случае, она, по конвейеру, получает вывод от grep и
выводит вторые и третьи поля предыдущего результата. Поля это
группы символов разделенные пробелом. (переменная $0
представляет всю текущую строку.)
https://losst.ru/ispolzovanie-awk-v-linux

sort - догадайтесь )
sort -u - Это утилита для вывода текстовых строк в
определенном порядке. $ sort опции файл
● -b - не учитывать пробелы
● -d - использовать для сортировки только буквы и цифры
● -i - сортировать только по ASCII символах
● -n - сортировка строк linux по числовому значению
● -r - сортировать в обратном порядке
● -с - проверить был ли отсортирован файл
● -o - вывести результат в файл
● -u - игнорировать повторяющиеся строки
● -m - объединение ранее отсортированных файлов
● -k - указать поле по которому нужно сортировать строки,
если не задано, сортировка выполняется по всей строке.
● -f - использовать в качестве разделителя полей ваш символ
вместо пробела.

Что такое PPA-репозиторий.

PPA расшифровывается как Personal Packages Archive, т.е. персональный архив пакетов. В
отличии от репозиториев Ubuntu, где собрано большое количество пакетов, PPA-репозиторий
содержит лишь версии какой-то одной программы.
Обычно адреса PPA репозиториев обозначаются так:
ppa:НАЗВАНИЕ_ПРОГРАММЫ/ppa.
Любой разработчик свободного ПО может создать PPA для своей
программы. Этот проект реализован в рамках сервиса Launchpad.net
для поддержки и распространения свободного ПО.
Если вы не первый день знакомы с Ubuntu и уже пытались поставить
пакеты не только из доступных по умолчанию репозиториев, то,
скорее всего, вам уже встречались ссылки вида
http://ppa.launchpad.net/deluge-team/ppa/ubuntu. Это прямая ссылка на
PPA для deluge-team, пройдя по ней вы увидите лишь папки с
различными файлами. Сейчас огромное количество пакетов доступно
через различные PPA, многие проекты используют launchpad.net как
основной источник распространения своих программ для

7
пользователей Ubuntu, поэтому ссылки на ppa встречаются очень
часто. Кроме того, на launchpad.net есть поиск, попробуйте найти
через него свой любимый проект, вполне возможно он уже
зарегистрирован на launchpad.net и для него выложены готовые к
установке пакеты.
Ссылка http://ppa.launchpad.net/deluge-team/ppa/ubuntu очень неудобна
для добавления в систему в качестве источника пакетов. Для того,
чтобы добавить данный репозиторий в систему, полезней будет
пройти по ссылке https://launchpad.net/~deluge-team/+archive/ppa на
страницу launchpad с описанием этого PPA. Все ссылки имеют
одинаковый вид, отличаются они лишь названием команды (и,
возможно названием PPA), однако запомнить сей набор символов
достаточно сложно, поэтому проще всего выйти на страницу с
описанием репозитория добавив после основного адреса
https://launchpad.net/ тильду и имя команды, которое можно
выделить из любой ссылки на PPA, получится что-то типа
https://launchpad.net/~deluge-team. Пройдя по этой ссылке, вы
попадёте на страницу команды deluge-team на launchpad.net. Если у
команды есть персональный архив, то вы увидите соответствующий
раздел на странице:

Как видно, у deluge-team четыре персональных архива, обычно нас


интересуют архив названный PPA for…. Другой способ выйти на
страницу описания нужного PPA - опять-таки просто воспользоваться
поиском по launchpad.net

Где найти PPA-репозиторий для ....

Обычно все PPA репозитории представлены на Launchpad.net.


Рассмотрим, как найти адрес PPA для клиента обмена мгновенными сообщениями Pidgin.

Вводим в поисковую форму название нужной программы и идем по найденной ссылке.

8
Здесь нам важен пункт Maintainer, идем по этой ссылке. Находим Personal package archive:

Снова идем по ссылке. Вот и нашло то, что надо.

Нужный нам адрес PPA выделен жирным.

Добавление PPA в систему.

Универсальный метод добавления.

Для корректного добавления PPA в систему необходимо выполнить два действия:


1. Добавить ссылку на репозиторий в системный список источников пакетов.
2. Добавить цифровую подпись репозитория в систему.
Поскольку репозитории большей частью расположены в интернете,
существует вероятность подмены репозитория злоумышленником на
свой, содержащий модифицированные пакеты. Таким образом,
пользователь может установить себе модифицированный пакет и тем
самым поставить безопасность своей системы под угрозу. Многие
репозитории имеют защиту от подмены. Такая защита реализована при
помощи сверки цифровых подписей репозитория и клиента. В случае,
когда репозиторий имеет цифровую подпись, а пользовательский
компьютер содержит открытый ключ для этого репозитория — такой
репозиторий считается доверенным.
В Ubuntu по умолчанию доверенными являются репозитории на
установочных дисках и основные интернет репозитории —
archive.ubuntu.com. При наличие на пользовательском компьютере
нескольких подключенных репозиториев, предпочтение отдается
доверенным.

9
При подключении репозитория, защищенного цифровой подписью
Вам нужно скачать (обычно с ресурса, рассказывающего про этот
репозиторий, или с сервера ключей, что является более
предпочтительным в любом случае) открытый ключ и добавить его в
систему. Иногда для скачивания предоставляется доступный для
установки пакет, который в свою очередь при своей установке сам
прописывает ключ репозитория. Если вы скачиваете ключ с сайта
репозитория, то вы получите обычный файл с расширением .key, .gpg
или другим. Добавить его в систему можно так:
sudo apt-key add repo.key
Где repo.key — полученный вами ключ репозитория.

Первый пункт.

Теперь давайте посмотрим на команду:


sudo add-apt-repository ppa:dr-akulavich/lighttable
Вы заметили, что у этой команды нет URL-адреса для хранилища. Это потому, что инструмент
был разработан, чтобы абстрагироваться от URL.
Просто небольшая заметка. Если вы добавите ppa: dr-akulavich /
lighttable, вы получите Light Table. Но если вы добавите ppa: dr-
akulavich, вы получите все хранилище или пакеты, упомянутые в
«верхнем хранилище». Оно иерархическое.
По сути, когда вы добавляете PPA с помощью add-apt-repository, оно будет выполнять те же
действия, что и при ручном запуске этих команд:
deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE
main
deb-src http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE
main
Две вышеупомянутые строки являются традиционным способом добавления любых
репозиториев в ваш sources.list. Но PPA делает это автоматически для вас, не задумываясь о
точном URL хранилища и версии операционной системы.
Здесь важно помнить, что при использовании PPA он не меняет исходный список источников.
Вместо этого он создает два файла в каталоге /etc/apt/sources.d/, список и файл резервной копии
с суффиксом «save».
В файлах с суффиксом «list» есть команда, которая добавляет информацию о хранилище.

Содержание source.list PPA

Второй пункт нужен для того, чтоб система установки пакетов не ругалась на наличие
ненадёжных источников и именно для него нам нужно было попасть на страницу с описанием
PPA.
Нажмите на Technical details about this PPA для того, чтобы увидить детальную информацию о
PPA:

10
Launchpad автоматически определяет вашу версию Ubuntu. Если этого не случилось, выберите
свою версию в выпадающем списке.
Две строчки в рамке - это две строчки с описанием репозиториев (первая для бинарных
пакетов, вторая для исходных кодов), которые надо добавить к списку источников
программного обеспечения в вашей системе. О том, как это делать см. в статье про
репозитории. Если вашей версии Ubuntu нет в списке, значит, данный PPA её не поддерживает
по каким-то причинам. Возможно, ваша версия Ubuntu слишком старая, тогда вам необходимо
обновиться до более свежей версии, либо наоборот - вы используете нестабильную версию,
ещё официально не вышедшую. Кроме того, разработчик по каким-то причинам может
прекратить поддержку своего PPA и больше не добавлять туда свежие пакеты. В любом
случае, все вопросы по содержанию PPA отправляйте той команде или тому человеку, кто
поддерживает данный PPA.
Однако для корректной работы с подключённым PPA необходимо импортировать его ключ в
систему. Ключ - это часть строчки «Signing key» после слеша. Рядом есть ссылка «What is
this?», при нажатии на которую появиться краткая справка о том, что такое подпись
репозитория и как импортировать ключ в систему. К сожалению она на английском, однако в
импортировании ключа нет ничего сложного: вам всего лишь надо выполнить в консоли
команду
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678
заменив «12345678» той строчкой, которая написана после «/» в строке «Signing key».
Подробнее про подпись репозиториев см. в общей статье про репозитории.
Как правило, в описании репозитория, если для него требуется ключ, указана ссылка где его
можно скачать. Скачать ключ можно с помощью браузера, или консольной утилитой wget,
например:
wget http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xFC6D7D9D009ED615

Теперь можно обновить список пакетов и устанавливать программы из подключённого PPA.

Как удалить репозиторий PPA в Ubuntu.

Удалить репозиторий в Ubuntu можно такой же командой, как и в предыдущем примере:


sudo add-apt-repository --remove ppa:репозиторий/ppa
или например
sudo add-apt-repository --remove http://ppa.launchpad.net/menulibre-dev/devel/ubuntu
sudo add-apt-repository --remove http://ppa.launchpad.net/mc3man/avidemux1/ubuntu - проверено

11
Полностью удалить PPA из системы можно командой:
sudo ppa-purge ppa:репозиторий/ppa

Возможно, утилиту ppa-purge необходимо будет установить командой:


sudo apt-get install ppa-purge

Найти пакеты, установленные PPA, и удалить их Ubuntu


Software Center здесь не помогает. Вам придется
использовать менеджер пакетов Synaptic, который имеет
более продвинутые функции.
Для просмотра пакетов не обязательно ставить синаптик.
Вроде бы там есть возможность и в apt проверять, каким
пакетам принадлежат те или иные репозитории. Хотя
Синаптик довольно удобен, когда нужно вспомнить, что
там за шляпа была год назад.
А вот как удалять репозитории консольно:
add-apt-repository -r НАЗВАНИЕ
Причем у всех эта команда ассоциируется исключительно
с ppa:, но --help не согласен. Эта команда может
использоваться с любыми форматами файлов:
Examples:
apt-add-repository 'deb http://myserver/path/to/repo stable
myrepo'
apt-add-repository 'http://myserver/path/to/repo myrepo'
apt-add-repository 'https://packages.medibuntu.org free non-
free'
apt-add-repository http://extras.ubuntu.com/ub...
apt-add-repository ppa:user/repository
apt-add-repository ppa:user/distro/repository
apt-add-repository multiverse
Также будет весьма полезна программа, которая
отсутствует, но легко ставится.
$ sudo apt install ppa-purge
"ppa-purge will reset all packages from a PPA to the standard
versions released for your distribution."
Я пока не проверял, УДАЛЯЕТ ли она отсутствующие в
дистрибутиве пакеты, но она точно удаляет ппа-
репозиторий и понижает их версии. Что бывает полезно,
так как сами разработчики не гарантируют успешного
обновления дистрибутива при использовании, допустим,
Kubuntu Backports.

aptitude

Описание - aptitude является текстовым интерфейсом для пакетной системы Debian


GNU/Linux. Он позволяет пользователю просматривать список пакетов и выполнять такие
задачи по управлению пакетами как установка, обновление и удаление пакетов.
sudo apt install aptitude
Есть мнение что эта команда удобнее в использовании чем apt-<что-то еще>, например:
Установка:
sudo aptitude install karma-tools
sudo apt-get install karma-tools

Просмотр информации о пакете:

12
aptitude show karma-tools
apt-cache show karma-tools

Метка пакета:
sudo aptitude markauto karma-tools
sudo apt-mark markauto karma-tools

aptitude update - Эта команда обновляет список пакетов как если бы вы вошли в графический
интерфейс и нажали клавишу u.
aptitude safe-upgrade - Эта команда обновит наибольшее число пакетов, которые можно
обновить не удаляя существующие пакеты.
Иногда необходимо удалить один пакет для того, чтобы обновить другой; в таких ситуациях
эта команда не может обновить пакеты. Используйте команду full-upgrade, чтобы обновить
также и эти пакеты.
aptitude full-upgrade - Подобно команде safe-upgrade, эта команда попытается обновить
пакеты, но она более агрессивна относительно разрешения проблем зависимостей: она будет
устанавливать и удалять пакеты до тех пор пока все зависимости не будут удовлетворены.
Возможно, она приведёт к нежелательным вещам, поэтому следует быть аккуратными при её
использовании.
По историческим причинам эта команда была изначально названа dist-
upgrade, и это имя все еще распознается aptitude.

aptitude show - Эта команда предоставляет подробную информацию о пакете. В выводе команды
show видим следующую информацию:
Имя пакета
Состояние пакета. Если пакет виртуальный, то в этой строке можно увидеть надпись «не реальный
пакет».
Например
aptitude show gksu
No candidate version found for gksu
Package: gksu
State: not a real package
В aptitude, виртуальные пакеты - это термин, используемый
для описания пакетов, которые состоят только из зависимостей,
но вызывают установку реального программного обеспечения на
основе зависимых не виртуальных пакетов.

Версия пакета.
Приоритет пакета. Может быть:
● Необходимый – без таких пакетов система не будет функционировать;
● Важный – без таких пакетов система не будет нормально работать или не будет удобной;
● Стандартный - эти пакеты обычно устанавливаются по-умолчанию;
● Дополнительный – в основном, все те пакеты, которые устанавливает пользователь;
● Особые – редко используемые или конфликтующие с пакетами других приоритетных групп.
Раздел. Информация о том, к какому разделу репозитория он относится. На этой странице можно
поискать пакеты в соответствующих разделах.
Имя сопровождающего или команды, которая сопровождает пакет. А так же адрес электронной почты,
по которой с ними можно связаться.
Размер пакета в распакованном виде.
Зависимости, если таковые имеются. Зависимости могут быть обязательными и рекомендуемыми.
Может содержаться информация о предлагаемых пакетах. Так же может быть информация о
конфликтующих пакетах. Т. е. если уже установлены пакеты, которые будут конфликтовать с
интересующим пакетом, то для устранения конфликта эти пакеты будут удалены.
Более подробное описание пакета. Возможна ссылка на сайт программы.
Можно получить информацию о нескольких пакетах. Для этого имена пакетов в командной строке
отделяют пробелами. Символ * интерпретируется как часть имени пакета а не маска поиска.

13
aptitude search шаблон1 - Эта команда ищет пакеты, чьи имена содержат любой данный
шаблон, и выводит результат в терминал. Информации выводит меньше чем с ключом show.
https://www.aitishnik.ru/linux/aptitude.html
Пример для практики:
aptitude search minidlna
i minidlna - lightweight DLNA/UPnP-AV
server targeted at emb
p minidlna:i386 - lightweight DLNA/UPnP-AV
server targeted at emb

В первой позиции мы видим символ (ы). Одиночные символы


и символы расположенные левее, если их несколько, назовём
основными. Они обозначают состояние пакета. Если символ:
p – Значит пакет не установлен или удалён полностью, вместе
с файлом конфигурации. Символ p это сокращение от purge.
i – Значит пакет уже установлен. Символ i это сокращение от
installed.
c – Значит пакет удалён, но конфигурационный файл
сохранён. Символ c это сокращение от clean.
v - Значит данный пакет виртуальный, т. е. он не содержит
какой либо программы, он содержит описания зависимостей.
Соответственно, символ v это сокращение от virtual.
Рядом с основными символами, могут располагаться
дополнительные:
A – комбинация iA. Означает, что пакет установлен
автоматически для удовлетворения зависимостей. Символ A это
сокращение от Automatic.
B – комбинация iB. Означает, что пакет содержит ошибки или
утратил зависимости. Символ B это сокращение от Broken.
C – комбинация iC. Означает, что пакет не настроен, его
установка была прервана на стадии настройки. Символ C это
сокращение от half-Configured.
h – комбинация ih. Означает, что для пакета зафиксирована
текущая версия. Символ h это сокращение от hold.
H – комбинация iH. Означает, что пакет установлен только
частично. Например, в момент установки произошёл сбой.
Символ H это сокращение от Half-installed.
u – комбинация pu. Означает, что пакет был получен,
распакован, но не был установлен. Символ u это сокращение от
unpacked.
aptitude remove
Aptitude проверит, будут ли нарушены зависимости при удалении пакета и сообщит об
этом. Так же будет выведена информация о том, сколько пакетов будет обновлено, сколько
пакетов будет установлено, сколько пакетов отмечено для удаления – в нашем случае 4,
сколько пакетов не будет обновлено. Заметим, что программа удаляет и пакеты, которые были
установлены автоматически для удовлетворения зависимостей. Будет выведена информация об
освобождающемся месте после удаления. Подтверждаем удаление. Пакет удаляется, но его
конфигурационные файлы остаются.

Для удаления нескольких пакетов перечисляем их через пробел:


# aptitude remove sudo gcc vim

Для полного удаления пакета вместе с файлами конфигурации выполняем:


# aptitude purge mc

Замечу, что файлы конфигурации, расположенные в профиле пользователя, будут


сохранены.
Для практики я удалил у себя с компьютера пакет minidlna

14
командой remove, то есть оставляя файл конфигурации.
aptitude remove minidlna
и после “поискал” ее командой
aptitude search minidlna
и следовательно получил вывод
c minidlna - lightweight
DLNA/UPnP-AV server targeted at embedded systems
p minidlna:i386 - lightweight
DLNA/UPnP-AV server targeted at embedded systems

aptitude -s remove <пакет>


Все команды, которые устанавливают, обновляют и удаляют пакеты допускают параметр -s,
который означает «симулирование». Когда параметр -s передан из командной строки,
программа выполнит все действия, которые она обычно выполнила бы, но, в действительности,
она не загрузит и не установит/удалит какие-либо файлы. (кстати apt-get также работает с этим
ключом.)
aptitude clean - В процессе работы с менеджером пакетов кэш наполняется загруженными
пакетами. Как я уже писал выше, сначала aptitude помещает пакет в кэш, который находится
в /var/cache/apt/archives/, а после этого запускается его установка. Замечу, что при удалении
пакета, пакет в кэше сохраняется. Периодически, кэш нужно чистить.

https://habr.com/ru/post/74506/

Получение информации об аппаратном устройстве


компьютера и программных компонентах работающих
железом.

lspci

Утилита lspci предназначена для вывода информации о всех PCI-шинах в системе, а также о
всех устройствах, присоединенных к этим шинам. По умолчанию она показывает краткий
список таких устройств.
Утилита lspci вначале считывает информацию с PCI-шины, а потом дополнительную
информацию ищет в собственной базе данных, которая находится в файле
/usr/share/misc/pci.ids (в ubuntu 18 присутствует ) и содержит такие данные как идентификатор
оборудования, производитель, устройства, классы и подклассы.
Например команда
[root@localhost ~]# cat /usr/share/misc/pci.ids | grep "82865G Integrated Graphics Controller"
82865G Integrated Graphics Controller
позволяет убедиться, что наше устройство тоже содержится в этой базе. Данный список
оборудования поддерживается на страничке http://pciids.sourceforge.net, и вы можете
использовать утилиту update-pciids для того, чтобы получить самую последнюю его версию.
хорошее описание https://www.opennet.ru/man.shtml?topic=lspci&category=8&russian=0
пример использования - https://www.opennet.ru/tips/2088_hardware_linux_driver_kernel.shtml

lspci -k Проверить какой драйвер используется в системе можно выполнив эту команду, ключ
-k показывает драйверы ядра, обрабатывающие каждое устройство, а также модули ядра,
работающие с этим устройством. (В настоящее время работает только в Linux с ядром 2.6 или
новее.)

15
modinfo

Получить информацию о модуле помогает команда modinfo. В качестве параметра нужно


передать имя интересующего модуля, и на экране будет выведена информация о нем.
Например, следующая команда запрашивает у системы информацию о модуле ext3:
modinfo ext3
В ответ на это мы увидим примерно следующее:
filename: /lib/modules/2.4.18-5asp/kernel/fs/ext3/ext3.о
description: "Second Extended Filesystem with journaling extensions"
author: "Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger,
Theodore Ts'o and others"
license: "GPL"
parm: do_sync_supers int, description "Write superblocks
synchronously"
Таким образом, нам становятся известными имя и расположения файла, описание, автор,
лицензия и т.д. Количество информации сильно зависит от модуля, и если честно, в некоторых
случаях она настолько скудная, что предназначение модуля остается непонятным.

Как понять выводимую информацию


прошивка :
firmware: i915/skl_dmc_ver1.bin
Многие устройства нуждаются в двух вещах для правильной работы. Драйвер и прошивка.
Драйвер запрашивает прошивку из файловой системы в /lib/firmware . Это специальный файл,
необходимый аппаратным средствам, он не является двоичным. Затем дайвер делает то, что
ему нужно, чтобы загрузить прошивку в устройство. Прошивка программирует аппаратное
обеспечение внутри устройства.

псевдоним :
alias: pci:v00008086d00005A84sv*sd*bc03sc*i*
Это может быть разделено в части после символов:
● v00008086 : v обозначает идентификатор поставщика , он идентифицирует
производителя оборудования. Этот список поддерживается Специальной группой по
интересам PCI . Ваш номер 0x8086 означает «Корпорация Intel».
● d00005A84 : d обозначает идентификатор устройства , который выбран
производителем. Этот идентификатор обычно сопряжен с идентификатором
поставщика, чтобы создать уникальный 32-разрядный идентификатор для аппаратного
устройства. Нет официального списка, и я не смог найти список идентификаторов
устройства Intel для поиска этого номера.
● sv* , sd* : версия поставщика подсистемы и версия устройства подсистемы
предназначены для дальнейшей идентификации устройства ( * указывает, что оно
будет соответствовать чему-либо)
● bc03 : базовый класс . Он определяет, какое устройство это устройство; IDE interface ,
Ethernet controller , USB Controller , … bc03 Display controller . Вы можете заметить их
из вывода lspci , потому что lspci сопоставляет номер с классом устройства.
● sc* : подкласс для базового класса.
● i* : интерфейс

intree :
intree: Y
Все модули ядра начинают свои разработки как out-of-tree . После того, как модуль будет
принят для включения, он становится модулем in-tree . Модули без этого флага
(установленного в N ) могут испортить ядро .

vermagic :

16
vermagic: 4.2.0-1-amd64 SMP mod_unload modversions
При загрузке модуля строки в vermagic значении проверяются, если они совпадают. Если они
не совпадают, вы получите сообщение об ошибке, и ядро откажется загружать модуль. Вы
можете преодолеть это, используя флаг modprobe . Естественно, эти проверки существуют для
вашей защиты, поэтому использование этого параметра опасно.

ubuntu-drivers devices

Управление службами Linux.


Чтобы всем этим управлять нужна основная служба - система инициализации, которая
будет запускать службы linux в нужный момент, следить чтобы они нормально работали,
записывать сообщения логов, и самое главное позволять останавливать службы. Раньше, для
управления службами использовались скрипты. Я уже говорил, что можно запустить службу из
терминала, так вот, каждая служба запускалась в фоновом режиме одна за другой, без
возможности параллельного запуска и возвращала свой PID процесса скрипту инициализации,
он сохранялся и потом с помощью этого PID можно было проверить работает ли служба и
остановить службу linux если это нужно. Все это можно сделать и вручную.
Но потом на смену этому методу пришла новая модель и система инициализации systemd.
Система инициализации запускается сразу после загрузки ядра и начинает инициализировать
службы, теперь появилась возможность параллельной инициализации, а также зависимостей
между службами. Таким образом, теперь можно определить сложное дерево порядка запуска
служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам
процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее
работой, если служба аварийно завершилась, то автоматически ее перезапускает.
Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как
себя вести.
Юнит-файлы в вашей системе описывают параметры системы инициализации
systemd, которая используется в процессе ее загрузки и работы. Каждый из
файлов соответствует отдельному действию или компоненту - или юниту
(unit) в терминологии systemd. Каждый из юнит-файлов является простым
текстовым файлом с описанием юнита, его назначения, операций, которые
должны быть выполнены до и после его запуска, а также других деталей.
Юнит-файлы могут храниться в нескольких различных директориях вашей
файловой системы. systemd осуществляет поиск системных юнит-файлов в
директориях в следующей последовательности:
1. /etc/systemd/system

2. /run/systemd/system

3. /usr/lib/systemd/system

Юнит-файлы из директорий, расположенных выше в списке, имеют


приоритет перед юнит-файлами с аналогичными именами из директорий,
расположенных ниже в списке. Эта схема является довольно удобной, так как
она позволяет вам вносить изменения в файлы из директории /etc, которая как
раз предназначена для хранения файлов конфигурации системы. Вы должны
по возможности избегать внесения изменений в файлы из директории /usr.
Данная директория предназначена для хранения неизменных файлов,
поставляющихся в комплекте с приложениями.
Также systemd может работать в контексте пользователей и управлять
ресурсами отдельных пользователей, в дополнение управлению ресурсами
системы. Юнит-файлы пользовательских юнитов по аналогии хранятся в
директориях /etc/systemd/<имя пользователя>, /run/sustemd/<имя

17
пользователя> и /usr/lib/systemd/<имя пользователя>. Упомянутые директории
имеют аналогичный приоритет.
Вы можете получить информацию об этих юнит-файлах с помощью команды
systemctl. Если вы хотите увидеть список всех юнит-файлов, установленных в
вашей системе, выполните следующую команду:
systemctl list-unit-files
- enabled - в автозагрузке,
- disabled - автозагрузка отключена,
- masked - служба скрыта
- static - значит что служба в автозагрузке, но вы не можете ее отключить.

Юнит-файлы в вашей системе описывают параметры системы инициализации


systemd, которая используется в процессе ее загрузки и работы. Каждый из
файлов соответствует отдельному действию или компоненту - или юниту
(unit) в терминологии systemd. Каждый из юнит-файлов является простым
текстовым файлом с описанием юнита, его назначения, операций, которые
должны быть выполнены до и после его запуска, а также других деталей.
Юнит-файлы могут храниться в нескольких различных директориях вашей
файловой системы. systemd осуществляет поиск системных юнит-файлов в
директориях в следующей последовательности:
1. /etc/systemd/system

2. /run/systemd/system

3. /usr/lib/systemd/system

Юнит-файлы из директорий, расположенных выше в списке, имеют


приоритет перед юнит-файлами с аналогичными именами из директорий,
расположенных ниже в списке. Эта схема является довольно удобной, так как
она позволяет вам вносить изменения в файлы из директории /etc, которая как
раз предназначена для хранения файлов конфигурации системы. Вы должны
по возможности избегать внесения изменений в файлы из директории /usr.
Данная директория предназначена для хранения неизменных файлов,
поставляющихся в комплекте с приложениями.
Также systemd может работать в контексте пользователей и управлять
ресурсами отдельных пользователей, в дополнение управлению ресурсами
системы. Юнит-файлы пользовательских юнитов по аналогии хранятся в
директориях /etc/systemd/<имя пользователя>, /run/sustemd/<имя
пользователя> и /usr/lib/systemd/<имя пользователя>. Упомянутые директории
имеют аналогичный приоритет.
Вы можете получить информацию об этих юнит-файлах с помощью команды
systemctl. Если вы хотите увидеть список всех юнит-файлов, установленных в
вашей системе, выполните следующую команду:

Существуют такие типы служб:


● service - обычная служба, программа
● target - группа служб
● automount - точка автоматического монтирования
● device - файл устройства, генерируется на этапе загрузки
● mount - точка монтирования
● path - файл или папка
● scope - процесс
● slice - группа системных служб systemd
● snapshot - сохраненное состояние запущенных служб
● socket - сокет для взаимодействия между процессами.
Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все
остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь
будет настройка служб LInux.

18
$ systemctl опции команда служба служба…
Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим
их позже, а пока пройдемся по командах:
● list-units - посмотреть все службы (юниты), аналог опции -t
● list-sockets - посмотреть все службы сокетов
● start - запустить службу linux
● stop - остановить службу linux
● reload - обновить конфигурацию службы из файла юнита
● restart - перезапустить службу
● try-restart - перезапустить службу, только если она запущена
● reload-or-restart - обновить конфигурацию затем выполнить перезапуск службы linux,
если не поддерживается - только перезапустить
● isolate - запустить только одну службу вместе с ее зависимостями, все остальные
остановить
● kill - отправить сигнал завершения процессу используется вместе с опциями --signal и
--kill-who
● is-active - проверить запущена ли служба linux
● is-failed - проверить не завершилась ли служба с ошибкой
● status - посмотреть состояние и вывод службы
● show - посмотреть параметры управления службой в Linux
● reset-failed - перезапустить службы linux, завершившиеся с ошибкой
● list-dependencies - посмотреть зависимости службы linux
● list-unit-files - вывести все установленные файлы служб
● enable - добавить службу в автозагрузку
● disable - удалить службу из автозагрузки
● is-enabled - проверить если ли уже служба в автозагрузке
● reenable - сначала выполнить disable потом enable для службы
● list-jobs - все запущенные службы linux независимо от типа
● snapsot - сохранить состояние служб, чтобы потом восстановить
● daemon-reload - обновить конфигурацию всех служб
● mask - сделать юнит недоступным
● unmask - вернуть файл службы linux

Права доступа.

Учетная информация о пользователе обычно сохраняется в нескольких файлах


/ etc /passwd -содержит список пользователей, которые известны системе. В процессе
регистрации пользователя система обращается к этому файлу в поисках идентификатора
пользователя и его домашнего каталога. На что стоит обратить внимание: этот файл доступен
для непривилегированных пользователей.То есть, любой пользователь системы может читать
данный файл. Вот почему все пароли в процессе развития Linux были перенесены в другой
файл.
Каждая строка файла описывает одного пользователя и содержит семь полей, разделенных
двоеточиями - например root:x:0:0:root:/root:/bin/bash
root: регистрационное имя. Регистрационные имена должны
быть уникальными и состоять не более чем из 32 символов.
Они могут содержать любые символы, кроме двоеточия и
символа новой строки. Они не должны начинаться с цифры.

19
x: зашифрованный пароль или «заполнитель» пароля.
«х» пароль храниться в файле /etc/shadow. Файл
/etc/shadow доступен для чтения только пользователю root
и предназначен для хранения зашифрованных паролей.
«*» учетная запись временно отключена.
0: идентификатор пользователя - это 32-битное целое число,
которое уникально идентифицирует пользователя в системе. По
умолчанию, идентификаторы меньше 500 зарезервированы для
служебных учетных записей. Регулярные пользователи имеют
идентификаторы, начиная с 500. Идентификатор 0
зарезервирован для пользователя с именем root.
0: идентификатор группы по умолчанию. Как и
идентификатор пользователя, идентификатор группы (GID)
является 32-битным целым числом.
Идентификатор 0 зарезервирован для группы с именем root,
идентификатор 1 - для группы bin, а 2 - для группы daemon.
Группы определяются в файле /etc/group, а поле
идентификатора группы в файле /etc/passwd задает стандартный
(«эффективный») идентификатор на момент регистрации
пользователя в системе. Этот идентификатор не играет особой
роли при определении прав доступа, он используется лишь при
создании новых файлов и каталогов. Новые файлы обычно
включаются в эффективную группу своего владельца, но если у
каталога установлен специальный бит setgid (02000) или
файловая система смонтирована с опцией grpid, новые файлы
принадлежат группе владельца каталога. По умолчанию, в ОС
Linux для каждого нового пользователя создается новая группа с
таким же регистрационным именем и идентификатором.
root: поле персональных данных. Поле GECOS в основном
используется для хранения персональной информации о каждом
пользователе. Оно не имеет четко определенного синтаксиса.
Структура данного поля может быть произвольной, но команда
finger интерпретирует разделенные запятыми элементы данного
поля в следующем порядке: полное имя; номер офиса и здания;
рабочий телефон; домашний телефон.
/root: домашний каталог.
/bin/bash: командный интерпретатор.
/etc/shadow - состоит из полей, разделенных двоеточиями (поля могут быть и пустыми):
Регистрационное имя. Регистрационное имя берется из файла /etc/passwd. Оно связывает
записи файлов /etc/passwd и /etc/shadow.
символ звездочки (*) во втором поле строк значит, что данная учетная запись не может
войти в систему. Обычно это используется для сервисов.
Данный файл на самом деле не содержит паролей в виде простого текста. Вместо этого, в
нем хранится зашифрованный пароль. Имея текст зашифрованного пароля и зная какой
алгоритм используется, обычно 3DES і MD5, невозможно получить (“развернуть”,
“восстановить”) сам пароль.
При аутентификации алгоритм применяется к паролю, который вводится в консоли, или
же в окне логина, и полученное значение сравнивается со значением в этом файле.
например: daemon:*:15455:0:99999:7:::
daemon - имя пользователя;
*: данная учетная запись не может быть использована для
входа в систему.
что-то вида
“6$FCBaj/YK$vA25EjVvHntNhT.gRik7BJoJim79GdM898uxpmY3
FVbdVLrEbeID2gs40T.N” - соль и хешированный пароль;

20
!: Пароль не задан.
15455: последнее изменение пароля. Данное значение
ограничивается датой начала «Unix-эпохи» (1 января 1970). Для
дат в файле /etc/shadow задаются в формате числа дней с 1-го января 1970 года, поэтому
данные поля лучше задавать с помощью команд usermod или chage.
0: допустимое количество дней для смены пароля. 0 в данном
поле значит, что таких ограничений нет.
99999: количество дней до необходимости смены пароля.
Значение 99999 указывает на то, что ограничения на
продолжительность использования одного пароля не
установлены.
7: количество дней до предупреждения об истечении срока
использования пароля. Если требуется сменить пароль,
пользователь будет извещен о данной необходимости за
указанное количество дней.
[blank]: последние три поля нужны для того, чтобы указать
количество дней до деактивации учетной записи. Последнее поле
не используется. https://www.8host.com/blog/passwd-i-adduser-
upravlenie-parolyami-na-servere-linux/

/etc/group содержит имена групп, присутствующих в ОС Linux, и списки членов каждой


группы, каждая запись файла /etc/group представляет одну группу и содержит четыре поля:
например: daemon:х:2:root,bin,daemon
daemon: имя группы. По умолчанию при создании нового
пользователя создается также его группа с таким же именем, как
и регистрационное имя пользователя.
х: зашифрованный пароль или символ х, указывающий на
использование файла /etc/gshadow;
2: Идентификатор группы.
root,bin,daemon: Список членов, разделенный запятыми без
пробелов.
Длина имени группы не должна превышать 8 символов из
соображений совместимости, хотя в ОС Linux такого ограничения
нет. Несмотря на наличие поля пароля (с помощью которого
пользователи могут присоединиться к группе, выполнив команду
newgrp) пароль задается редко. В большинстве случаев в это поле
вводятся звездочки, но можно оставить его пустым.
Команда newgrp не сменит группу без пароля, если только
пользователь не указан как член этой группы. Если в файле
/etc/passwd пользователь объявлен членом определенной группы, а
в файле /etc/group -нет, пользователь все равно включается в
группу. На этапе регистрации членствов группе проверяется по
обоим файлам, но лучше согласовывать их содержимое.
https://life-prog.ru/man/etc.html

Разработчики Ubuntu имеют свой взгляд на безопасность работы с дистрибутивом.


Довольно много дистрибутивов, в том числе Debian, на котором основана Ubuntu, предлагают
использовать аккаунт суперпользователя для выполнения различных задач по
администрированию системы. Но сейчас такой подход считается небезопасным, поскольку вы
можете забыть что работаете от имени суперпользователя и удалить какие-либо важные вещи.
Поэтому было решено использовать для административных действий, которые требуют
прав суперпользователя команду sudo. Но разработчики Ubuntu пошли еще дальше и вообще
отключили аккаунт суперпользователя. Если вы попробуете войти в него, то у вас ничего не
выйдет.
Исторически единственным универсальным способом выполнить команду от
имени другого пользователя в Unix была программа su. Запущенная без параметров,

21
она запрашивала пароль суперпользователя и в случае успеха просто подменяла
текущее имя пользователя на root, оставляя почти все переменные окружения от
старого пользователя (кроме PATH, USER и еще пары-тройки, см. man su от своего
дистрибутива). Более корректно было запускать ее как su - — в таком случае
оболочка получала также и правильный environment. С параметром -c можно было
выполнить команду: su -c "vim /etc/fstab".
При этом доверенным пользователям приходилось помнить пароль root'а и у всех
пользователей, перечисленных в группе «wheel» (т.е. в группе, члены которой могли
выполнить команду su и стать суперпользователем), был одинаковый
неограниченный доступ ко всей системе, что являлось серьёзной проблемой
безопасности.
Затем появилась команда sudo, и это был прорыв. Теперь администратор мог
указывать список разрешенных команд для каждого пользователя (или группы
пользователей), файлы, доступные для редактирования, специальные переменные
окружения и многое другое (все это великолепие управляется из /etc/sudoers, см. man
sudoers от своего дистрибутива). При запуске sudo спрашивает у пользователя его
собственный пароль, а не пароль root. Полноценный шелл можно получить с
помощью "sudo -i". https://habr.com/ru/post/44783/

Команда sudo ( substitute user and do, подменить пользователя и выполнить ) позволяет
строго определенным пользователям выполнять указанные программы с
административными привилегиями без ввода пароля суперпользователя root. Если быть
точнее, то команда sudo позволяет выполнять программы от имени любого пользователя,
но, если идентификатор или имя этого пользователя не указаны, то предполагается
выполнение от имени суперпользователя root. Таким образом, использование sudo
позволяет выполнять привилегированные команды обычным пользователям без
необходимости ввода пароля суперпользователя root . Список пользователей и перечень их
прав по отношению к ресурсам системы может быть настроен оптимальным образом для
обеспечения комфортной и безопасной работы. Настройки sudo находятся в файле
/etc/sudoers.
Sudo запускает с правами root только одну команду. По умолчанию Ubuntu помнит
введенный пароль 15 минут, и в течение этого времени при повторном использовании не
будет запрашивать его. Это ключевое различие между su и sudo. Su переключает вас в
аккаунт root и требует пароля root. В Ubuntu root не имеет пароля по умолчанию, - значит ...
просто дадим ему пароль командой sudo passwd root и будем использовать логин и пароль
рута для чего пожелается.
Некоторые параметры:
-i, - запустить командную оболочку с правами суперпользователя root.
–l - отобразить список команд, доступных для выполнения текущему пользователю.
-u, --user=user - выполнить команду (или редактировать файл) от имени или ID
указанного пользователя
Примеры:
sudo su - выполнить команду su, т.е. создать сеанс суперпользователя root. В терминале
строка приглашения получает вид - root@пользователь:/home/пользователь#. То-есть
запускается еще один интерпретатор внутри работающего. В переменных окружения
разница только в содержимом PWD и PATH. В этом случае это PWD=/home/имя
пользователя. Домашней директорией считается директория нашего предыдущего
пользователя, что впрочем очевидно из вида строки приглашения. И это не всегда хорошо и
удобно.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games.
sudo -i - (т.н. вход в режиме логина, “sudo su -” дает тот же результат, если судить по
выводу env). В терминале строка приглашения получает вид - root@пользователь:~#. Но
теперь PWD=/root, PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin, и
появляется переменная XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop.
XDG_DATA_DIRS указывает местоположение конфигурационных файлов xfce4, gnome и
kde. (https://books.google.com.ua/books?
id=OWn5CQAAQBAJ&pg=PA399&lpg=PA399&dq=XDG_DATA_DIRS+
%D1%87%D1%82%D0%BE+%D0%B7%D0%B0+%D0%BF
%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F+
%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD

22
%D0%B8%D1%8F&source=bl&ots=h02WahXaS_&sig=ACfU3U01dPh7eZDwRxqWgJsK0gjw4
_8gOA&hl=ru&sa=X&ved=2ahUKEwjE28jggqLpAhWhlosKHVR6BOQQ6AEwBHoECAkQAQ
#v=onepage&q=XDG_DATA_DIRS%20%D1%87%D1%82%D0%BE
%20%D0%B7%D0%B0%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC
%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%BE%D0%BA
%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&f=false)

https://white55.ru/sudo.html
https://losst.ru/parol-root-v-ubuntu

Полезная иллюстрация прав доступа для всех известных мне Linux систем.

SUID bit
-Есть достаточно много программ и файлов, которые должны принадлежать пользователю
root, и в то же время — простые пользователи должны иметь возможность выполнять его. Для
примера — утилита passwd, которая находится в каталоге /usr/bin/passwd и которая имеет дело
с файлом /etc/passwd, редактировать который может только пользователь root:

# ls -la /etc/passwd //опция -a позволяет отображать скрытые файлы.

-rw-r—r— 1 root root 3256 2012-11-02 11:45 passwd

Для того, что бы дать пользователям возможность менять свои пароли — на файл утилиты
установлен бит SUID:

# ls -l /usr/bin/passwd

-rwsr-xr-x 1 root root 41284 2011-06-24 12:36 /usr/bin/passwd

то же самое - ls -l /usr/bin/sudo

23
SUID даёт возможность на время выполнения файла (запущенного им процесса)
непривелигированному пользователю получить права пользователя — владельца файла, в
данном случае — root.

SGID bit
Бит SGID аналогичен SUID, но устанавливаются права не пользователя файла, а группы —
владельца файла. Так же, все файлы, создаваемые в каталоге с установленным SGID будут
получать идентификатор группы — владельца каталога, а не владельца файла. Новые каталоги,
создаваемые в каталоге с установленным SGID будут его наследовать от каталога-родителя.

Так же, следует учитывать, что SUID установленный, установленный на файл перекрывает
SGID, установленный на каталог.

Что бы найти все файлы и каталоги с установленными SUID и SGID выполните:

# find / -type f -perm -04000 -o -perm -02000 | less


Sticky
sticky bit появился в пятой редакции UNIX в 1974 году для использования в
исполняемый файлах. Он применялся для уменьшения времени загрузки наиболее
часто используемых программ. После закрытия программы код и данные оставались в
памяти, а следующий запуск происходил быстрее. (отсюда и название - бит
закрепления в памяти)

Сегодня sticky bit используется в основном для каталогов, чтобы защитить в них
файлы. В такой каталог может писать ЛЮБОЙ пользователь. Из такой директории
пользователь может удалить только те файлы, владельцем которых он является.
Примером может служить директория /tmp, в которой запись открыта для всех
пользователей, но нежелательно удаление чужих файлов.

https://rtfm.co.ua/suid-sgid-chto-eto-takoe-i-kak-ix-ispolzovat/
https://help.ubuntu.ru/wiki/%D1%81%D1%82%D0%B0%D0%BD
%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%BF
%D1%80%D0%B0%D0%B2%D0%B0_unix

Программы, утилиты и прочее.

RDP

sudo apt-get update


sudo apt-get install xrdp
sudo apt-get install xfce4
echo xfce4-session >~/.xsession
sudo service xrdp restart
6. Редактируем файл /etc/X11/Xwrapper.config , в котором меняем значение
allowed_users=console на allowed_users=anybody:

24
nano /etc/X11/Xwrapper.config
7. Открываем клиент “Подключение к удаленному рабочему столу” на Windows и
подключаемся.

MiniDLNA

Minidlna это программа создающая DLNA-сервер в TCP/IP локальной сети.


MiniDLNA (он же ReadyDLNA) - это небольшой демон,
способный раздавать с NAS или домашнего сервера в локальную
сеть по протоколу UPnP/DLNA различный мультимедиа-
контент: видео, музыку, списки воспроизведения и изображения,
причем как я понял транскодированием он заниматься, увы, не
умеет.

DLNA (англ. Digital Living Network Alliance) — набор стандартов, позволяющих


совместимым устройствам передавать и принимать по домашней сети различный
медиаконтент (изображения, музыку, видео), а также отображать его в режиме реального
времени.
UPnP (англ. Universal Plug and Play — не путать с Plug and Play (PnP) — считается
расширением концепции Plug and Play в направлении сетевого обнаружения между
устройствами. Universal Plug and Play — это набор протоколов и связанных с ними
технологий, которые позволяют устройствам автоматически обнаруживать друг друга.
https://ip-calculator.ru/blog/ask/universal-plug-and-play-upnp-chto-eto-i-gde-ispolzuetsya/
DLNA-сервер это программа, создающая медиа-ресурсы понятные DLNA-клиентам и
транслирующая их в сеть.
В качестве медиа-ресурсов могут выступать файлы видео, музыки или их потоки и файлы
изображений (фотографии), которые могут размещаться как на локальном жёстком диске, так
и в сети, в том числе в интернет. DLNA-сервер может отдавать объектам "как есть" или
осуществлять их транскодирование на лету, приводя их к понятному клиентам формату. Таким
образом транскодирование расширяет возможности DLNA-клиентов по воспроизведению
контента.
В качестве клиента может функционировать как смарт тв, тв приставки, так и программа
плэйер VLC установленная на телефон.

Как это работает:


1. Все общение между медиа сервером и телевизором
происходит по протоколу HTTP
2. Телевизор делает мультикаст рассылку SSDP пакетов
на адрес 239.255.255.250, в которой регистрирует себя как сервис

25
перед лицом медиа серверов.

3. DLNA сервера при виде нового сервиса начинают


обращаться к телевизору напрямую, после пары пакетов
отправляет свою информацию внутри

XML

4. После того, как вы выбрали медиа файл, который


хотите прослушать\посмотреть начинается обмен по TCP, как я
понимаю телевизор начинает кешировать медиа файл.
https://habr.com/ru/post/267149/

Через PPTP некоторые из этих запросов пробегали,


некоторые нет.

26
Установка:
проверяем какими мы располагаем версиями
aptitude search minidlna
c minidlna - lightweight DLNA/UPnP-AV server targeted at embedded systems
// эту я удалил ранее, с сохранением конф. файла
p minidlna:i386 - lightweight DLNA/UPnP-AV server targeted at embedded systems

sudo aptitude install minidlna


[sudo] password for vlad:
The following NEW packages will be installed:
minidlna
0 packages upgraded, 1 newly installed, 0 to remove and 195 not upgraded.
Need to get 142 kB of archives. After unpacking 426 kB will be used.
Get: 1 http://ua.archive.ubuntu.com/ubuntu bionic/universe amd64 minidlna amd64 1.2.1+dfsg-1
[142 kB]
Fetched 142 kB in 4s (40.4 kB/s)
(Reading database ... 254307 files and directories currently installed.)
Preparing to unpack .../minidlna_1.2.1+dfsg-1_amd64.deb ...
Unpacking minidlna (1.2.1+dfsg-1) ...
Setting up minidlna (1.2.1+dfsg-1) ...
Processing triggers for systemd (237-3ubuntu10.38) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
ureadahead will be reprofiled on next reboot

Что такое технология Ureadahead.


- начиная с Karmic Koala в Ubuntu для ускорения загрузки
стала использоваться программа über-readahead или просто
ureadahead.
При первой загрузке программа отслеживает все файлы,
которые ubuntu читает с диска. По окончании процесса запуска
графического окружения, список этих файлов записывается в
специальные файлы (паки) в директории "/var/lib/ureadahead/".
Мне кажется, что они также содержат данные об расположении
отслеживаемых файлов на диске, но точно сказать не могу
(информации о ureadahead очень мало и она разрознена). В
дальнейшем, программа использует эти данные, чтобы заранее
считывать файлы в кэш, тем самым ускоряя запуск ОС. (но вот у
меня она пуста)
https://habr.com/ru/post/85142/

Настройка:
Файл с настройками MiniDLNA находится по пути /etc/minidlna.conf.
Перезапускаем службу:
sudo systemctl restart minidlna

Проверяем, работает ли служба, также смотрим параметры запуска:

systemctl status minidlna

27
● minidlna.service - LSB: minidlna server
Loaded: loaded (/etc/init.d/minidlna; generated)
Active: active (running) since Tue 2020-04-21 16:02:20 EEST; 5min ago
Docs: man:systemd-sysv-generator(8)
Process: 29989 ExecStop=/etc/init.d/minidlna stop (code=exited, status=0/SUCCESS)
Process: 29997 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)
Tasks: 2 (limit: 3536)
CGroup: /system.slice/minidlna.service
└─30008 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -r

Apr 21 16:02:20 ubuntu-vlad systemd[1]: Starting LSB: minidlna server...


Apr 21 16:02:20 ubuntu-vlad systemd[1]: Started LSB: minidlna server.

Проверяем, слушается ли порт:

sudo ss -4lnp | grep minidlna


udp UNCONN 0 0 239.255.255.250:1900 0.0.0.0:* users:
(("minidlnad",pid=30008,fd=6))
udp UNCONN 0 0 192.168.1.7:40169 0.0.0.0:* users:
(("minidlnad",pid=30008,fd=8))
tcp LISTEN 0 16 0.0.0.0:8200 0.0.0.0:* users:
(("minidlnad",pid=30008,fd=7))

ss - команда ss используется для отображения статистики


сокетов.
в нашей ситуации используем следующие флаги:
-4, —ipv4 отображает только сокеты IP версии 4
-l, —listening показать сокеты для прослушивания
-n, —numeric запрет имён служб (?? отсутствие этого
параметра вывод не меняет)
-p, —processes показать процесс с помощью сокета
http://blog.sedicomm.com/2018/03/28/komanda-ss-s-primerami-
otobrazhenie-informatsii-o-seti-sokete-tcp-udp-v-linux/

При указании адреса медиабиблиотеки удобно использовать путь /opt, и по этому пути
собирать символические ссылки на все наши директории с медиаконтентом.
Стало быть приводим часть с описанием медиа директорий в настройках к следующему
виду:
media_dir=V,/opt/medialib/video
media_dir=A,/opt/medialib/audio
media_dir=P,/opt/medialib/pictures
а в папке ./opt/medialib/Video/ даем команду, например, в моем случае:
ln -s '/media/vlad/Medium/HEAP/Doc/Аккумы, зарядка, альтернативные источники/Блог
Natalex/Пельтье/' Пельтье
Символ “ ‘ “ нужно использовать при передаче “сложных” имен утилитам командной
строки, например с кириллическими символами и win. long name
Внимание, в конце conf файла есть параметр #wide_links=no, меняем на yes, иначе VLC
пишет “воспроизвести http xx.xx.xx.xx:xxxx нельзя”
Символические и
жесткие ссылки
это особенность файловой системы Linux, которая позволяет
“размещать” один и тот же файл в нескольких директориях. Это
очень похоже на ярлыки рабочего стола Windows (кстати ярлыки

28
виндоус использует не только на рабочем столе ))), так как файл
на самом деле остается там же где и был, но вы можете на него
сослаться из любого другого места.
Символические ссылки содержат адрес нужного файла в
вашей файловой системе. Когда вы пытаетесь открыть такую
ссылку, то открывается целевой файл или папка. Главное ее
отличие от жестких ссылок в том, что при удалении целевого
файла ссылка останется, но она будет указывать в никуда,
поскольку файла на самом деле больше нет.

Вот основные особенности символических ссылок:

● Могут ссылаться на файлы и каталоги;


● После удаления, перемещения или переименования
файла становятся недействительными;
● Права доступа и номер inode отличаются от исходного
файла;
● При изменении прав доступа для исходного файла,
права на ссылку останутся неизменными;
● Можно ссылаться на другие разделы диска;
● Содержат только имя файла, а не его содержимое.

При выводе команды ls -l в столбе file type указывается буква l.


Жесткие ссылки реализованы на более низком уровне
файловой системы. Файл размещен только в определенном месте
жесткого диска. Но на это место могут ссылаться несколько
ссылок из файловой системы. Каждая из ссылок - это отдельный
файл, но ведут они к одному участку жесткого диска. Файл
можно перемещать между каталогами, и все ссылки останутся
рабочими, поскольку для них неважно имя. Рассмотрим
особенности:
● Работают только в пределах одной файловой системы;
● Нельзя ссылаться на каталоги;
● Имеют ту же информацию inode и набор разрешений
что и у исходного файла;
● Разрешения на ссылку изменяться при изменении
разрешений файла;
● Можно перемещать и переименовывать и даже
удалять файл без вреда ссылке.

Ссылки создаются командой ln:


$ ln опции файл_источник файл_ссылки
Рассмотрим опции утилиты:
● -d - разрешить создавать жесткие ссылки для
директорий суперпользователю;

29
● -f - удалять существующие ссылки;
● -i - спрашивать нужно ли удалять существующие
ссылки;
● -P - создать жесткую ссылку;
● -r - создать символическую ссылку с относительным
путем к файлу;
● -s - создать символическую ссылку.
https://losst.ru/simvolicheskie-i-zhestkie-ssylki-linux
При выводе ls -l во второй колонке показано “количество”
файла, 1-ка это сам файл, 2-ка, значит есть одна жесткая ссылка
и.т.д При удалении жестких ссылок этот счетчик уменьшается
вплоть до 1-цы.
Найти местонахождение всех жестких ссылок можно
командой sudo find / -inum <номер i-node полученный при
выполнении команды ls -i>

Почему так ? Мне просто удобнее нащелкать через менюшку сим. линков в Double
Commander-е чем каждый раз править conf. файл.
При изменения конфигурационного файла нужно перезапускать демона, можно и так -
service minidlna restart

Проверяем доступность для каждой папки, заданной в minidlna.conf, командой:

sudo -u minidlna ls -l папка


или sudo -u minidlna ls -lH папка

Права должны быть такими - для папок - drwxr-xr-x и rwxr-xr-x для файлов -
если не требуется сброс разрешений для всех дочерних файлов и папок.
sudo chmod -R 755 папка

Важно! Указанные выше права должны быть предоставлены всем папкам по


пути к нужной папке. Команду chmod на промежуточные папки можно
использовать без аргумента -R, если не требуется сброс разрешений для всех
дочерних файлов и папок.

sudo -u <user> - запуск программы от имени другого


пользователя.
sudo -u - опция -u (пользователь) заставляет sudo запускать
определенную команду, как не root пользователь. Для
определения uid вместо username, используйте #uid.
ls -l - вывод списка файлов
опция -l (эль маленькая) - позволяет выводить подробный
список файлов, в котором будет отображаться владелец, группа,
дата создания, размер и другие параметры;
ls -lh - то же что предыдущий вариант, но размер файлов
выводится в “нормальном” human readable виде.
ls -H - открывать символические ссылки при рекурсивном
использовании;
https://losst.ru/komanda-ls-linux

30
Скромный мониторчик доступен по адресу : ваш ip:параметр порт из conf файла.
https://fomich0ff.blogspot.com/2012/05/minidlna.html

Мне удобно когда все файлы программки находятся “рядом”, поэтому переносим логи в
/opt, папочку и правим conf.

Я вначале не создал саму папку и файл лога, увидел следующее, несмотря на временное
разрешение писать в папку /opt далее внутрь всем:

Apr 22 12:33:32 ubuntu-vlad systemd[1]: Starting LSB: minidlna server...


Apr 22 12:33:33 ubuntu-vlad minidlna[25332]: [2020/04/22 12:33:33] utils.c:295: warn:
make_dir: cannot create directory '/opt/log'
Apr 22 12:33:33 ubuntu-vlad minidlna[25332]: [2020/04/22 12:33:33] minidlna.c:684: fatal: Log
path not accessible! [/opt/log]
Apr 22 12:33:33 ubuntu-vlad systemd[1]: Started LSB: minidlna server.

В общем, что-бы логи переехали надо просто создать папку /opt/medialib/log/ и в ней создать
файл minidlna.log затем назначить ему группу владельца и владельца - minidlna.

Просмотр лога minidlna, в реальном времени:

tail -f /папка log-а/minidlna.log

tail - удобный
просмотр log-файлов.
$ tail опции файл
По умолчанию утилита выводит десять последних строк из
файла, но ее поведение можно настроить с помощью опций:
● -c - выводить указанное количество байт с конца
файла;
● -f - обновлять информацию по мере появления новых
строк в файле;
● -n - выводить указанное количество строк из конца
файла;
● --pid - используется с опцией -f, позволяет завершить
работу утилиты, когда завершится указанный процесс;
● -q - не выводить имена файлов;
● --retry - повторять попытки открыть файл, если он
недоступен;
● -v - выводить подробную информацию о файле;
В качестве значения параметра -c можно использовать число
с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y. Еще есть одно
замечание по поводу имен файлов. По умолчанию утилита не
отслеживает изменение имен, но вы можете указать что нужно
отслеживать файл по дескриптору, подробнее в примерах.
https://losst.ru/komanda-tail-linux

Возможные проблемы:
1. Если видим в логе: "WARNING: Inotify max_user_watches [8192] is low.", необходимо
увеличить число дескрипторов слежения inotify до 100 000. Для этого в файл /etc/sysctl.conf
добавим строки:

31
#MiniDLNA warning fix
fs.inotify.max_user_watches = 100000

Затем для того, чтобы применить ваши изменения в файле sysctl.conf без перезагрузки
работающей машины в командной строке набираем следующее:
sudo sysctl -p
fs.inotify.max_user_watches = 100000
Видим внесенные нами изменения. Также тут будут показаны ошибки.
можно поступить и так
sudo sh -c 'printf "\n\n#MiniDLNA warning fix\nfs.inotify.max_user_watches = 100000\n" >>
/etc/sysctl.conf && cat /etc/sysctl.conf'
будут ли сохранены изменения после перезагрузки я еще не проверял.

fs.inotify.max_user_watches - что это такое.


Текущее значение находится в
/proc/sys/fs/inotify/max_user_watches.
notify — это подсистема ядра Linux, которая позволяет
получать уведомления о событиях, связанных с файлами и
каталогами файловой системы. Например, открытие
файлов и каталогов для чтения или записи, изменения
атрибутов, перемещение, удаление и т. п.
http://xgu.ru/wiki/inotify
https://www.linux.org.ru/forum/admin/14341646
https://manjaro.ru/manjaro-kde-edition/sbrasyvaetsya-
znachenie-fsinotifymax_user_watches-posle-rebuta.html

директория /opt - есть такое мнение как ее нужно


использовать.
1. Стандарт LSB (Linux Standard Base, LSB — совместный
проект семейства операционных систем, основанных на
Linux (то есть дистрибутивов Linux), при организации Linux
Foundation, целью которого является стандартизация их
внутренней структуры. LSB опирается на существующие
спецификации, такие как POSIX, Single UNIX Specification,
и другие открытые стандарты, при этом расширяя и
дополняя их. )предполагает, что в /opt устанавливаются
все программные пакеты, которые не управляются
пакетным менеджером. (но наш minidlna им вполне
управляется).
2. Обычно в него ставятся проприетарные пакеты,
например VirtualBox (который с поддержкой usb).
3. В общих чертах, каталог / opt зарезервирован для всех
пакетов программного обеспечения и надстроек,
которые не являются частью установки по
умолчанию.

2. Почему телевизор Самсунг «теряет» minidlna сервер.


Проблема:

32
— регулярно сталкиваемся с тем, что хотим посмотреть это самое кино, включаем
телевизор… и не имеем в списке SOURCE или же в интерфейсе самого AllShare своего
сервера.
После перезапуска minidlna телевизор сервер сразу находит.
Minidlna сервер в процеcсе работы слушает свой порт, и изредка выдает в эфир, что он тут
есть. А телевизор включается и почему-то ничего не опрашивает насчет того, а есть ли тут кто-
то.
Может и есть более правильные решения, но можно в конфиге minidlna (по умолчанию в
федоре /etc/minidlna.conf) поставить параметр
notify_interval=30

3. После перезапуска системы minidlna сервер не видит папки и файлы представленные в


medialib в виде символических ссылок.
Причина - скорее всего это происходит по-тому, что файлы реально расположены на win
диске на который нет записи в etc/fstab, а значит его содержимое становится доступным только
после первого обращения к диску…..
помогает рестарт сервиса

При появлении ошибок в каталоге, необходимо выполнить повторное сканирование файлов.

Для этого удалим базу Minidlna и перезапустим службу:


sudo rm /var/lib/minidlna/files.db
sudo systemctl restart minidlna

Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ
запуска: "-R" в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование
большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку
системы.
Полное формирование каталога может занять несколько минут. Сканирование папок
выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в
конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с
редко воспроизводимым контентом имеет смысл размещать в конфиге последними.

Запуск демона - service minidlna restart

33
34