'cp' permissão negada ao copiar um arquivo de propriedade 'root'

6

Eu tenho uma pasta udp_folder2

d------r-T 41 root           root     4096 Apr 26 21:17 udp_folder2

quando estou com um usuário diferente de root , não consigo cp -r em uma nova pasta diz: Permissão negada

por quê? e como posso copiá-lo com um usuário diferente de root

    
por user138126 27.04.2013 / 00:52

4 respostas

11

Bem,

Isso ocorre porque, como as permissões atuais são definidas, ninguém pode mover esse arquivo. (Além do root, porque o root não segue as mesmas regras).

Você precisaria alterar o dono do arquivo (chown), OU incluir o outro usuário no grupo 'root' e chmod-lo para que o grupo possa executar no diretório OU permitir que todos executem o arquivo.

Então, uma solução rápida seria:

chmod -R o+rwx udp_folder2

Isso dará a todos a capacidade de ler, escrever e executar nesse diretório.

Além disso ... se você estiver tentando copiar 'udp_folder2' para o mesmo diretório que está localizado agora, também precisará da permissão 'w' nesse diretório. Por exemplo:

/ foo / udp_folder2 - você precisará do 'w' on / foo para copiar o diretório em / foo

Sugiro que você aprenda as permissões do arquivo linux: Tutorial de permissão de arquivos no Linux

    
por 27.04.2013 / 01:07
8

O diretório não tem a permissão x , portanto, outros usuários (ou seja, neste caso, qualquer usuário) podem usar o diretório para acessar os arquivos internos. O T significa que é pegajoso (somente o proprietário de um arquivo pode excluí-lo). Com a permissão x e o bit pegajoso, você veria um t minúsculo; a letra maiúscula T diz "nenhuma permissão de acesso, mas um bit pegajoso, que é uma combinação estranha".

Leia sobre permissões de arquivos / diretórios do Unix. Não é muito difícil e você precisará .

    
por 27.04.2013 / 02:02
2

Você não quer dar a todos rwx no diretório porque criaria um risco de segurança. E você não iria querer -R o chmod porque isso iria gravar mudanças recursivamente.

Apenas chmod 755 "filename" e você é bom.

Aqui está um resumo dos números:

  • Leitura = 4
  • Escrita = 2
  • Executar = 1

Então você tem 3 grupos:

  • Proprietário.
  • Aqueles que pertencem ao grupo.
  • Todos os outros.

Então, se você quiser dar ao proprietário rwx , quem pertence ao grupo rw e todos os outros rw , basta adicionar as permissões: rwx = 7, porque r + w + x é 4 + 2 + 1 e rw = 6 porque r + w = 4 + 2.

    
por 27.04.2013 / 01:28
0

Para copiar a pasta em que o proprietário não tem permissão, você precisa alterar essas permissões.

Se a pasta for restrita mesmo para o proprietário, há alguma razão para isso e dar permissões para todos os outros ( o ) não é uma boa solução (como mostrado na primeira resposta).

Para que a pasta seja acessada pelo proprietário, ela precisa ter lido ( r ) e executar / pesquisar bits ( X ) definidos. Se você tiver pastas dentro das pastas, cada uma deve seguir as mesmas regras. Para arquivos apenas ler bit ( r ) é suficiente.

Então, basicamente, para dar as permissões de leitura para a pasta recursivamente, você precisa executar:

chmod -vR u+rX folder/

Se você estiver executando o comando acima como um usuário, prefixe com sudo (se você tiver privilégios de superusuário), caso contrário, execute como root.

Se alguns arquivos dentro da pasta não forem de propriedade do root, altere-o recursivamente:

sudo chown -vR root folder/

Copie-o como de costume ou use rsync da seguinte forma:

rsync -vuar src/ dst/

Para mais explicações sobre os comandos acima, verifique: man chmod e man chown .

    
por 27.05.2015 / 21:54