mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-24 10:23:31 +08:00
stat: print SELinux context when available
* src/stat.c (default_format): Include context when present. * NEWS: Update blurb explaining the replacement for -Z.
This commit is contained in:
parent
2c14ec962a
commit
7a5ecae996
5
NEWS
5
NEWS
@ -75,7 +75,10 @@ GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
stat no longer accepts the --context (-Z) option. Initially it was
|
||||
merely accepted and ignored, for compatibility. Starting two years
|
||||
ago, with coreutils-7.0, its use evoked a warning.
|
||||
ago, with coreutils-7.0, its use evoked a warning. Printing the
|
||||
SELinux context can be done with the %C format directive, and the
|
||||
default output when no format is specified now automatically
|
||||
includes %C when context information is available.
|
||||
|
||||
stat now outputs the full sub-second resolution for the atime,
|
||||
mtime, and ctime values since the Epoch, when using the %X, %Y, and
|
||||
|
45
src/stat.c
45
src/stat.c
@ -1074,7 +1074,12 @@ default_format (bool fs, bool terse, bool device)
|
||||
if (fs)
|
||||
{
|
||||
if (terse)
|
||||
format = xstrdup ("%n %i %l %t %s %S %b %f %a %c %d\n");
|
||||
{
|
||||
if (0 < is_selinux_enabled ())
|
||||
format = xstrdup ("%n %i %l %t %s %S %b %f %a %c %d %C\n");
|
||||
else
|
||||
format = xstrdup ("%n %i %l %t %s %S %b %f %a %c %d\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* TRANSLATORS: This string uses format specifiers from
|
||||
@ -1086,12 +1091,30 @@ Block size: %-10s Fundamental block size: %S\n\
|
||||
Blocks: Total: %-10b Free: %-10f Available: %a\n\
|
||||
Inodes: Total: %-10c Free: %d\n\
|
||||
"));
|
||||
|
||||
if (0 < is_selinux_enabled ())
|
||||
{
|
||||
/* TRANSLATORS: This string uses format specifiers from
|
||||
'stat --help' with --file-system, and NOT from printf. */
|
||||
char *temp = format;
|
||||
format = xasprintf ("%s%s", format, _("\
|
||||
Context: %C\n\
|
||||
"));
|
||||
free (temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
else /* ! fs */
|
||||
{
|
||||
if (terse)
|
||||
format = xstrdup ("%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o\n");
|
||||
{
|
||||
if (0 < is_selinux_enabled ())
|
||||
format = xstrdup ("%n %s %b %f %u %g %D %i %h %t %T"
|
||||
" %X %Y %Z %W %o\n");
|
||||
else
|
||||
format = xstrdup ("%n %s %b %f %u %g %D %i %h %t %T"
|
||||
" %X %Y %Z %W %o %C\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
char *temp;
|
||||
@ -1126,6 +1149,24 @@ Device: %Dh/%dd\tInode: %-10i Links: %h\n\
|
||||
'stat --help' without --file-system, and NOT from printf. */
|
||||
format = xasprintf ("%s%s", format, _("\
|
||||
Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n\
|
||||
"));
|
||||
free (temp);
|
||||
|
||||
if (0 < is_selinux_enabled ())
|
||||
{
|
||||
temp = format;
|
||||
/* TRANSLATORS: This string uses format specifiers from
|
||||
'stat --help' without --file-system, and NOT from printf. */
|
||||
format = xasprintf ("%s%s", format, _("\
|
||||
Context: %C\n\
|
||||
"));
|
||||
free (temp);
|
||||
}
|
||||
|
||||
temp = format;
|
||||
/* TRANSLATORS: This string uses format specifiers from
|
||||
'stat --help' without --file-system, and NOT from printf. */
|
||||
format = xasprintf ("%s%s", format, _("\
|
||||
Access: %x\n\
|
||||
Modify: %y\n\
|
||||
Change: %z\n\
|
||||
|
Loading…
Reference in New Issue
Block a user