Por acidente eu corri chmod -u filename
e ele removeu todas as permissões que eu tinha no filename
.
A página man não faz referência a uma -u
opção. Experimentando pude concluir que ele não remove todas as permissões, mas apenas o acesso de leitura e execução, deixando o acesso de gravação intacto.
Então, o que isso faz exatamente?
Minha conclusão acima está errada, agora acho que o que ele faz é remover as permissões que o proprietário possui, de todas as categorias.
Eu acho que o comportamento é análogo a a=u
, só que é -
em vez de =
e a
pode ser descartado da mesma forma que pode com, por exemplo, a+x
.
Esta não é uma opção, mas uma maneira padrão (mas incomum) de especificar as permissões. Significa remover (
-
) as permissões associadas ao proprietário do arquivo (u
), para todos os usuários (semu
,g
, ouo
). Isso está documentado na página man.A página man do GNU chmod documenta isso como:
e depois
Então
-u
significa remover (-
) quaisquer permissões que estejam atualmente habilitadas para o proprietário (u
) para todos (equivalente aa-u
, exceto honrando o umask atual). Embora isso não seja muito útil, o análogochmod +u
às vezes será, copiar as permissões do proprietário para outros ao operar recursivamente, por exemplo.Também está documentado em POSIX , mas definido de forma mais obscura: a especificação de permissão é ampla
who[+-=]perms
(ou um número), e o efeito disso é especificado:e depois
A resposta é um pouco semelhante a https://unix.stackexchange.com/a/429424/255251 .
não remove todas as permissões, mas considera
umask
valor.Agora altere o valor umask