Criar arquivo na pasta: permissão negada


38

Tenho um problema ao copiar arquivos para um diretório no Ubuntu 12.04. Eu crio um diretório no diretório inicial para que o caminho para o qual eu quero copiar seja:

/home/sixven/camp_sms/inputs

Mas quando ini, execute o seguinte comando no terminal para criar um arquivo de amostra da seguinte maneira:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

Não consigo copiar arquivos diretamente nesse diretório. Como posso atribuir permissões com os comandos chown& chmodpara copiar os arquivos?

Não sei qual usuário e grupo usar.


Como você criou o diretório? Por que está dentro /home/sixven? Por que não está no seu diretório pessoal?
terdon

2
Pelo que você copiou e colou, você está executando o toque como usuário francisco-vergara, mas o diretório está dentro /home/sixvenda casa, na verdade é o lar do usuário francisco-vergeraou pertence a um sixvenusuário? Você deve esclarecer exatamente o que deseja fazer. Escrever na casa de outro usuário? Compartilhar esse diretório entre um grupo?
Leiaz

Respostas:


54

Antes de tudo, você precisa saber que a permissão padrão dos diretórios no Ubuntu é 644, o que significa que você não pode criar um arquivo em um diretório em que não é o proprietário.

você está tentando user:francisco-vergaracriar um arquivo em um diretório /home/sixven/camp_sms/inputsque pertence a user:sixven.

Então, como resolver isso:

  1. Você pode alterar a permissão do diretório e permitir que outras pessoas criem arquivos dentro dele.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    Este comando alterará a permissão do diretório recursivamente e permitirá que todos os outros usuários criem / modifiquem e excluam arquivos e diretórios internos.

  2. Você pode alterar o envio do proprietário deste diretório e fazer user:francisco-vergaracomo o proprietário

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    Mas assim, user:sixvennão é possível escrever nesta pasta novamente e, portanto, você pode se mover em um loop infinito circular.

Então, eu aconselho você a usar a opção 1.

Ou se esse diretório for acessado por ambos os usuários, você pode executar o seguinte truque:

altere a propriedade do diretório para user:francisco-vergarae mantenha o proprietário do grupo group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

Dessa forma, os dois usuários ainda podem usar o diretório

Mas, como eu disse antes, é mais fácil e eficiente usar a opção 1.


11
Ressuscitando isto para dizer: você quase nunca deve 'chmod -R 777' qualquer coisa. Definir a propriedade corretamente é uma prática muito mais segura. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams

12

Para alterar a propriedade do arquivo, faça o seguinte como root:

chown -R user:user /home/sixven

Se você decidir seguir o caminho chmod:

Se você souber que o usuário faz parte do grupo do arquivo

chmod -R g+rw /home/sixven

De outra forma:

chmod -R o+rw /home/sixven

Mas esse caminho não é muito seguro.


Funciona como um encanto
Faris Rayhan 10/10

1

O UMASK 022 padrão (no Ubuntu), para que as permissões para / home / nome de usuário se tornem 755. e você francisco-vergaraefetuou login como usuário e tentando criar arquivos no usuário sixyen Home: ie /home/sixven. ele não tem permissão de gravação para outros usuários Apenas o usuário / grupo de sixvenpossui acesso de gravação.

se você quiser acesso de gravação nesse diretório, precisará fazer parte do grupo sixvenusando usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(não use práticas inadequadas).


Você não está apressando as coisas um pouco? Ainda não sabemos a situação do OP.
guntbert
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.