On Wed, Nov 08, 2017 at 12:04:08PM +0100, kalle wrote: > in my version 4.4.0(1), > `umask' gives me a numeric output of `0022', > while `umask -S' gives me an output of `u=rwx,g=rx,o=rx'. > Shouldn't umask -S also formulate the mask in a negative way, as does > `umask'? Thus giving out `u=,g=w,o=w'?
Hm, is there a umask program that does this? Looking at the shells I have installed, they all do pretty much the same: dualbus@ubuntu:~$ for sh in bash dash ksh93 mksh posh zsh; do echo $sh $($sh -c 'echo $(umask) $(umask -S)'); done bash 0022 u=rwx,g=rx,o=rx dash 0022 u=rwx,g=rx,o=rx ksh93 0022 u=rwx,g=rx,o=rx mksh 022 u=rwx,g=rx,o=rx posh 022 u=rwx,g=rx,o=rx zsh 022 u=rwx,g=rx,o=rx Which is also what POSIX specifies: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/umask.html | If -S is specified, the message shall be in the following format: | | "u=%s,g=%s,o=%s\n", <owner permissions>, <group permissions>, | <other permissions> | | where the three values shall be combinations of letters from the set | { r, w, x}; the presence of a letter shall indicate that the corresponding | bit is clear in the file mode creation mask.