New commands -lfa_flags, -lsattr, -lsattrd, -chattr, -chattr_r, -find test -has_lfa_flags, -find actions lsattrd, chattr

This commit is contained in:
2024-07-20 23:12:16 +02:00
parent dfd0a8cc81
commit 0802689b11
26 changed files with 1222 additions and 165 deletions

View File

@@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.7, Jun 29, 2024"
@c man .TH XORRISO 1 "Version 1.5.7, Jul 20, 2024"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@@ -641,6 +641,19 @@ or to print them.
@*
Recording and restoring of xattr from and to local files works currently
only on GNU/Linux and FreeBSD, where they are known as extattr.
@c man .PP
@sp 1
@cindex Linux file attributes, _definition
@strong{Linux file attributes} are binary flags which can be set by program
chattr(1) and listed by program lsattr(1). See their man pages and the
definitions FS_*_FL in Linux header file <linux/fs.h>.
Not all defined flags get reported by lsattr and accepted by chattr, but their
number grew over the years.
@*
@command{xorriso} records the flags of disk files if enabled by command
@strong{-lfa_flags}. Its command -lsattr lists 22 flags the same way as the
program lsattr does. They can be set by xorriso command -chattr and can be
enabled by -lfa_flags for restoring when their files get restored to disk.
@c man .SS
@node Processing, Dialog, Extras, Top
@chapter Command processing
@@ -1291,6 +1304,57 @@ write the attributes.
Note that it is not possible to set xattr of namespace "isofs." by xorriso
xattr manipulation commands.
@c man .TP
@item -lfa_flags mode[:mode...]
@kindex -lfa_flags controls handling of Linux file attributes
@cindex Linux file attributes, control handling, -lfa_flags
Enable, disable, or influence processing of Linux file attributes as described
in man 1 chattr.
@*
Mode "on" enables actual processing of the attributes. Mode "off" disables it.
The other modes define the behavior in case of "on".
@*
Mode "read" enables obtaining of these attributes from disk files,
storing them in the emerging ISO 9660 filesystem as AAIP data, importing
them when an ISO filesystem gets loaded and bears such stored attributes,
and comparing them during comparisons between files on disk and in ISO.
@*
Mode "no_read" disables processing of the attributes from disk files. If no
other settings like -acl "on" or -xattr "on" require storing and importing
of AAIP data, then previously recorded file attributes can get kept out of
the next appended session.
@*
Mode "restore" enables restoring of attributes when their file gets restored
and comparing them during comparisons between files on disk and in ISO.
Several modes below modify the behavior during restoring of attributes.
@*
Mode "no_restore" disables restoring of attributes.
@*
Mode "restore_su" enables restoring of the attributes "iaj" which are only
changeable by the bearer of superuser capabilities. "no_restore_su" disables
restoring of these attributes. "restore_su_auto" enables it only if the
effective user id is 0.
@*
Mode "restore_only_known" restricts restoring to the known settable attribute
flags "aAcCdDFijmPsStTux". "restore_unknown" enables the attempt to restore
unknown flags or even those which are known to be unchangeable, if they are
not disabled by other modes.
@*
Mode "restore_mask=..." enables particular attributes for restoring. All others
will not be restored. The list of desired attribute letters follows the '='
character. An empty list enables all attributes, if they are not disabled by
other modes. The single character "-" bans all attributes from restoring,
like "off" does. Example:
@*
-lfa_flags restore_mask=SdCiaj
@*
Mode "default" reinstates the default settings:
@*
-lfa_flags off:read:restore:restore_su_auto:restore_only_known
@*
-lfa_flags restore_mask=
@*
Use "default:on" to get default settings with enabled processing.
@c man .TP
@item -md5 "on"|"all"|"off"|"load_check_off"
@kindex -md5 controls handling of MD5 sums
@cindex MD5, control handling, -md5
@@ -1330,22 +1394,29 @@ Checksums can be exploited via commands -check_md5, -check_md5_r, via find
actions get_md5, check_md5, and via -check_media.
@c man .TP
@item -for_backup
@kindex -for_backup -acl,-xattr,-hardlinks,-md5
@kindex -for_backup acl,xattr,hardlinks,md5,lfa_flags
@cindex Backup, enable features, -for_backup
Enable all extra features which help to produce or to restore backups with
highest fidelity of file properties. Currently this is a shortcut for:
@*
-hardlinks on -acl on -xattr any -md5 on
-hardlinks on -acl on -xattr any -md5 on
-lfa_flags default:on:restore_mask=aAcCdDijmPsStTux
@*
If you restore a backup with xattr from non-user namespaces, then make sure
that the target operating system and filesystem know what these attributes
mean. Possibly you will need administrator privileges to record or restore
such attributes. At recording time, xorriso will try to tolerate missing
privileges and just record what is readable.
But at restore time, missing privileges will cause failure events.
But at restore time, missing privileges or preconditions will cause failure
events.
@*
Command -xattr "user" after command -for_backup excludes non-user attributes
from being recorded or restored.
Command -xattr "user" after command -for_backup will exclude non-user
attributes from being recorded or restored.
@*
The -lfa_flags restore mask of -for_backup enables all known settable
attributes, except "F" which has special constraints which xorriso cannot yet
detect at restore time. Command -lfa_flags "restore_mask=" after -for_backup
will enable all known settable attributes.
@c man .TP
@item -ecma119_map "stripped"|"unmapped"|"lowercase"|"uppercase"
@kindex -ecma119_map names w/o Rock Ridge, Joliet
@@ -2250,7 +2321,7 @@ This indicates that the entry goes to the "default" ACL rather than to the
@item -setfacl_r acl_text iso_rr_path [***]
@kindex -setfacl_r sets ACL in ISO image
@cindex ACL, set in ISO image, -setfacl_r
Like -setfacl but affecting all files below eventual directories.
Like -setfacl but affecting all files below given directories.
@c man .TP
@item -setfacl_list disk_path
@kindex -setfacl_list sets ACL in ISO image
@@ -2287,7 +2358,7 @@ the byte value 0 cannot be expressed via -setfattr.
@item -setfattr_r [-]name value iso_rr_path [***]
@kindex -setfattr_r sets xattr in ISO image
@cindex xattr, set in ISO image, -setfattr_r
Like -setfattr but affecting all files below eventual directories.
Like -setfattr but affecting all files below given directories.
@c man .TP
@item -setfattr_list disk_path
@kindex -setfattr_list sets xattr in ISO image
@@ -2315,6 +2386,38 @@ whitespace after the end quote will be ignored. Non-printables bytes and quotes
must be represented as \XYZ by their octal 8-bit code XYZ.
Use code \000 for 0-bytes.
@c man .TP
@item -chattr mode iso_rr_path [***]
@kindex -chattr sets Linux file attributes in ISO image
@cindex Linux file attributes, set in ISO image, -chattr
Set or unset Linux file attributes like program chattr(1) would do to disk
files.
@*
The first letter of the mode string determines what to do. The other letters
are symbolic attribute flag letters out of the set "aAcCdDeEFhiIjNmPsStTuVxZ"
as described in man 1 chattr.
There is no restriction which attributes can be set or unset. But at restore
time, unusual or unsuitable attributes may cause problems.
@*
First letter '+' causes the given attribute flags to be set. All other
attributes stay as they are.
@*
First letter '-' causes the given attribute flags to be unset. All other
attributes stay as they are. (Note that '-' is also accepted as symbolic
attribute letter which has no effect.)
@*
First letter '.' causes all attribute flags except the given ones to be unset.
The given ones stay as they are. This is not a feature of program chattr(1).
@*
First letter '=' causes the given attribute flags to be set. All other
get unset.
@*
Example: -chattr +sDu /my/file /my/other_file --
@c man .TP
@item -chattr_r mode iso_rr_path [***]
@kindex -chattr_r sets Linux file attributes in ISO image
@cindex Linux file attributes, set in ISO image, -chattr_r
Like -chattr but affecting all files below given directories.
@c man .TP
@item -alter_date type timestring iso_rr_path [***]
@kindex -alter_date sets timestamps in ISO image
@cindex Timestamps, set in ISO image, -alter_date
@@ -2519,6 +2622,16 @@ Matches files which have xattr name-value pairs from user namespace.
@item -has_aaip :
Matches files which have ACL or any xattr.
@*
@item -has_lfa_flags flag_letters :
Matches files which have Linux file attributes attached and have all flags set
which correspond to the characters in the string flag_letters. The characters
may be zero or more out of the set "aAcCdDeEFhiIjNmPsStTuVxZ".
The character '-' will be ignored. The flag_letters string "-" matches any
attribute set, but not a file with no Linux file attributes attached.
E.g. look for files with both flags 'i' (immutable) and 'd' (no dump) set:
@*
-has_lfa_flags di
@*
@item -has_any_xattr :
Matches files which have any xattr other than ACL.
@*
@@ -2767,10 +2880,18 @@ terminal-safe but should work in script files.
Mode "r" uses no quotation marks. Not safe.
Mode "b" prints backslash encoding. Not suitable for shell parsing.
@*
E.g. -exec list_extattr e --
E.g.: -exec list_extattr e --
@*
Command -backslash_codes does not affect the output.
@*
@item lsattrd
shows the Linux file attribute flags like command -lsattrd does.
@*
@item chattr
applies -chattr with the given mode.
@*
E.g.: -exec chattr +sDu --
@*
@item get_md5
prints the MD5 sum, if recorded, together with file path.
@*
@@ -5605,6 +5726,17 @@ namespace "user", "any" only omits namespace "isofs".
Like -gefattr but listing recursively the whole file trees underneath of
directories.
@c man .TP
@item -lsattr iso_rr_pattern [***]
@kindex -lsattr shows Linux file attributes in ISO image
@cindex Linux file attributes, show in ISO image, -lsattr
Print the Linux file attributes of the given files like program lsattr(1)
would do with disk files. The meaning of the shown flag letters are described
in man 1 chattr with the exception of '-', which is shown as placeholder for
an unset flag.
@*
The given files will get a line printed even if they have no Linux file
attributes attached. In this case all flags will be shown as '-'.
@c man .TP
@item -du iso_rr_pattern [***]
@kindex -du show directory size in ISO image
@cindex Navigate, directory size in ISO image, -du
@@ -7813,11 +7945,13 @@ Startup files and program options can override the effect of SOURCE_DATE_EPOCH.
@c man .BR wodim(1),
@c man .BR cdrskin(1)
@c man .TP
@c man ACL and xattr
@c man ACL, xattr, Linux file attributes
@c man .BR getfacl(1),
@c man .BR setfacl(1),
@c man .BR getfattr(1),
@c man .BR setfattr(1)
@c man .BR setfattr(1),
@c man .BR lsattr(1),
@c man .BR chattr(1)
@c man .TP
@c man MD5 checksums
@c man .BR md5sum(1)
@@ -7846,11 +7980,13 @@ growisofs(1),
cdrecord(1),
wodim(1),
cdrskin(1)
@item ACL and xattr
@item ACL, xattr, Linux file attributes
getfacl(1),
setfacl(1),
getfattr(1),
setfattr(1)
setfattr(1),
lsattr(1),
chattr(1)
@item MD5 checksums
md5sum(1)
@item On FreeBSD some commands differ: