Ответы пользователя по тегу Linux
  • Возможно ли в TrueNAS запретить по протоколу SMB изменять или удалять файлы в папке,и оставить только создание файлов?

    hint000
    @hint000
    у админа три руки
    Проходили подобную блажь. Даже на NTFS, где штатные настройки прав шире, чем на *NIX-овых системах. Проведём эксперимент. Открываете со своего рабочего стола какой-нибудь *.doc или *.xls (можно *.docx или *.xlsx) жмёте "Сохранить как...", находите вашу шару с указанными ограничениями. И не можете сохранить. Почему? Это же создание нового файла на шаре? Должно работать, но не работает. Проверяем: пробуем с рабочего стола скопировать файл на шару - копируется без проблем. Ещё проверяем: пытаемся заархивировать файлы прямо на шаре, пытаемся создать на шаре бэкапы не самописным скриптом, а при помощи какого-то популярного ПО для резервного копирования. Во многих случаях обламываемся. Потому что все эти Word'ы, Excel'и, архиваторы, и куча другого прикладного ПО не подозревает о странном правиле "создавать можно, редактировать нельзя". Они сперва создают пустой файл, а потом пытаются записывать в него. В результате на шаре остаются именно пустые файлы (с правильным именем, но размером 0 байт). Создать-то пустой файл можно. Записать в него хоть что-то - это уже редактирование, это нельзя. В лучшем случае вы будете каждый день объяснять пользователям, что такие вот правила - скопировать файл Проводником (или FAR'ом, Total'ом) можно, а сохранить из большинства программ нельзя. Дополнительное действие пользователям - сначала сохранить на своём ПК, затем скопировать на шару. Пользователи, которые кидают на шару файлы не каждый день, будут забывать и каждый раз снова требовать объяснений. В худшем случае директор или главный бухгалтер в какой-то момент не только забудут, но и не заметят, что файл не сохранился, и будет скандал насчёт потери важнейшего файла.

    Что касается *NIX-ообразных систем, там штатно даже и не предусмотрено разделение на "создание" и "редактирование", там это одно и то же.
    Это можно решить другими методами, но выбор метода зависит от постановки исходной задачи. Например, для тех же резервных копий запрет редактирования действительно важен, но тут и хорошие варианты решения давно известны.
    Ответ написан
    Комментировать
  • Проброс портов на виртуальную машину KVM. Что не так?

    hint000
    @hint000
    у админа три руки
    А почему iptables не пробрасывает порт?
    Давайте по аналогии.
    spoiler
    (Да, меня хлебом не кормите, дайте приделать дверцу к котёнку).
    Например, у вас есть ПК, есть провайдер, предоставляющий доступ в интернет, и есть роутер между провайдером и вашим ПК. Вы спрашиваете: "А почему провайдер не может пробросить порт на мой ПК?"
    Потому что провайдер не видит ваш ПК и ничего о нём не знает,. Зато на роутере вы можете пробросить порт на ПК.
    В вашей схеме: ПК - это ваша виртуалка; провайдер - это ваш хост; роутер - это сетевая часть гипервизора qemu. Таким образом, пробросить порт в режиме сети "user" вы можете только средствами гипервизора, что вам и описал zlo1 в первом комментарии.

    сервер имеет статичный белый ip и подключен напрямую без маршрутизаторов
    На сервере только один физический сетевой интерфейс? Очень легко настраивается, когда на сервере есть WAN и LAN, тогда бридж поднимается на LAN и на этот бридж цепляются виртуальные машины.

    Вот не буду врать, я не пробовал руками поднимать бридж без привязки к физическому NIC (не было такой задачи), но по идее можно создать tap-интерфейс и навесить бридж на него. Уже с tap можно будет работать средствами хоста, а не гипервизора. Только надо сначала разрешить ip-forward, чтобы между WAN и tap в принципе могли летать пакеты. Потом разрулить маршруты между хостом и гостем (с обеих сторон), и только после этого смотреть на iptables (теперь сможете пробросить порт).
    Короче, да, мост подходит, должен подходить. :)
    Ответ написан
    Комментировать
  • Возможно ли настроить OpenVPN сервер и PPTP client одновременно?

    hint000
    @hint000
    у админа три руки
    Вообще без проблем.
    У меня есть несколько хостов с одним из двух вариантов:
    a) (OpenVPN-сервер + pptp-сервер + pptp-клиент),
    b) (OpenVPN-клиент + pptp-сервер + pptp-клиент).

    Некоторые заморочки возникнут, если OpenVPN и pptp пытаться поднять между одними и теми же двумя хостами. OpenVPN капризно не хочет поднимать свой маршрут в локальную сеть, если видит, что уже существует другой маршрут (например, через pptp) в ту же самую сеть. В вашем случае таких заморочек не будет.
    Ответ написан
    Комментировать
  • Как в Linux найти файлы одинакового размера?

    hint000
    @hint000
    у админа три руки
    Нужно получить список всех файлов с одинаковым размером. Чтобы потом уже вручную удалить дупликаты.
    Вы можете в несколько кликов искать и удалять дубликаты файлов, используя GUI-утилиту под названием FSlint. Находит не просто совпадение размера, а именно совпадение и размера, и содержимого. Имена файлов при этом могут быть разные. Просто добавляете несколько папок, по которым нужно искать дубликаты, потом среди найденных выделяете те, которые хотите удалить и удаляете. Т.е. вручную можно выбирать в какой из папок файл оставить, а в какой удалить. Можно все дубликаты оставить, можно все удалить (!).
    Утилита имеет и другие функции для поиска разных корявостей и неоптимальностей в папках (имена с "плохими" символами, пустые папки и т.д.)

    Есть ещё утилита командной строки fdupes, которая тоже ищет дубликаты.
    Ответ написан
    2 комментария
  • Почему Kubuntu и другие дистрибутивы называет стоковые папки кириллицей?

    hint000
    @hint000
    у админа три руки
    Это не папки, а сивольные ссылки на папки. Сами папки латиницей. Desktop, Documents, Downloads, Music, Pictures, Videos.
    $ cat ~/.config/user-dirs.dirs
    # This file is written by xdg-user-dirs-update
    # If you want to change or add directories, just edit the line you're
    # interested in. All local changes will be retained on the next run.
    # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
    # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
    # absolute path. No other format is supported.
    # 
    XDG_DESKTOP_DIR="$HOME/Desktop"
    XDG_DOWNLOAD_DIR="$HOME/Downloads"
    XDG_TEMPLATES_DIR="$HOME/Templates"
    XDG_PUBLICSHARE_DIR="$HOME/Public"
    XDG_DOCUMENTS_DIR="$HOME/Documents"
    XDG_MUSIC_DIR="$HOME/Music"
    XDG_PICTURES_DIR="$HOME/Pictures"
    XDG_VIDEOS_DIR="$HOME/Videos"

    Откуда это всё?:
    Есть такой стандарт.
    https://specifications.freedesktop.org/basedir-spe...
    https://ru.wikipedia.org/wiki/Freedesktop.org
    Ответ написан
  • Почему тумблер интернета на Ubuntu неактивен?

    hint000
    @hint000
    у админа три руки
    Для начала покажите
    ip a s enp3s0
    ls /etc/netplan
    sudo cat /etc/netplan/*

    В порядке метода научного тыка, если первая команда показывает state DOWN, то:
    sudo ip l set enp3s0 up
    Если же state UP, но нет назначенного IP-адреса, либо только адрес link-local (169.254.x.x), значит проблема с DHCP.
    Ответ написан
    7 комментариев
  • Как правильно запретить выход на "серые" сети через eth0?

    hint000
    @hint000
    у админа три руки
    там сверху вниз -
    Accept
    проброс портов
    masquerade
    проброс портов и masquerade в таблице NAT, а цепочка FORWARD в таблице FILTER. Нет никакой разницы, заполните вы сперва NAT, затем FILTER или сперва FILTER, затем NAT.
    Имеет значение только порядок правил в пределах каждой цепочки.
    Таргет Accept доступен в любых цепочках таблицы FILTER и в любых цепочках таблицы NAT, так что совершенно бесполезна информация о том, что у вас сначала Accept - это никак не помогает определить, к чему относится ваш Accept.

    Но можно с уверенностью ответить на последний вопрос:
    и в самый низ я пихаю эти 3 правила, мы же дропаем FORWARD этих пакетов ? или их надо пихать до правила masquerade ?
    Никакой разницы между этими вариантами не будет, они эквивалентны. Либо оба эти варианта будут работать, либо оба варианта работать не будут. Зависит от того, что у вас раньше в цепочке FORWARD.
    Ответ написан
    1 комментарий
  • Как закрыть сайты на хостинге от индексации ботами?

    hint000
    @hint000
    у админа три руки
    Только от честных ботов. Вы им в robots.txt говорите, что им сюда не следует ходить и они не ходят.
    Но они не обязаны делать так, как им велено в robots.txt.
    А запретить только ботам вы сможете не раньше, чем научитесь отличать бота от человека. А если разработчик захочет сделать бота, неотличимого от человека?

    Ну если контент на сайте не общедоступный, а только для зарегистрированных пользователей - тогда другое дело, хоть по паспорту можно регистрировать живых пользователей и боты уже не пройдут (у них нет паспортов).
    Ответ написан
  • Как реализовать взаимодействие виртуальной ОС с переферией для прошивки?

    hint000
    @hint000
    у админа три руки
    Пробрасывать USB-устройство в виртуальную машину.
    Подключаете устройство к хосту, прописываете в настройках виртуальной машины, что такое-то устройство нужно отдать под управление виртуальной машины. Когда стартуете виртуалку, то устройство перестанет быть доступно на хосте и будет доступно только из виртуалки. "Горячее подключение" (т.е. без перезапуска виртуалки) скорее всего не будет работать, только "холодное".

    P.S. надеюсь, в качестве гипервизора вы используете Qemu-KVM, а не богомерзкий VB.

    P.P.S. мне-то на практике приходилось пробрасывать только аппаратный USB-ключ,
    а вот есть человек Денис _______________ - он собаку съел на пробросе в виртуалку даже видеокарты (и статья на Хабре есть https://habr.com/ru/articles/575654/ https://habr.com/ru/articles/448312/ ). Это к тому, что при необходимости можно не только USB-устройства пробросить, но и PCI-устройства.
    Ответ написан
    1 комментарий
  • Не отображаются файлы на рабочем столе, хотя в папке они есть?

    hint000
    @hint000
    у админа три руки
    Попробуйте в настройках автозапуска приложений (при логине) добавить nautilus --no-default-window
    Такое чувство, что у вас ни один файловый менеджер не привязан к управлению рабочим столом, и остались только функции оконного менеджера.
    Ответ написан
    Комментировать
  • Как заставить опенВПН отключаться при закрытии терминала?

    hint000
    @hint000
    у админа три руки
    В ярлык:
    Exec=sh -c "echo $$ | tee /tmp/qwe123.pid; su -l qwe-internet -c 'DISPLAY=:0 openvpn --config /opt/123.ovpn'"

    В crontab добавить:
    * * * * * ps -q $(cat /tmp/qwe123.pid) >/dev/null 2>&1 || команда-на-отключение-ovpn

    В пределах одной минуты после закрывания окна (среднестатистически через полминуты) произойдёт отключение.
    Принцип: тупо пишем номер процесса в файл, а кроном отлавливаем наличие процесса с таким номером.
    Ответ написан
  • Lvm versus fsck - как решить проблему курицы и яйца?

    hint000
    @hint000
    у админа три руки
    Ответ хоть и никак не относится к lvm, но...
    юзер жмет ресет во время работы по дурной виндовой привычке
    / или /usr не восстанавливаются, полэкрана красным, сервисы не стартовали
    Митигирую такой сценарий выносом из / отдельных ФС /var и /tmp (про /home можно не говорить, это у всех норма его выносить, ну и тем более никакого swap-файла на / ). В сам / при повседневной работе практически ничего не пишется, только при редких ручных изменениях /etc и при обновлении или установке пакетов. Так что в момент, когда Штирлиц бьёт Холтоффа бутылкой по башке, повредиться может в основном /var или /home, но никак не / (ведь Штирлиц обычно не устанавливает обновления при беседе с Холтоффом).
    Практикую этот лайфхак уже лет семь, полёт нормальный.
    spoiler
    65b2852c9562e042532647.png
    Ответ написан
    3 комментария
  • Как создать скрипт для выключения нескольких пк?

    hint000
    @hint000
    у админа три руки
    Ответ написан
    Комментировать
  • Как вырезать слова из вывода?

    hint000
    @hint000
    у админа три руки
    sshd -T | grep -i ‘^mac” | xargs -n1 echo | grep -v etm | xargs echo

    Исходную строку разбили на много строк, по одному слову на строку, погрепали ненужное, снова собрали из отдельных слов одну строку.
    Это ленивый (и не универсальный) вариант, если не хотите изучать sed или awk, как советует pfg21 (а он плохого не посоветует).
    Ответ написан
    2 комментария
  • Почему во freepbx само ставится ПО?

    hint000
    @hint000
    у админа три руки
    Например, атоматически устанавливались обновления, а у какого-то из установленных пакетов изменились зависимости, что-то добавилось в зависимостях и поэтому это что-то автоматически установилось, чтобы не препятствовать обновлению. Но такое редко бывает и haproxy сам по себе не мелочь какая-то, чтобы внезапно появиться в чьих-то зависимостях. Но проверить легко - отдаёте команду на удаление haproxy (удаление начинается только после подтверждения [Y/n], так что можно не подтверждать и ничего фактически не удалять):sudo apt remove haproxy
    ...и смотрите список пакетов к удалению после строки The following packages will be REMOVED:
    Ответ написан
    Комментировать
  • Как выяснить, какая служба/программа/скрипт генерирует SNMP-запросы во вне?

    hint000
    @hint000
    у админа три руки
    sudo netstat -upnc | grep ":161 \|:162 "
    161\UDP и 162\UDP - это порты, которые использует SNMP
    здесь sudo требуется, чтобы увидеть информацию о процессах, без sudo команда показывает остальную информацию, кроме номеров и имён процессов.
    -с нужно для постоянного обновления, т.к. на момент запуска может не быть трафика по указанным портам; прерываете команду, когда заметите полезный вывод.
    пробел после 161 и 162 нужен, чтобы не было мусора в выводе.
    Ответ написан
    Комментировать
  • Как сделать образ флешки (ext2) в ISO формате?

    hint000
    @hint000
    у админа три руки
    ISO имеет свою собственную файловую систему. Нельзя сделать образ в ISO, чтобы вместе с этим сохранилась файловая система Ext2. Разве что снять образ с Ext2, а потом этот единственный файл образа ещё и упаковать внутрь ISO, но это совершенно бессмысленный вариант.
    Поэтому вам правильно пишут в других ответах. Забудьте слово ISO, оно здесь ни к чему. Просто образ диска. В "сыром формате" (raw) образ можно снять командой dd. После этого можно командой qemu-img преобразовать raw в формат одного из гипервизоров, либо попробовать скормить гипервизору прямо raw, если гипервизор умный.
    Ответ написан
    9 комментариев
  • Как удаленно установить и запустить OS в режиме lite?

    hint000
    @hint000
    у админа три руки
    Я хочу поднять кластер на компьютерах в учебном классе для расчетов гидродинамики на openfoam. Точнее мы с преподавателем.
    Надо было с этого начинать. :)
    Я не занимался системным администрированием и по этому плохо разбираюсь в необходимых технологиях
    Тогда лучший вариант для вас - это самый простой в реализации вариант. У него есть недостатки, но он на самом деле простой.
    1. Берёте флешку и устанавливаете Linux на флешку. Т.е. не в режиме Live-USB, а делаете полноценную установку, только вместо диска выбираете пустую флешку.
    2. Устанавливаете туда нужную программу и прописываете её запуск после загрузки системы.
    3. Берёте ещё (N-1) флешек и клонируете с первой флешки. Загружаете с этих N флешек N компьютеров. По окончании работы забираете флешки с собой.
    Ответ написан
    Комментировать
  • Комп виснет наглухо, в логах есть следы, кто может разобрать, в чём причина?

    hint000
    @hint000
    у админа три руки
    и потом "многоточие"
    Не исключено, что за многоточием скрывается самое интересное. Т.е. что-то могло писаться в лог, но кэш не удалось сбросить на диск. В таком случае было бы здорово настроить вывод rsyslog по сети на другой линуксовый хост (параллельно с записью в локальный файл) - есть шанс, что в переданном логе сохранится больше интересного.

    А ещё я бы погонял Memtest86 непрерывно проходов пять или больше.
    А ещё в конфигах включите комбинации с клавишей SysRq и после очередного зависания проверьте, реагирует ли на магическую последовательность R E I S U B.
    Ответ написан
    Комментировать
  • Как подключить к интернету виртуальную машину в Linux?

    hint000
    @hint000
    у админа три руки
    У вас из сильно устаревших инструкций. Такой синтаксис (-net) уже не следует использовать. Нужно примерно так:
    -netdev user,id=FooBar-099999 -device virtio-net-pci,netdev=FooBar-099999
    (здесь "FooBar-099999" - это произвольный идентификатор). Т.е. опция -net user заменена на -netdev user, а опция -net nic заменена на универсальную опцию -device (которая в qemu относится не только к сети, но и к любым виртуальным устройствам).
    Но вы точно хотите в режиме -netdev user (-net user)? На каждый чих руками пробрасывать порт и делать холодный перезапуск виртуальной машины?
    Лучше сразу привыкать настраивать полноценную сеть через бридж. Со стороны qemu это выглядит примерно так:
    -netdev bridge,id=Foo-09,br=virbr0 -device virtio-net-pci,netdev=Foo-09,mac=52:54:00:00:99:99
    ...но требует предварительного поднятия бриджа на хосте, либо прописыванием в конфиг сети, либо командами из пакета bridge-utils. Здесь virbr0 - это имя предварительно созданного бриджа.
    Ответ написан
    3 комментария