LINUX.ORG.RU

Восстанавливаем индексацию KDE Baloo для каталогов на внешних носителях

 , , , ,


1

1

KDE Baloo не индексирует файлы, которые расположены на других файловых системах за пределами домашнего каталога, в частности, если каталоги Загрузки, Видео и Музыка находятся на внешнем жёстком диске, а из домашнего каталога на них указывают символические ссылки (симлинки). Предлагаемое решение состоит в том, чтобы заменить символические ссылки на Mount-mapping. Баш-портянка, приведённая ниже, автоматизирует этот процесс.

Вступление

Автор метода — ChatGPT, исправлено мной.

Диск DATA должен быть примонтирован в fstab.

В первую очередь — нужно заменить симлинки, которые вы делали, на обычные пустые папки Загрузки, Видео и Музыка.

Выдохнули?? — ПРИСТУПИМ!

Создание сценария

Создаём файл /usr/local/bin/bind-mount-downloads.sh следующего содержания:

#!/usr/bin/env bash


USER_NAME="$PAM_USER"
USER_ID=$(id -u "$USER_NAME")

# Фильтр: монтировать только если UID >= 1000 (обычные пользователи)
if [ "$USER_ID" -lt 1000 ]; then
    echo "Skip bind mount for system user UID=$USER_ID"
    exit 0
fi


# Получаем домашнюю папку пользователя по UID
HOME_DIR=$(getent passwd "$USER_ID" | cut -d: -f6)

# Список пар: Исходник → Назначение (только имя папки)
FOLDERS=("Загрузки:Загрузки" "Музыка:Музыка" "Видео:Видео")

# Корень исходных папок
SOURCE_ROOT="/run/media/DATA"

for entry in "${FOLDERS[@]}"; do
    SRC_NAME="${entry%%:*}"
    DEST_NAME="${entry##*:}"

    SOURCE="$SOURCE_ROOT/$SRC_NAME"
    TARGET="$HOME_DIR/$DEST_NAME"


    # Пропускаем итерацию, если источник не существует
    if [ ! -d "$SOURCE" ]; then
        continue
    fi

    # Пропускаем итерацию, если цель не существует
    if [ ! -d "$TARGET" ]; then
        continue
    fi

    # Эти папки ОБЩИЕ ДЛЯ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ.
    # Восстанавливаем права
    find "$SOURCE" -type d -exec chmod 777 {} +
    find "$SOURCE" -type f -exec chmod 666 {} +

    sync     # Записать дисковый кэш

    # Проверяем mountpoint
    mountpoint -q "$TARGET" && continue

    echo "Bind-mount: $SOURCE -> $TARGET"
    mount --bind "$SOURCE" "$TARGET"
done

sudo chmod +x /usr/local/bin/bind-mount-downloads.sh

Подключение PAM-модуля

Ищем файл

  1. /etc/pam.d/common-session ИЛИ
  2. /etc/pam.d/common-session-noninteractive (На некоторых дистрах) ИЛИ
  3. /etc/pam.d/sshd ИЛИ
  4. /etc/pam.d/system-login (На Арче и подобных)

В конец этого файла добавляем строку:

session optional pam_exec.so /usr/local/bin/bind-mount-downloads.sh

ПОЗДРАВЛЯЮ!!! ВЫ РАСКУКОЖИЛИ КДЕ-БАЛУ!!!



Проверено: hobbit ()
Последнее исправление: Set440 (всего исправлений: 13)

Ещё один пример того, что симлинки способны сломать любую программу.

kaldeon
()

Восстанавливаем нормальную Индексацию KDE Baloo для Симлинков

Сначала оговорюсь, что мы это делаем не для симлинков

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

Как я понял, постановка задачи следующая:

KDE Baloo не индексирует файлы, которые расположены на других файловых системах за пределами домашнего каталога, в частности, если каталоги Загрузки, Видео и Музыка находятся на внешнем жёстком диске, а из домашнего каталога на них указывают символические ссылки (симлинки). Предлагаемое решение состоит в том, чтобы заменить символические ссылки на Mount-mapping. Баш-портянка, приведённая ниже, автоматизирует этот процесс.

Правильно сформулировал?

Ну и заголовок поправить, например:

Восстанавливаем индексацию KDE Baloo для каталогов на внешних носителях

Или

Восстанавливаем индексацию KDE Baloo для каталогов, привязанных симлинками

P.S. Кстати, на моём домашнем ПК все основные файлопомойки пристёгнуты как раз симлинками. Наверное, хорошо, что я не пользуюсь Baloo :)))

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Спасибо большое!!!

Отрицание заголовка связанно с тем, что АВТОР ЗЛОУПОТРЕБЛЯЛ ГАЛЛЮЦЫНОДЖЕНЫ^W^W не всегда дружит с головой, вотъ.

Скопировал твой вариант, мне нравится.

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

Set440
() автор топика
Ответ на: комментарий от hobbit

Восстанавливаем нормальную Индексацию KDE Baloo для Симлинков

Сначала оговорюсь, что мы это делаем не для симлинков

это была провокация на срачъ. шучу.

Set440
() автор топика

КДЕ-БАЛУ

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

CrX ★★★★★
()
Ответ на: комментарий от Set440

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

hobbit ★★★★★
()

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

Dr64h ★★★★
()
Ответ на: комментарий от Dr64h

Ты знаешь, я ведь пользуюсь смузи-софтом (Yakuake + Fish) и перетаскиваю каталоги в консоль мышью. … Или нажимаю стрелку вправо по авто-дополнению.

Я не считаю свой метод идеальным, просто считаю его «хорошим».

Set440
() автор топика

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

legolegs ★★★★★
()

первым делом все кедерасты (в тч и я) этого увольня балу отрубают. он пережиток старых дней, когда диски были медленными, и система грузилась по 5 минут… сейчас он только ресурс ssd потребляет. хотя это мало относительно 50 гигов, что записывают телеграм/браузер(ютуб) ежедневно

rtxtxtrx ★★★
()
Ответ на: комментарий от legolegs

Я попытаюсь объяснить, хоть и в субботу выпил немного.

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

Тоесть, задать можно прямо /mnt/DATA/Музыка/ , но если на музыку ведёт симлинк в домашнем каталоге — это чёрная метка, и она всё сломает.

Set440
() автор топика
Ответ на: комментарий от rtxtxtrx

Балу позволяет на файло/каталоги вешать текстовые метки, и я задал 7 цветных кругов-эмоджи.

Тоесть, благодаря балу — я вешаю на файло маковские цветные метки, так-то.

Set440
() автор топика
Ответ на: комментарий от rtxtxtrx

у меня текстовый индекс весит гдет 800мег

Просто надо отключить идиотский индекс содержимого и скрытых каталогов, всего-навсего.

Я не собираюсь спорить и разводить срачъ, просто мне кажется «истина где-то посередине» — компромиссная.

Set440
() автор топика
Ответ на: комментарий от rtxtxtrx

только что чекнул — индекс 147 мег

Set440
() автор топика
Ответ на: комментарий от Set440

Ну тут еще есть всякие непредвиденные ситуации с этим балу, когда он постоянно что-то индексирует без необходимости

https://bugs.kde.org/show_bug.cgi?id=471289

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

rtxtxtrx ★★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

Если эти детские/смузи метки не нужны, то твоё решение вполне разумное, так-как дельфин умеет искать по тексту файлы с отключённым балу.

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

Балу ужасно дубовая программа, но после 20 пинков — кажется работает нормально…

Set440
() автор топика

Диск DATA должен быть примонтирован в fstab.

Что тогда мешает

$ tail -n3 /etc/fstab
/mnt/data/Downloads /home/Set440/Downloads none defaults,bind 0 0
/mnt/data/Music /home/Set440/Music none defaults,bind 0 0
/mnt/data/Video /home/Set440/Video none defaults,bind 0 0

?

mogwai ★★★★★
()
Последнее исправление: mogwai (всего исправлений: 1)
Ответ на: комментарий от mogwai

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

Плюс — он расширяемый, достаточно просто указать «фолдер-нэйм».

Этот способ, также фиксит права этих расшаренных папок, и ещё он безопасен — нет какой-то папки — скип.

Если допустим прописывать статикой — фстаб очень сильно опухнет.

Set440
() автор топика
Ответ на: комментарий от Set440

Если допустим прописывать статикой — фстаб очень сильно опухнет

У тебя на локалхосте сотня пользователей которым надо одну общую ~/Downloads?

Плюс — он расширяемый, достаточно просто указать «фолдер-нэйм».

Юзернейм не нагуглил как каталог добавить в индекс?

нет какой-то папки — скип.

man autofs

Этот способ, также фиксит права этих расшаренных папок

Не фиксит. Права назначить корректно надо просто. google://linux+facl

Мой способ —

высер нейронки на запрос с криво описанной задачей.

mogwai ★★★★★
()
Ответ на: комментарий от mogwai

Юзернейм не нагуглил как каталог добавить в индекс?

Я уже отвечал: если на каталоги указывают симлинки, и их обнаружит балу — всё пропало.

У тебя на локалхосте сотня пользователей которым надо одну общую ~/Downloads?

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

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

высер нейронки на запрос с криво описанной задачей.

В котором я поправил 3/4. Так что способ — мой.

У вас своя религия, у меня своя — мир вам.

Set440
() автор топика
Ответ на: комментарий от Set440

Я уже отвечал: если на каталоги указывают симлинки, и их обнаружит балу — всё пропало.

Бред. Правда: балу не переходит по симлинкам. А то, что на каталог какие-то симлинки есть ему пофигу.

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

/0

чтобы они могли пользоваться компом, как своим.

Даже ОС переустановить можно?

высер нейронки

В котором я поправил 3/4. Так что мой

Уговорил. Твой высер.

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

Если цель наколхозить велосипед - делай что хочешь. Но вообще задача твоя решается корректным выставлением прав, и добавлением /mnt/Data (или где там твоя дата лежит) в индекс. А твой костыль при каждом запуске накопитель сношает впустую.

mogwai ★★★★★
()
Ответ на: комментарий от mogwai

Я признаю, что твоя критика конструктивная. Но по-меньше бы «злого острякизма», т-к агрессивные высказывания не помогают принять факты.

Да, это васянка, метод присвоения чмодов с насилием над диском — дебильный. Возможно заявленная цель достигается более нормальными и простыми средствами, но я преследовал сразу несколько целей.

  1. «Кооперативная дедубликация» — все загрузки/файло — общие, потому юзеры не качают десятки дубликатов одних и тех-же торрентов. Юзер смотрит в загрузки, и устанавливает/копирует готовое оттуда.
  2. «Принцип магнита» — мне надо, чтобы общие папки цеплялись как магнит, у всех юзеров — автоматом. Без ручного вмешательства в настройки
  3. Т-е, после добычи этой портянки от ИИ — я начал преследовать какие-то другие цели, которые к заявленной задаче — вообще ортогональны…

Я допускаю, что когда я с симлинками пытался наладить индексацию, и брутфорсил проблему всевозможными комбинациями — я что-то упустил. Но на рэддите можно нагуглить 4 поста про этот тупняк балу. Там в топе комментов, с кучей лайков находится такое «с линками у тебя не получится, — используй маунты, и будет норм.»

Я опять-же повторюсь: Возможно я что-то упустил, когда парился с этим 4 дня, и так и не смог обнаружить настоящую причину / не смог додуматься. Но на рэддите есть эти посты.

Поскольку комменты ещё и нужны для обмена опытом, я буду благодарен, если ты мне поможешь искоренить мои дебильные чмоды.

… ии мне выдал права для диска root:users 777 с наследованием владельца, группы и флагов. Но мне очень не хочется, чтобы файлы в Загрузках сами-по-себе становились выполняемыми. И возможно, последняя 7 — не нужна, если не монтировать диск драйвером экст4 парагон на венде.

Мне бы хотелось, чтобы папки были 774, а файлы 664.

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

Мне важна автоматика моего метода, потому-как через мой комп проходит много пользователей со своими аккаунтами, и если я ещё и Шаблоны впишу — мне потребуется твоим методом сделать 32 строки для маппинга в фстаб, которые мне не хочется майнтейнить…

Set440
() автор топика
Последнее исправление: Set440 (всего исправлений: 1)
Ответ на: комментарий от Set440

Но по-меньше бы «злого острякизма»

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

Поскольку комменты ещё и нужны для обмена опытом

ии мне выдал

В словосочетании «AI» ключевое - artificial. Он притворяется интеллектом. На деле выдаёт всякое г. Особенно когда в запросе пользователя типичная «проблема XY».

помоги плиз…

через мой комп проходит много пользователей со своими аккаунтами

Я не верю в существование такого сценария в рамках домашнего использования компутера. Поэтому больше чем уже сказал - не скажу.

mogwai ★★★★★
()
Ответ на: комментарий от mogwai

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

Дело не в этом. В твоём сообщении просто есть правда, и нету «демагогии гегеля» и «софистики». Я стараюсь не разводить срачъ, и если в сообщении собеседника можно с чем-то согласиться — я так и делаю.

В словосочетании «AI» ключевое - artificial. Он притворяется интеллектом.

Однако, это настоящая нейросеть, с базой знаний. Просто подобно настоящему мозгу — часто галлюцинирует.

Я не верю в существование такого сценария в рамках домашнего использования компутера.

Я уже писал: ТС — шыз из палаты мер и весов, и мыслит странно. Мало того, что васян, так ещё и это.

Поэтому больше чем уже сказал - не скажу.

Ладно. А как думаешь, если на диск дата поставить noexec, и прописать root:users 774 с наследованием прав для всех новых файлов и папок (флаги чмода такие есть) — будет нормально?

sudo chmod -R 777 /mnt/DATA
sudo chown -R root:users /mnt/DATA
sudo chmod -R g+ws /mnt/DATA

— Вот типа такого…

Set440
() автор топика
Последнее исправление: Set440 (всего исправлений: 1)

Возможно я что-то упускаю, но разве нельзя тупо прописать в настройках baloo абсолютные пути до папок, которые ему нужно индексировать? В Plasma 5 это точно работало. Можно было индексировать хоть /dev, при наличии прав.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

Конечно можно. В том числе это из консоли настраивается - т.е. можно автоматизировать.

Ja-Ja-Hey-Ho ★★★★★
()

Ты это, не Balooй! Фигасе у тебя размер балу датабазы будет... :)

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от Khnazile

Тут более фундаментальный вопрос - разве нельзя было генерировать скрипт, который сносит к чертям все бинарники е-балы, и сразу решает все проблемы наиболее прямым образом?

James_Holden ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.