Quando eu executo chmod +w filename
, ele não dá permissão de gravação para other
, apenas dá permissão de gravação para user
e group
.
Depois de executar este comando
chmod +w testfile.txt
ls -l testfile.txt
impressões em execução
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
mas no caso de +r
e +x
funciona corretamente.
Eu não quero usar chmod ugo+w filename
.
Sua situação específica
Em sua situação específica, podemos supor que sua corrente
umask
é002
(este é um valor padrão comum) e isso explica sua surpresa.Nessa situação específica em que o
umask
valor é 002 (todos os números octal).+r
significaugo+r
porque002 & 444
é000
, que permite que todos os bits sejam definidos+x
significaugo+x
porque002 & 111
é000
, que permite que todos os bits sejam definidos+w
significaug+w
porque002 & 222
é002
, o que impede que o bit "o" seja definido.Outros exemplos
umask 022
+w
significariau+w
.umask 007
+rwx
significariaug+rwx
.umask 077
+rwx
significariau+rwx
.O que teria correspondido às suas expectativas
Quando você muda
umask
para000
, executandono seu terminal, então
irá definir permissões para ugo+w.
Nota
Conforme sugerido por ilkkachu, observe que
umask 000
isso não significa que todos possam ler e gravar todos os seus arquivos.Mas
umask 000
significa que todos que têm algum tipo de acesso a qualquer conta de usuário em sua máquina (que pode incluir programas executando serviços de servidor ofc) podem ler e gravar todos os arquivos que você fizer com essa máscara ativa e não mudar (se a cadeia de diretórios até a raiz também os permite).Com:
as permissões são adicionadas a user , group e other , mas com o umask ainda aplicado. Ele garante que o arquivo não receba mais permissões do que um arquivo recém-criado receberia.
Se você deseja adicionar as permissões para user , groups e outros , independentemente do umask, use
que é curto para
Você precisa especificar a quem está concedendo as permissões, como
other
, usandochmod o+w testfile.txt