noxz-sites

A collection of a builder and various scripts creating the noxz.tech sites
git clone https://noxz.tech/git/noxz-sites.git
Log | Files | README | LICENSE

commit: f62d25b4e050a924128c5a7df8fa8b6729337883
parent: d81f4e77c45efc13efd9b398f3affe7caee42a49
author: Chris Noxz <chris@noxz.tech>
date:   Sat, 25 Jun 2022 16:00:27 +0200
add acst to the software section
Anoxz.tech/software/acst/.assemble1+
Anoxz.tech/software/acst/.buildignore0
Anoxz.tech/software/acst/index.www187++++++++++++++++++++
Mnoxz.tech/software/index.www3+
4 files changed, 191 insertions(+)
diff --git a/noxz.tech/software/acst/.assemble b/noxz.tech/software/acst/.assemble
@@ -0,0 +1 @@
+index.html
diff --git a/noxz.tech/software/acst/.buildignore b/noxz.tech/software/acst/.buildignore
diff --git a/noxz.tech/software/acst/index.www b/noxz.tech/software/acst/index.www
@@ -0,0 +1,187 @@
+.HnS 0
+acst
+.HnE
+acst as a tool is designed to detect silent data corruption by first writing
+the mtime and the SHA256 checksum of a file into its extended attributes and
+then, upon later execution, comparing and verifying changes against both the
+mtime and checksum.
+
+.HnS 1
+Manual
+.HnE
+
+.CDS
+.COS
+ACST(1)                     General Commands Manual                    ACST(1)
+
+NAME
+       acst - Actual C-implementation of a Simple shaTag
+
+SYNOPSIS
+       acst [-hmnqrvx] <FILE...>
+
+DESCRIPTION
+       acst is a minimal and simplified implementation in C of, or rather,
+       inspired by, shatag and also inspired by cshatag.
+
+       acst as a tool is designed to detect silent data corruption by first
+       writing the mtime and the SHA256 checksum of a file into its extended
+       attributes and then, upon later execution, comparing and verifying
+       changes against both the mtime and checksum. For this to work, the file
+       system intended to be verified must first support extended user
+       attributes, either by being mounted with user_xattr enabled or by other
+       means. Depending on how these variables differ, various file statuses
+       are being reported (see the FILE STATUSES section).
+
+       acst won't follow symlinks due to the risks of creating reference loops
+       or referencing data outside of the indented scope of subdirectories.
+       acst also won't descend into directories on other file systems than the
+       one specified using the FILE argument. Keep in mind that if multiple
+       files with different file systems are specified using the FILE
+       argument, they will get traversed indifferent of each other. For
+       example, if you specify two different partitions mounted on two
+       different directories, they would both be traversed.
+
+       acst does not aim to be format-compatible with shatag and uses
+       different names for the extended attributes but similar formats for the
+       extended attributes (see the COMPATIBILITY section).
+
+OPTIONS
+       -h     Print brief usage information to standard output and exit.
+
+       -m     Summarize information at end of execution.
+
+       -n     Don't create or update any extended file attributes. File
+              hashing and checking will be performed, but no extended file
+              attributes will be created or updated.
+
+       -q     Quiet mode. If specified one time ok files are not being
+              reported. If specified two times, only corrupt, backdated, and
+              malformed files and errors are being reported.
+
+       -r     Process directories and their contents recursively, not just
+              files.
+
+       -x     Remove acts's extended attributes (xattrs) from FILE.
+
+       -v     prints version information to stderr, then exits.
+
+RETURN VALUES
+       0      Success
+
+       1      Wrong number of or invalid arguments.
+
+       2      One or more files, including directories when executed with the
+              recursive flag, could not be opened.
+
+       3      One or more files is not a regular file and probably a symlink
+              of sorts.
+
+       4      Extended attributes could not be written to one or more files.
+
+       5      At least one file was found to be corrupt, backdated or
+              malformed.
+
+       6      More than one type of error has occurred.
+
+FILE STATUSES
+       During program execution and processing of each file various file
+       statuses will appear on stdout.  Following are descriptions of these
+       statuses.
+
+       ok     Checksum is correct and mtime is unchanged.
+
+       hash ok
+              Checksum is correct and mtime was changed.
+
+       outdated
+              Checksum is incorrect and mtime is newer than the one stored as
+              an extended Attribute.
+
+       backdated
+              Checksum is incorrect and mtime is older than the one stored as
+              an extended Attribute.
+
+       malformed
+              Extended attributes could not be read as otherwise intended.
+
+       corrupt
+              Checksum is incorrect but mtime stayed the same.
+
+       disrupted
+              File was modified during hash computation.
+
+       new    Extended attributes are missing and were added.
+
+       xattr removed
+              Extended attributes were removed.
+
+EXAMPLES
+       acst -r /home/user01 /mnt/memorystick > /root/acst.log
+              will recursively process files in both /home/user01 and
+              /mnt/memorystick even if they belong to different file systems,
+              as they are both specified using the FILE argument, and then log
+              the result to /root/acst.log.
+
+       acst -rm /home/user01 /mnt/memorystick > /root/acst.log
+              will perform the same operation as above with the addition of
+              also summarizing the result of the execution to the log.
+
+       acst -rx /mnt/memorystick > /root/acst.log
+              will recursively process and remove extended attributes from
+              files in /mnt/memorystick and log the result to /root/acst.log.
+
+COMPATIBILITY
+       acst writes to user.acst.cs and user.acst.ts instead of the
+       user.shatag.sha256 and user.shatag.ts specified by shatag.
+       acst writes the user.acst.ts field with full integer nanosecond
+       precision, while python-implemented shatag doesn't.
+
+AUTHOR
+       Chris Noxz <chris@noxz.tech>
+
+COPYRIGHT
+       Copyright © 2022 Chris Noxz.
+
+       License: GPLv3+ (with GPL-compatible BSD-3-Clause, see sha256.c for
+       exception)
+
+       GNU GPL version 3 or later
+       <https://www.gnu.org/licenses/licenses.html>.
+
+       This is free software: you are free to change and redistribute it.
+       There is NO WARRANTY, to the extent permitted by law.
+
+SEE ALSO
+       shatag(1), cshatag(1), sha256sum(1), getfattr(1), setfattr(1)
+
+       The original shatag utility, written in python by Maxime Augier:
+       https://bitbucket.org/maugier/shatag
+       and cshatag utility, written in Go by Jakob Unterwurzacher:
+       https://github.com/rfjakob/cshatag
+
+AVAILABILITY
+       Up-to-date sources can be found at:
+       https://noxz.tech/git/acst
+
+                                 acst-0.1.1                            ACST(1)
+.COE
+.CDE
+
+.HnS 1
+Installation
+.HnE
+
+Edit config.mk to match your local setup (acst is installed into the
+.I /usr/local
+namespace by default), then simply enter the following command to install (if
+necessary as root):
+
+.CDS
+.COS
+make clean install
+.COE
+.CDE
+
+get source
+.URL //noxz.tech/git/acst.git here .
diff --git a/noxz.tech/software/index.www b/noxz.tech/software/index.www
@@ -7,6 +7,9 @@ Read about programs I've written below. All source code is available
 and also linked to from each software page respectively.
 
 .DLS
+.LIURL acst acst
+tracks changes and corruption in files using xattr-based checksums.
+
 .LIURL rspan rspan
 executes a given command after a randomized time span.