O que é esta pasta / run / user / 1000?

84

O que é esta pasta: /run/user/1000no meu sistema Fedora e o que faz?

~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.2G   20K  1.2G   1% /run/user/1000

EDIT: 7 de junho de 2019.

Minhas duas respostas não concordam em qual diretório ou onde os arquivos armazenados neste local foram:

Patrick :

Antes systemd, esses aplicativos geralmente armazenavam seus arquivos /tmp.

E aqui novamente:

/tmpfoi o único local especificado pelo FHSlocal e gravável por todos os usuários.

Braiam :

Os propósitos deste diretório já foram atendidos /var/run. Em geral, os programas podem continuar sendo usados /var/runpara atender aos requisitos estabelecidos /runpara fins de compatibilidade com versões anteriores.

E aqui novamente:

Os programas migrados para uso /rundevem interromper o uso /var/run, exceto conforme indicado na seção /var/run.

Então, qual é o pai de /run/user/1000, por que não há menção em nenhuma das respostas do que o outro diz sobre o diretório usado anteriormente /run/user.

alguma coisa alguma coisa
fonte
Não há menção em nenhuma das respostas do que o outro diz sobre o diretório usado antes de / run / user, porque apenas uma realmente discute isso. A resposta de Braiam discute o diretório usado antes de / run em vez de / run / user.
David Yockey
1
Uma resposta para a pergunta "o pai de / run / user / 1000" é apresentada como uma declaração fundamentada, mas sem fundamento, de Patrick. Braiam não aborda esta questão. É provável que no passado o local de armazenamento dos arquivos usados ​​pelos processos em execução, ou seja, os arquivos temporários, fosse apenas o diretório / tmp padrão. Nesse caso, seria difícil comprovar, porque poucas pessoas fornecem registros escritos do convencional ou do óbvio. Fornecer uma resposta fundamentada provavelmente exigiria alguma escavação concertada da história do computador.
David Yockey
Obrigado pelo seu contributo
somethingSomething

Respostas:

94

/run/user/$uidé criado pam_systemde usado para armazenar arquivos usados ​​pela execução de processos para esse usuário. Podem ser coisas como seu daemon de chaveiro, pulseaudio etc.

Antes do systemd , esses aplicativos geralmente armazenavam seus arquivos /tmp. Eles não podiam usar um local, /home/$userpois os diretórios pessoais geralmente são montados nos sistemas de arquivos da rede e esses arquivos não devem ser compartilhados entre os hosts. /tmpfoi o único local especificado pela ESF que é local e gravável por todos os usuários.

No entanto, o armazenamento de todos esses arquivos /tmpé problemático, pois /tmptodos podem ser gravados e, embora você possa alterar a propriedade e o modo nos arquivos que estão sendo criados, é mais difícil trabalhar com eles.

Então o systemd apareceu e foi criado /run/user/$uid. Este diretório é local para o sistema e acessível apenas pelo usuário de destino. Portanto, os aplicativos que desejam armazenar seus arquivos localmente não precisam mais se preocupar com o controle de acesso.
Também mantém as coisas agradáveis ​​e organizadas. Quando um usuário efetua logout e nenhuma sessão ativa permanece, pam_systemdo /run/user/$uiddiretório é apagado. Com vários arquivos espalhados /tmp, você não pode fazer isso.

Patrick
fonte
18
Deve-se mencionar que ele se chama $ XDG_RUNTIME_DIR, documentado em standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c 19/10/10
E se: Eu iniciei um processo de computação "em segundo plano" nohupe ele salva seus resultados / dados intermediários em um arquivo temporário. Posso contar com isso não sendo apagado enquanto o processo está em execução ou será apagado e o processo iniciado nohupperderá seus dados?
imz - Ivan Zakharyaschev
É improvável que seja apagado, mas / run / user é um sistema de arquivos tmpfs no fedora, por isso será limitado à quantidade de espaço alocado a ele. Veja a saída df acima.
Jsbillings
E se o pidfile for um serviço em execução no root. O PID deve estar em / var / run ou / var / run / user / 0? Se, como não há sessões ativas, ele será removido?
TSG
11

De acordo com o rascunho mais recente do FHS (File Hierarchy Standard) , / execute:

Este diretório contém dados de informações do sistema que descrevem o sistema desde que ele foi inicializado. Os arquivos nesse diretório devem ser limpos (removidos ou truncados, conforme apropriado) no início do processo de inicialização.

Os propósitos deste diretório já foram atendidos por / var / run. Em geral, os programas podem continuar usando / var / run para atender aos requisitos estabelecidos para / run para fins de compatibilidade com versões anteriores. Os programas que migraram para usar / executar devem interromper o uso de / var / run, exceto conforme indicado na seção / var / run.

Os programas podem ter um subdiretório de / run; isso é recomendado para programas que usam mais de um arquivo de tempo de execução. Os usuários também podem ter um subdiretório de / run, embora seja necessário tomar cuidado para limitar adequadamente os direitos de acesso para impedir o uso não autorizado de / run em si e outros subdiretórios.

No caso do /run/userdiretório, é usado pelos diferentes serviços do usuário, como dconf, pulse, systemd, etc. que precisam de um local para seus arquivos de bloqueio e soquetes. Existem tantos diretórios quanto diferentes UIDs de usuários registrados no sistema.

Braiam
fonte