Por que o chmod + w não dá permissão de gravação para outro (o)

14

Quando executo chmod +w filename , ele não concede permissão de gravação a other , apenas dá permissão de gravação a user e group .

Depois de executar este comando

chmod +w testfile.txt

executando ls -l testfile.txt imprime

-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 .

    
por Ravi Sevta 10.03.2018 / 13:50

3 respostas

23

+r significa ugo+r

+x significa ugo+x

mas +w significa ug+w

porque o valor de umask é 002 , quando você altera umask para 000, executando

umask 000

no seu terminal, então

chmod +w file

irá definir permissões para ugo + w

Observe que umask 000 significa que todo mundo pode ler e gravar todos os seus arquivos, mas nem sempre é verdade, pois alguns arquivos com umask 600 são particulares, como sugerido por ilkkachu.

    
por 10.03.2018 / 14:21
19

Com:

chmod +<perms>

os perms são adicionados ao usuário , grupo e outro mas com o umask ainda em aplicação. Ele garante que o arquivo não receba mais permissão do que um arquivo recém-criado.

Se você quiser adicionar perms a usuário , grupos e outro independentemente da umask, use

chmod a+<perms>

que é curto para

chmod ugo+<perms>
    
por 10.03.2018 / 23:28
0

Você precisa especificar a quem você está concedendo as permissões, como other , usando chmod o+w testfile.txt

    
por 10.03.2018 / 13:54