umask não tem opção -S

0

Estou tentando usar umask -S para mostrar a máscara atual de forma simbólica (por man umask em meu sistema, o que me fornece a página BASH_BUILTINS (1)). Mas umask não parece se comportar como afirma a manpage:

user$ umask
22
user$ umask -S
umask: Improper mask.
user$ umask -p
umask: Improper mask.
user$ which umask
umask: shell built-in command.

Estou executando isso em csh no RHEL 6.9. Algo como umask 022 funciona bem. Por que o comportamento diferiria da manpage?

    
por Kevin Kruse 01.11.2018 / 15:10

1 resposta

3

Como umask altera o estado interno do shell, ele deve ser um shell embutido.

Cascas POSIX umask builtin possuem uma opção -S , já que é um requisito POSIX, mas csh não. Sua página umask man documenta o umask incorporado de bash , não o de csh . Verifique a página do manual do csh para obter a documentação do seu umask builtin.

Não há nenhuma boa razão para você usar csh neste século, especialmente em um sistema GNU / Linux, mas se for necessário, você sempre pode fazer:

sh -c 'umask -S'

para relatar uma forma simbólica desse umask .

Isso informaria o umask do processo filho executando sh , mas como o umask é herdado em bifurcação e preservado em exec, deve ser o mesmo que csh ' umask '.

De qualquer forma, o retorno de umask não será útil para csh , pois csh builtin não suporta formulários simbólicos.

    
por 01.11.2018 / 15:18

Tags