Move o arquivo para o diretório inicial de outro usuário (sem sudo)

1

Eu tenho alguns arquivos que desejo mover para o diretório inicial do usuário de outro usuário. Eu não tenho permissão para escrever no diretório pessoal do usuário, mas sei sua senha.

Eu sei como copiar o arquivo usando scp (veja aqui ). No entanto, se eu quiser mover o arquivo, copiar e remover o arquivo original será ineficiente. Existe uma maneira de mover o arquivo, sem usar sudo (não sei a senha da raiz)?

    
por becko 19.02.2015 / 19:55

3 respostas

2

Você pode:

  1. Torne seu diretório inicial legível para o mundo e gravável.
  2. Faça login em sua conta.
  3. Mova seus arquivos para o diretório dele.
  4. Altere a propriedade dos arquivos mencionados.
  5. Logout de sua conta.
  6. Reverter permissões do seu diretório inicial.

Guia Detalhado Passo a Passo

Suponha que você esteja usando o becko e queira mover os arquivos para o diretório pessoal do bob. Assim, os caminhos para suas casas são os seguintes (por padrão):

becko: /home/becko/
bob: /home/bob/

Agora, digamos que os caminhos dos arquivos que você deseja mover são os seguintes:

/home/becko/file_01
/home/becko/file_02
/home/becko/file_03

Agora, com esta introdução, podemos começar.

NOTA: Este exemplo supõe que todos os arquivos relevantes estão em um nível abaixo do seu diretório pessoal.

Primeiro Passo: Torne o seu diretório pessoal legível para o mundo e gravável

Enquanto estiver logado como você mesmo , abra um terminal (Ctrl+Alt+T) .

Vá para o seu diretório pessoal e torne-o legível para o mundo:

$ cd ~
$ chmod 0777 .

Etapa dois: faça login em sua conta

Em seguida, use o exemplo fornecido acima:

$ su - bob

Você será solicitado com a senha dele .

Etapa três: mova seus arquivos para o diretório dele

Após o login, você deve ver o seguinte aviso (ou algo próximo a ele):

bob@hellsdesk:~$ 

Agora você está no diretório pessoal de Bob. Agora, hora de mudar suas coisas.

Os seguintes comandos devem fazê-lo:

$ mv /home/becko/file_01 .
$ mv /home/becko/file_02 .
$ mv /home/becko/file_03 .

Etapa quatro: alterar a propriedade dos arquivos:

NOTA: Para mim, a propriedade mudou para bob automaticamente, mas é melhor prevenir do que remediar. :)

Comandos:

$ chown bob:bob file_01
$ chown bob:bob file_02
$ chown bob:bob file_03

Etapa cinco: faça o logout de sua conta

Isso é fácil. Tipo:

$ logout

Seu prompt deve ser alterado para algo como:

becko@hellsdesk:~$

Passo Seis: Reverta as permissões do seu diretório pessoal.

Por padrão, as permissões são 0755. Então, faremos isso:

$ chmod 0755 .

Feche o terminal e pronto!

    
por Norman Li 19.02.2015 / 20:32
0

Você não precisa da senha do root para o sudo, você precisa sua senha; na verdade, não há senha de root em uma instalação normal do Ubuntu.

Mas, se você não puder, ou não quiser usar o sudo, pode ter certeza de que o arquivo e seu diretório têm permissões de leitura / gravação (modificação) para todos, faça login como a outra pessoa e mova-se normalmente. Ou crie um diretório no diretório pessoal da outra pessoa e configure-o como gravável para poder mover as coisas para lá como você.

Este é o comportamento básico do linux.

    
por Marty Fried 19.02.2015 / 20:17
0

Na verdade, podemos precisar de mais algumas informações. Por exemplo, você não precisa saber a senha do root para usar o sudo. Se o seu usuário estiver no grupo sudo, você pode usar o sudo com a senha normal do usuário. Então, se este for o caso:

sudo mv file_to_move /home/desired_user

Se você não pode usar o sudo, você pode escrever um script bash simples para copiar o arquivo com o scp e depois deletá-lo. Mas, se você tiver o rsync instalado:

rsync -avz --remove-source-files -e ssh file_to_move [email protected]:/home/desired_user

também funciona.

    
por heartsmagic 19.02.2015 / 20:22