Академический Документы
Профессиональный Документы
Культура Документы
Допиливаем Ubuntu
Допиливаем Ubuntu
1
Установка Gnome в Ubuntu 16.04. 1
Настройка раздела подкачки Swap. 1
Убираем из автозагрузки лишние программы. 2
Каталоги *.d 2
Если у Вас оперативной памяти больше 2-х гигабайт, можно настроить параметр Swappiness:
Swappiness - это параметр, контролирующий тенденцию ядра перемещать процессы из
физической памяти в swap раздел.
По умолчанию стоит 60, что значит, если ваша оперативная память загружена на 40
процентов, то включается swap раздел.
Думаю никому объяснять не нужно, что жесткий диск работает намного медленнее, чем
оперативная память.
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
Каталоги *.d
Каталоги, название которых заканчивается на .d, встречаются всё чаще и чаще. Каждый
каталог представляет собой конфигурационный файл, разделенный на несколько файлов .
Таким образом, например, все файлы в /etc/apt/apt.conf.d/ это инструкции, настраивающие APT.
APT применяет их в алфавитном порядке, поэтому более поздняя инструкция может изменять
параметры, установленные предшествующим ей инструкциями.
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).
Репозитории.
3
программного обеспечения и даже для обновления всей операционной
системы.
Что такое apt-cache?
Инструмент командной строки apt-cache используется для поиска
по кешу программного пакета apt. Говоря простыми словами, этот
инструмент используется для поиска пакетов программного
обеспечения, сбора информации о пакетах, а также для поиска готовых
для установки пакетов в системах на базе Debian или Ubuntu.
И каждый раз обновляем список доступных пакетов, после подключения нового репа:
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:
6
Соответственно мы выводим на экран строки начинающиеся
с http, а значит только адреса репозиториев, что и является их
названием.
https://habr.com/ru/post/229501/
https://lyalyuev.info/2016/07/05/howto-ispol-zovanie-komandy-
grep-v-linux-primery/
sort - догадайтесь )
sort -u - Это утилита для вывода текстовых строк в
определенном порядке. $ sort опции файл
● -b - не учитывать пробелы
● -d - использовать для сортировки только буквы и цифры
● -i - сортировать только по ASCII символах
● -n - сортировка строк linux по числовому значению
● -r - сортировать в обратном порядке
● -с - проверить был ли отсортирован файл
● -o - вывести результат в файл
● -u - игнорировать повторяющиеся строки
● -m - объединение ранее отсортированных файлов
● -k - указать поле по которому нужно сортировать строки,
если не задано, сортировка выполняется по всей строке.
● -f - использовать в качестве разделителя полей ваш символ
вместо пробела.
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. Если у
команды есть персональный архив, то вы увидите соответствующий
раздел на странице:
8
Здесь нам важен пункт Maintainer, идем по этой ссылке. Находим Personal package archive:
9
При подключении репозитория, защищенного цифровой подписью
Вам нужно скачать (обычно с ресурса, рассказывающего про этот
репозиторий, или с сервера ключей, что является более
предпочтительным в любом случае) открытый ключ и добавить его в
систему. Иногда для скачивания предоставляется доступный для
установки пакет, который в свою очередь при своей установке сам
прописывает ключ репозитория. Если вы скачиваете ключ с сайта
репозитория, то вы получите обычный файл с расширением .key, .gpg
или другим. Добавить его в систему можно так:
sudo apt-key add repo.key
Где repo.key — полученный вами ключ репозитория.
Первый пункт.
Второй пункт нужен для того, чтоб система установки пакетов не ругалась на наличие
ненадёжных источников и именно для него нам нужно было попасть на страницу с описанием
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
11
Полностью удалить PPA из системы можно командой:
sudo ppa-purge ppa:репозиторий/ppa
aptitude
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
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
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
псевдоним :
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
2. /run/systemd/system
3. /usr/lib/systemd/system
17
пользователя> и /usr/lib/systemd/<имя пользователя>. Упомянутые директории
имеют аналогичный приоритет.
Вы можете получить информацию об этих юнит-файлах с помощью команды
systemctl. Если вы хотите увидеть список всех юнит-файлов, установленных в
вашей системе, выполните следующую команду:
systemctl list-unit-files
- enabled - в автозагрузке,
- disabled - автозагрузка отключена,
- masked - служба скрыта
- static - значит что служба в автозагрузке, но вы не можете ее отключить.
2. /run/systemd/system
3. /usr/lib/systemd/system
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
Права доступа.
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/
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:
Для того, что бы дать пользователям возможность менять свои пароли — на файл утилиты
установлен бит SUID:
# ls -l /usr/bin/passwd
то же самое - ls -l /usr/bin/sudo
23
SUID даёт возможность на время выполнения файла (запущенного им процесса)
непривелигированному пользователю получить права пользователя — владельца файла, в
данном случае — root.
SGID bit
Бит SGID аналогичен SUID, но устанавливаются права не пользователя файла, а группы —
владельца файла. Так же, все файлы, создаваемые в каталоге с установленным SGID будут
получать идентификатор группы — владельца каталога, а не владельца файла. Новые каталоги,
создаваемые в каталоге с установленным SGID будут его наследовать от каталога-родителя.
Так же, следует учитывать, что SUID установленный, установленный на файл перекрывает
SGID, установленный на каталог.
Сегодня 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
24
nano /etc/X11/Xwrapper.config
7. Открываем клиент “Подключение к удаленному рабочему столу” на Windows и
подключаемся.
MiniDLNA
25
перед лицом медиа серверов.
XML
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
Настройка:
Файл с настройками MiniDLNA находится по пути /etc/minidlna.conf.
Перезапускаем службу:
sudo systemctl restart 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
При указании адреса медиабиблиотеки удобно использовать путь /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
виндоус использует не только на рабочем столе ))), так как файл
на самом деле остается там же где и был, но вы можете на него
сослаться из любого другого места.
Символические ссылки содержат адрес нужного файла в
вашей файловой системе. Когда вы пытаетесь открыть такую
ссылку, то открывается целевой файл или папка. Главное ее
отличие от жестких ссылок в том, что при удалении целевого
файла ссылка останется, но она будет указывать в никуда,
поскольку файла на самом деле больше нет.
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
Права должны быть такими - для папок - drwxr-xr-x и rwxr-xr-x для файлов -
если не требуется сброс разрешений для всех дочерних файлов и папок.
sudo chmod -R 755 папка
30
Скромный мониторчик доступен по адресу : ваш ip:параметр порт из conf файла.
https://fomich0ff.blogspot.com/2012/05/minidlna.html
Мне удобно когда все файлы программки находятся “рядом”, поэтому переносим логи в
/opt, папочку и правим conf.
Я вначале не создал саму папку и файл лога, увидел следующее, несмотря на временное
разрешение писать в папку /opt далее внутрь всем:
В общем, что-бы логи переехали надо просто создать папку /opt/medialib/log/ и в ней создать
файл minidlna.log затем назначить ему группу владельца и владельца - minidlna.
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'
будут ли сохранены изменения после перезагрузки я еще не проверял.
32
— регулярно сталкиваемся с тем, что хотим посмотреть это самое кино, включаем
телевизор… и не имеем в списке SOURCE или же в интерфейсе самого AllShare своего
сервера.
После перезапуска minidlna телевизор сервер сразу находит.
Minidlna сервер в процеcсе работы слушает свой порт, и изредка выдает в эфир, что он тут
есть. А телевизор включается и почему-то ничего не опрашивает насчет того, а есть ли тут кто-
то.
Может и есть более правильные решения, но можно в конфиге minidlna (по умолчанию в
федоре /etc/minidlna.conf) поставить параметр
notify_interval=30
Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ
запуска: "-R" в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование
большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку
системы.
Полное формирование каталога может занять несколько минут. Сканирование папок
выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в
конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с
редко воспроизводимым контентом имеет смысл размещать в конфиге последними.
33
34