No meu Pi, chmod + w não se comporta como de costume?

0
$ ls -al file1
-r--r--r-- 1 pi pi 0 Feb 10 15:18 file1

$ chmod +w file1
$ ls -al file1
-rw-r--r-- 1 pi pi 0 Feb 10 15:18 file1  #only u is updated

$ chmod +x file1
$ ls -al file1
-rwxr-xr-x 1 pi pi 0 Feb 10 15:18 file1  #all updated

É assim que o chmod + w funciona?

    
por Old Geezer 10.02.2016 / 13:30

4 respostas

1

Depende de qual é a sua umask. Se sua umask for 022, o + w será mascarado no grupo e outros sinalizadores de permissão. + x não é mascarado. Para mascarar qualquer um dos flags executáveis, adicione 1 ao umask nessa posição. Por exemplo, faça umask 033 e tente o seu teste novamente.

    
por 10.02.2016 / 13:51
1

Da página do manual:

If no value is supplied for who, each permission bit spec-
ified in perm, for which the corresponding bit in the file mode
creation mask (see umask(2)) is clear, is set.  Otherwise, the mode
bits represented by the specified who and perm values are set.

Então, se você não especificar para quem deseja atualizar as permissões, isso se ajusta ao que o umask diz sobre a permissão que você está definindo. Neste caso, seu umask provavelmente permite ler e executar em arquivos, então o bit de execução é definido para todos, mas o umask provavelmente só permite escrever para o proprietário.

    
por 10.02.2016 / 13:51
1

O umask (por padrão, 0022) é a razão pela qual o chmod + w muda apenas o atributo do usuário

$ chmod -v 444 a
mode of ‘a’ retained as 0444 (r--r--r--)
$ umask 000
$ chmod  -v +w a
mode of ‘a’ changed from 0444 (r--r--r--) to 0666 (rw-rw-rw-)
$ chmod -v +x a
mode of ‘a’ changed from 0666 (rw-rw-rw-) to 0777 (rwxrwxrwx)
    
por 10.02.2016 / 14:01
1

Isso é definido por umask . Ele define o padrão para criar e alterar permissões de arquivos.

Para ver o umask por padrão, em um modo fácil, emita o comando umask -S . Por exemplo, o resultado:

u=rwx,g=rx,o=rx
significa que para usuário aplica tudo, para grupo apenas lê e executa, e o mesmo para outros .

Para alterar o problema umask desta forma:

umask x@y

onde:

x pode ser: u (usuário), g (grupo), o (outro) ou a (todos)

@ pode ser + para adicionar permissões, - para remover permissões

y pode ser r (lido), w (gravação), x (executar)

Por exemplo: umask g+w ativa as permissões de gravação por padrão para group quando você faz um chmod +w .

Mais informações aqui ou emitindo man umask no prompt de comando.

    
por 10.02.2016 / 13:53