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
Sinoosh
fonte

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

rohith
fonte
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
Videonauth
fonte
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.

Bruni
fonte
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)
.

EKons
fonte