изменить местоположение $ HOME / .Xauthority

Возможно ли изменить местоположение .Xauthority , на что-то другое, кроме $HOME/.Xauthority ? AFAIU, этот файл создается каждый раз, когда я вхожу в LXDE , мой менеджер входа в систему slim .

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

Я хочу, чтобы мой дом был «неизменным», используя расширенные атрибуты:

 chattr +i /home/martin/ 

Таким образом, ни одно приложение не может сохранять свои файлы непосредственно в /home/martin/ , но они все равно могут сохранять файлы в каталогах, расположенных на более низких уровнях моего дома, то есть /home/martin/.config/ .

На данный момент, когда я устанавливаю свой дом в неизменное, я не могу войти в LXDE потому что менеджер входа ( slim ) не может создать /home/martin/.Xauthority . Это происходит, даже если существует старая .Xauthority . Менеджер входа в систему мог бы просто перезаписать старый файл новыми данными, но, видимо, это не то, что он делает. Он создает новый файл и удаляет старый. Это запрещено, если / home / martin неизменен (перезапись существующего файла будет разрешена).

Поэтому я хотел бы хранить .Xauthority где-то в другом месте, например .config/.Xauthority . Это возможно?

Я знаю, что xauth принимает параметр -f где может быть указан путь к файлу.

ОБНОВИТЬ:

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

 string xauthority = pw->pw_dir; xauthority.append("/.Xauthority"); ... /* reinitialize auth file */ authfile = cfg->getOption("authfile"); remove(authfile.c_str()); putenv(StrConcat("XAUTHORITY=", authfile.c_str())); Util::add_mcookie(mcookie, ":0", cfg->getOption("xauth_path"), authfile); 

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

Расположение файла cookie X можно настроить с помощью переменной среды XAUTHORITY . По умолчанию используется ~/.Xauthority .

Конечно, местоположение, которое вы передаете приложениям, должно соответствовать местоположению, в котором хранится файл cookie. SLiM не предлагает способ добавления файла cookie в другой файл: он имеет ~/.Xauthority жестко закодированный. Если вы хотите использовать другой файл, используйте патч SLiM или используйте диспетчер дисплеев, который имеет этот вариант конфигурации. Например, Gdm хранит X файлов cookie в /var/run/gdm .

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

Непрерывность вашего домашнего каталога – это бесполезное упражнение . Вероятно, вы столкнетесь со многими другими подобными проблемами. Стандартным местом для файлов конфигурации и файлов состояний является ваш домашний каталог – вот где dot-файлы получают свое имя, потому что они начинаются с . так что ls не будет перечислять их по умолчанию.