rm: não é possível remover o diretório /: permissão negada


16

Eu criei um diretório chamado "shadi" e configurei essa permissão para ele

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

Nesta situação, tenho permissões "outros", mas por que não posso excluí-lo?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied

Respostas:


25

Aqui o problema é que você não tem permissão "w" no /homediretório. Ao excluir um arquivo, observe que você não está gravando nesse arquivo, mas está alterando o conteúdo do diretório que contém o arquivo, portanto, ter permissão "w" no diretório é essencial se você deseja excluir qualquer arquivo do diretório.

captura de tela do terminal "ls -ld / home"

Se eu estiver em um diretório com permissão "w", posso excluir qualquer um dos seus arquivos sem me preocupar com a própria permissão. Observe que meu diretório atual é o /home/rohithque tem permissão "w" e, portanto, posso excluir qualquer um de seus arquivos, independentemente das permissões.

captura de tela do terminal de remoção / home / rohith / shadi

Se o mesmo arquivo for criado no diretório '/ home' que não tem permissão "w", eu obtenho a mesma saída que a sua! :)

captura de tela terminal da tentativa de remover / home / shadi


8

Isso acontece porque você não é o proprietário do diretório, ele pertence ao 'root' e ao grupo 'root'. Portanto, para excluí-lo, você pode alterar a propriedade e excluí-lo (aqui você eleva seus direitos e se torna 'raiz' para a propriedade):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

Ou você pula a posse da propriedade e cria um sudo rmpara elevar seus direitos e tornar-se "raiz" para a exclusão:

sudo rm -r ./shadi

isso significa que apenas os proprietários podem excluir arquivos?
— Sinoosh 01/07

Sim, ou você precisa elevar seus direitos com o sudocomando isso pedirá sua senha e você se tornará 'root' para o seguinte comando específico.
— Videonauth

você agora se "shadi" era um arquivo que eu possa removê-lo com o usuário "sinoosh" .it não é exigem "sudo" a sua não fazer cena para mim por que ele não funciona com o diretório
— Sinoosh

5

Tente o seguinte:

sudo rm -r ./shadi

As permissões mostram a raiz do proprietário e a raiz do grupo, então você precisa usar o sudo.


11
Sim, este comando é ok, mas o meu problema é por isso rm não está funcionando com este permissões eu tenho todas as permissões para este diretório em outro campo
— Sinoosh

"eu tenho permissões completas para este diretório" Não, você não. "outro campo" shadi não é "outros".
— Rinzwind 01/07

mas "sinoosh" é pertence aos outros e ele executar "rm -r shadi"
— Sinoosh

0

São contas diferentes.

Como você esperaria segurança da sua conta, se todos tivessem permissão para excluir seu diretório pessoal?

Você não tem wpermissão para excluir o diretório inicial de outra pessoa por padrão, exceto se ele o chmod +wtiver.

Aqui estão as permissões diferentes e um exemplo ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
É assim: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, por isso 750, ou seja, um sistema de permissão ideal. O proprietário ( uneste caso) pode ler, gravar e executar o arquivo, o grupo do proprietário ( gneste caso) pode ler e executar e qualquer outra pessoa ( oneste caso) não pode fazer nada. Este é o lendário:
u: usuário atual (usuário)
g: grupos de usuários atuais (Grupos)
o: grupos de usuários não atuais (Outros)
r: permissão de leitura (leitura)
w: permissão de gravação (gravação)
x: permissão de execução (X-ecute)
.

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.