bug#81542: ['stat' command] Permission bits in octal not displayed in four-digit format when invoked with 'stat -c %a'
Pádraig Brady <[email protected]> Mon, 3 Aug 2026 12:33:01 +0100
| Newsgroups | gmane.comp.gnu.core-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 03/08/2026 11:44, Ricky Tigg wrote:
> coreutils v. 9.11
>
> Hello. Permission bits in octal not displayed in four-digit format when
> invoked with 'stat -c %a' unlike it does with 'stat' alone.
>
> manual STAT(1)
>
> "The valid format sequences for files (without --file-system):
>
> %a permission bits in octal (see '#' and '0' printf flags)"
>
> note: command filtered
>
> $ stat /etc/{shadow,passwd}
> File: /etc/shadow
> Access: (0000/----------) Uid: (0/root) Gid: (0/root)
>
> File: /etc/passwd
> Access: (0644/-rw-r--r--) Uid: (0/root) Gid: (0/root)
>
> Four-digit permission bits in octal.
>
> $ stat -c '%a/%A %u/%U %g/%G %n' /etc/{shadow,passwd} | column -t
> 0/---------- 0/root 0/root /etc/shadow
> 644/-rw-r--r-- 0/root 0/root /etc/passwd
>
> Not four-digit permission bits in octal. In the worse case it is not even
> three-digit permission bits in octal.
>
> Expected: Permission bits in octal displayed in four-digit format when
> invoked with 'stat -c %a' like it does with 'stat' alone.
Well we give configurability when using format chars,
through the mentioned '0' and '#' flags. See:
https://github.com/coreutils/coreutils/commit/a0c5313d6
E.g.:
$ stat -c '%a %04a %#a %#03a' /etc/shadow .
0 0000 0 000
711 0711 0711 0711
I'm not sure it's worth changing the default at this stage.
Padraig