altera a localização de $ HOME / .Xauthority

5

É possível alterar a localização de .Xauthority para algo diferente de $HOME/.Xauthority ? AFAIU, esse arquivo está sendo criado toda vez que eu fizer login em LXDE , pelo meu gerenciador de login slim .

O problema que estou tendo é o seguinte:

Eu quero definir minha casa como "imutável" usando atributos estendidos:

chattr +i /home/martin/

Dessa forma, nenhum aplicativo pode salvar seus arquivos diretamente em /home/martin/ , mas eles ainda podem salvar arquivos em diretórios localizados em níveis inferiores da minha casa, por exemplo, /home/martin/.config/ .

No momento, quando configuro minha casa como imutável, não consigo fazer login no LXDE porque o gerenciador de login ( slim ) não pode criar /home/martin/.Xauthority . Isso acontece mesmo se o antigo .Xauthority existir. O gerenciador de login poderia apenas sobrescrever o arquivo antigo com novos dados, mas aparentemente isso não é o que faz. Cria um novo arquivo e apaga o antigo. Isso não é permitido quando / home / martin é imutável (sobrescrever o arquivo existente seria permitido).

Portanto, eu gostaria de armazenar .Xauthority em outro lugar, como .config/.Xauthority . Isso é possível?

Eu sei que xauth usa o parâmetro -f onde o caminho do arquivo pode ser especificado.

UPDATE:

olhando para o código fonte do slim, acho que encontrei o lugar em que .Xauthority está sendo excluído e criado novamente:

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);

Como eu poderia alterar o código-fonte, para que o arquivo fosse sobrescrito, em vez de excluído / criado?

    
por Martin Vegter 21.12.2014 / 12:13

1 resposta

1

O local do arquivo de cookie X pode ser configurado com a variável de ambiente XAUTHORITY . O padrão é ~/.Xauthority .

Naturalmente, o local que você passa para os aplicativos deve corresponder ao local onde o cookie está armazenado. O SLiM não oferece uma maneira de adicionar o cookie a um arquivo diferente: ele tem ~/.Xauthority codificado. Se você quiser usar um arquivo diferente, remova o SLiM ou use um gerenciador de exibição que tenha essa opção de configuração. Por exemplo, o Gdm armazena cookies X sob /var/run/gdm .

Acho que você pode tornar .Xauthority um link simbólico, se não quiser que o arquivo modificável esteja em seu diretório pessoal.

Tornar seu diretório pessoal imutável é um exercício de futilidade . Você provavelmente encontrará muitos outros problemas semelhantes. O local padrão para arquivos de configuração e arquivos de estado é seu diretório inicial - é onde os arquivos de ponto recebem seu nome, porque eles começam com . , de modo que ls não os listará por padrão.

    
por 22.12.2014 / 03:41