lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D6C97BDC-9378-4BCD-A073-2B5527204306@dilger.ca>
Date:   Mon, 3 Feb 2020 13:41:42 -0700
From:   Andreas Dilger <adilger@...ger.ca>
To:     Jeremy Visser <jeremyvisser@...gle.com>
Cc:     linux-ext4@...r.kernel.org
Subject: Re: [PATCH] chattr.1: improve attribute formatting with labels and
 indented paragraphs

On Feb 2, 2020, at 7:37 PM, Jeremy Visser <jeremyvisser@...gle.com> wrote:
> 
> By convention, lists of options in man pages use a label followed by an
> indented description, such as this example from the Options section:
> 
>     -R     Recursively change attributes of directories and
>            their contents.
> 
> But the Attributes section places the available attributes mid-sentence,
> which makes it visually more difficult to parse:
> 
>     A file with the 'a' attribute set can only be opened
>     in append mode for writing.  [...]
> 
>     When a file with the 'A' attribute set is accessed, its
>     atime record is not modified.  [...]
> 
> This patch places a label beside each attribute description, which (in
> my opinion) improves readability, especially when visually skimming the
> list.  For example:
> 
>     a      A file with the 'a' attribute set can only be
>            opened in append mode for writing.
> 
>     A      When a file with the 'A' attribute set is accessed,
>            its atime record is not modified.
> 
> Signed-off-by: Jeremy Visser <jeremyvisser@...gle.com>

Looks like a good improvement.

Reviewed-by: Andreas Dilger <adilger@...ger.ca>

> ---
> misc/chattr.1.in | 59 ++++++++++++++++++++++++++++++++----------------
> 1 file changed, 40 insertions(+), 19 deletions(-)
> 
> diff --git a/misc/chattr.1.in b/misc/chattr.1.in
> index 66e791db..71e910c9 100644
> --- a/misc/chattr.1.in
> +++ b/misc/chattr.1.in
> @@ -79,20 +79,25 @@ Set the file's version/generation number.
> .BI \-p " project"
> Set the file's project number.
> .SH ATTRIBUTES
> +.TP
> +.B a
> A file with the 'a' attribute set can only be opened in append mode for
> writing.  Only the superuser or a process possessing the
> CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
> -.PP
> +.TP
> +.B A
> When a file with the 'A' attribute set is accessed, its atime record is
> not modified.  This avoids a certain amount of disk I/O for laptop
> systems.
> -.PP
> +.TP
> +.B c
> A file with the 'c' attribute set is automatically compressed on the disk
> by the kernel.  A read from this file returns uncompressed data.  A write to
> this file compresses data before storing them on the disk.  Note: please
> make sure to read the bugs and limitations section at the end of this
> document.
> -.PP
> +.TP
> +.B C
> A file with the 'C' attribute set will not be subject to copy-on-write
> updates.  This flag is only supported on file systems which perform
> copy-on-write.  (Note: For btrfs, the 'C' flag should be
> @@ -101,42 +106,50 @@ data blocks, it is undefined when the blocks assigned to the file will
> be fully stable.  If the 'C' flag is set on a directory, it will have no
> effect on the directory, but new files created in that directory will
> have the No_COW attribute set.)
> -.PP
> +.TP
> +.B d
> A file with the 'd' attribute set is not a candidate for backup when the
> .BR dump (8)
> program is run.
> -.PP
> +.TP
> +.B D
> When a directory with the 'D' attribute set is modified,
> the changes are written synchronously to the disk; this is equivalent to
> the 'dirsync' mount option applied to a subset of the files.
> -.PP
> +.TP
> +.B e
> The 'e' attribute indicates that the file is using extents for mapping
> the blocks on disk.  It may not be removed using
> .BR chattr (1).
> -.PP
> +.TP
> +.B E
> A file, directory, or symlink with the 'E' attribute set is encrypted by the
> filesystem.  This attribute may not be set or cleared using
> .BR chattr (1),
> although it can be displayed by
> .BR lsattr (1).
> -.PP
> +.TP
> +.B F
> A directory with the 'F' attribute set indicates that all the path
> lookups inside that directory are made in a case-insensitive fashion.
> This attribute can only be changed in empty directories on file systems
> with the casefold feature enabled.
> -.PP
> +.TP
> +.B i
> A file with the 'i' attribute cannot be modified: it cannot be deleted or
> renamed, no link can be created to this file, most of the file's
> metadata can not be modified, and the file can not be opened in write mode.
> Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE
> capability can set or clear this attribute.
> -.PP
> +.TP
> +.B I
> The 'I' attribute is used by the htree code to indicate that a directory
> is being indexed using hashed trees.  It may not be set or cleared using
> .BR chattr (1),
> although it can be displayed by
> .BR lsattr (1).
> -.PP
> +.TP
> +.B j
> A file with the 'j' attribute has all of its data written to the ext3 or
> ext4 journal before being written to the file itself, if the file system
> is mounted with the "data=ordered" or "data=writeback" options and the
> @@ -144,14 +157,16 @@ file system has a journal.  When the filesystem is mounted with the
> "data=journal" option all file data is already journalled and this
> attribute has no effect.  Only the superuser or a process possessing the
> CAP_SYS_RESOURCE capability can set or clear this attribute.
> -.PP
> +.TP
> +.B N
> A file with the 'N' attribute set indicates that the file has data
> stored inline, within the inode itself. It may not be set or cleared
> using
> .BR chattr (1),
> although it can be displayed by
> .BR lsattr (1).
> -.PP
> +.TP
> +.B P
> A directory with the 'P' attribute set will enforce a hierarchical
> structure for project id's.  This means that files and directory created
> in the directory will inherit the project id of the directory, rename
> @@ -159,22 +174,26 @@ operations are constrained so when a file or directory is moved into
> another directory, that the project id's much match.  In addition, a
> hard link to file can only be created when the project id for the file
> and the destination directory match.
> -.PP
> +.TP
> +.B s
> When a file with the 's' attribute set is deleted, its blocks are zeroed
> and written back to the disk.  Note: please make sure to read the bugs
> and limitations section at the end of this document.
> -.PP
> +.TP
> +.B S
> When a file with the 'S' attribute set is modified,
> the changes are written synchronously to the disk; this is equivalent to
> the 'sync' mount option applied to a subset of the files.
> -.PP
> +.TP
> +.B t
> A file with the 't' attribute will not have a partial block fragment at
> the end of the file merged with other files (for those filesystems which
> support tail-merging).  This is necessary for applications such as LILO
> which read the filesystem directly, and which don't understand tail-merged
> files.  Note: As of this writing, the ext2, ext3, and ext4 filesystems do
> not support tail-merging.
> -.PP
> +.TP
> +.B T
> A directory with the 'T' attribute will be deemed to be the top of
> directory hierarchies for the purposes of the Orlov block allocator.
> This is a hint to the block allocator used by ext3 and ext4 that the
> @@ -184,12 +203,14 @@ idea to set the 'T' attribute on the /home directory, so that /home/john
> and /home/mary are placed into separate block groups.  For directories
> where this attribute is not set, the Orlov block allocator will try to
> group subdirectories closer together where possible.
> -.PP
> +.TP
> +.B u
> When a file with the 'u' attribute set is deleted, its contents are
> saved.  This allows the user to ask for its undeletion.  Note: please
> make sure to read the bugs and limitations section at the end of this
> document.
> -.PP
> +.TP
> +.B V
> A file with the 'V' attribute set has fs-verity enabled.  It cannot be
> written to, and the filesystem will automatically verify all data read
> from it against a cryptographic hash that covers the entire file's
> --
> 2.25.0.341.g760bfbb309-goog
> 


Cheers, Andreas






Download attachment "signature.asc" of type "application/pgp-signature" (874 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ