O que faz com que os arquivos em meu diretório pessoal apareçam, quando eu fizer login através do SSH, execute ecryptfs-mount-private?

1

Eu instalei recentemente o Ubuntu 12.04 LTS (minimal virtual machine) em um host VPS. Eu criptografei o disco virtual e criptografei o diretório home da minha conta de usuário principal, que estou usando para acessar a instalação através do SSH (usando a autenticação de chave pública). Por enquanto, tudo bem.

O problema é: não consigo descobrir qual é a ação exata que está tornando meus arquivos ocultos e ativos (de forma que eu possa usar aliases, como ll ).

Quando eu faço login inicialmente com o SSH e emite ls -al , tudo que vejo é:

dr-x------ 2 username username 4096 Feb 10 01:10 .
drwxr-xr-x 4 root     root     4096 Feb 10 01:10 ..
lrwxrwxrwx 1 username username   56 Feb 10 01:10 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
lrwxrwxrwx 1 username username   34 Feb 10 01:10 .ecryptfs -> /home/.ecryptfs/username/.ecryptfs
lrwxrwxrwx 1 username username   33 Feb 10 01:10 .Private -> /home/.ecryptfs/username/.Private
lrwxrwxrwx 1 username username   52 Feb 10 01:10 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt

(Como um passante: por que as permissões são definidas como lrwxrwxrwx para a maioria dos itens aqui? Isso não é muito tolerante?)

Então, quando eu emito ecryptfs-mount-private (de acordo com o README.txt ) e emito outro ls -al , continuo vendo o mesmo que acima.

Uma vez, acreditei que era possível usar aliases depois de emitir um comando sudo , mas outra vez não consegui. Então, outra vez eu emiti cd /home/username (que é o mesmo diretório que ~ já, não é?), E de repente todos os outros arquivos ocultos apareceram e eu pude usar aliases.

Mas agora, depois de alguns minutos (mas talvez eu tenha imaginado isso), embora eu ainda consiga ver todos os arquivos ocultos, não consigo mais usar aliases. Isso me faz acreditar que esse comportamento está de alguma forma associado a sudo , mas não consigo descobrir exatamente o que está acontecendo aqui.

Alguém pode me esclarecer e explicar quais ações exatas eu preciso realizar para ver todos os arquivos ocultos no meu diretório pessoal e ativar os aliases, e por que isso é (é por causa da criptografia; é acoplado a sudo ; ou talvez algo completamente diferente)?

Se possível, de preferência, gostaria que isso fosse ativado automaticamente quando eu fiz o login com o SSH. Isso é possível?

edit (esclarecimento para Comentário do Hauke Laging ):

Quando efetuo login com o SSH e emito imediatamente ll em ~ , obtenho -bash: ll: command not found . (Embora agora, parece funcionar imediatamente depois que eu fiz logout e login novamente, mas talvez isso seja porque a outra vez foi a primeira vez após a inicialização? Eu não tenho idéia, realmente. Tudo parece se comportar de forma aleatória. )

Então, uma vez, acredito ter emitido um comando sudo ls -al , ou algum outro comando inane, após o qual ll pareceu funcionar.

Outra vez, ll não funcionou, e somente depois que eu emiti ecryptfs-mount-private e fiz um cd /home/username explícito, os arquivos ocultos .bashrc (etc.) apareceram com ls -al , após o qual eu finalmente capaz de usar um alias como ll .

Mas você sabe o que? Eu acho que vou ter que investigar isso um pouco mais, já que minhas descrições vagas provavelmente estão nos levando a lugar nenhum. Eu estava esperando que o meu problema chame a atenção, mas parece que eu tenho que ser um pouco mais preciso sobre quais ações eu realizei.

O que estou tentando realizar é o seguinte:

Quando efetuo login através do SSH (seja a primeira vez após a inicialização ou qualquer outra hora depois disso), eu quero que todos os arquivos ocultos, em meu diretório pessoal, apareçam imediatamente quando eu emitir ls -al e que aliases, como ll , também estão imediatamente disponíveis.

Minha análise do problema, até agora, é que parece que primeiro preciso descriptografar meu diretório home, antes de poder ver os arquivos ocultos mencionados (além dos links simbólicos relacionados ao ecryptfs) e usar aliases. Essa é uma avaliação correta?

    
por Decent Dabbler 11.02.2014 / 12:17

3 respostas

6

Situação: você tem um diretório pessoal criptografado.

Etapa 1: você faz login no SSH. Seus dados criptografados não estão montados, então o que você vê é o seu diretório pessoal "real" no sistema de arquivos principal (não criptografado). Este diretório pessoal não contém muito do que é diretamente utilizável:

  • ~/.ecryptfs/ contém dados de controle para seus dados criptografados
  • ~/.Private/ contém seus dados criptografados no formato criptografado
  • ~/Access-Your-Private-Data.desktop é um ícone na área de trabalho para montar seus dados privados
  • ~/README.txt contém instruções legíveis por humanos para montar seus dados.

Seu .bashrc e outros arquivos de ponto com os quais você está acostumado não estão disponíveis porque estão no volume criptografado que não está montado.

Etapa 2: você executa ecryptfs-mount-private . Isso monta seus dados criptografados em ~ (seu diretório inicial). Após esse ponto, ls -lA ~ mostrará seus arquivos de ponto, como ~/.bashrc . Se você executar uma nova instância do bash, ela lerá seu .bashrc e você terá seus aliases disponíveis.

Uma sutileza é que, após a etapa 2, o diretório atual do bash shell interativo ainda é o diretório inicial no volume não criptografado. Montar o volume criptografado em ~ alterou o diretório ao qual o ~ se refere, mas não altera o diretório que o bash tem aberto¹. Se você executar cd ~ no bash (ou o atalho cd ), ele alterará seu diretório atual para o que agora é chamado ~ , mesmo que isso não afete o valor relatado por pwd .

Se você efetuar login via SSH enquanto seu diretório pessoal criptografado já estiver montado, assim que seu shell de login for iniciado, ele verá os arquivos em seu volume criptografado, para que seus aliases sejam carregados. Montar um volume criptografado (ou qualquer outro sistema de arquivos) é uma ação global, não se limita a uma sessão de login. Se você executar ecryptfs-umount-private , isso tornará seus dados criptografados indisponíveis, retornará ao estado de inicialização.

¹ Tecnicamente, este é o diretório atual do processo bash, não um arquivo aberto, mas o comportamento é o mesmo.

    
por 11.02.2014 / 19:38
4

A montagem não altera seu diretório de trabalho atual. Eu acho que o ponto de montagem é o diretório em que você está. Você tem que fazer a montagem de outro lugar ou sair desse diretório:

ls -al
ecryptfs-mount-private
ls -al
cd ..
cd -
ls -al

ou

cd ..
ecryptfs-mount-private
cd -
ls -al

Todos os links simbólicos têm lrwxrwxrwx . Isso não importa, pois os direitos de acesso de um link simbólico nunca são usados. Aqueles do alvo são usados no lugar.

Montagem

Montagem significa que o conteúdo do volume montado é mostrado em vez do conteúdo do diretório que é usado como ponto de montagem. Aplicativos ver um espaço de nome do sistema de arquivos unidimensional. Mas isso é apenas a projeção do empilhamento bidimensional de sistemas de arquivos. Os volumes montados são maiores que o sistema de arquivos raiz e cobrem partes dele (o respectivo ponto de montagem).

/dev/sdx:                        |mounted volume|
root FS: |---dir-1---|---dir-2---|---dir-3---   |---dir-4---|

Você precisa de certos truques para acessar as partes cobertas. O truque trivial é: "Esteja lá" antes do monte (seu caso). O legal é:

mkdir dir-1 dir-2
touch dir-1/file
ls -l dir-1 dir-2
mount --make-private --bind dir-1 dir-2
ls -l dir-1 dir-2
mount -t auto /dev/whatever dir-1
ls -l dir-1 dir-2

Aliases

O comportamento aleatório é obviamente difícil de explicar. Os aliases são definidos nos arquivos de inicialização de todo o sistema e por usuário (consulte, por exemplo, man bash : invocação). Além disso, pode ser uma diferença (dependendo da configuração) se o shell é chamado como um shell de login ou não. Jogar com o sudo pode resultar em alguns shells sendo shells de login porque outros não são. Isso não seria aleatório, no entanto.

    
por 11.02.2014 / 12:35
1

Os arquivos ocultos são arquivos com um nome que começa com um período, eles não são exibidos a menos que sejam explicitamente solicitados, usando a opção -a ou especificamente mencionando ponto no lista de argumentos. Por exemplo, 'ls -la ou ls -l .*

aliases de arquivos são chamados de links, eles podem ser difíceis ou simbólicos. você tem links simbólicos lá (o primeiro caractere de permissões é um link de denotação l ), ele é meramente um ponteiro para o arquivo real, e são as permissões do arquivo real com as quais você deseja se preocupar, não o próprio link. / p>

Não há nada que ative ou desative este comportamento, se você estiver trocando de usuários (usando o sudo), então lembre-se que, como um usuário diferente, você tem permissões diferentes.

aliases são configurados pelo seu shell quando você entra, (se o seu shell é bash), em seguida, verifique a página man bash e ler sobre invocação, para ver qual start-up arquivos que ele lê, geralmente .bashrc ou .aliases é onde eles estão estabelecidos.

olhe para o seu ~ / .profile, você pode adicionar comandos no final, como ls -la , se é isso que você quer.

O site do Ubuntu tem um artigo sobre encryptfs também pode ajudar.

    
por 11.02.2014 / 12:40