Tie::Mounted - Tie a mounted node to an array
use Tie::Mounted; tie @files, 'Tie::Mounted', '/backup', '-v'; print $files[-1]; untie @files;
This module ties files (and directories) of a mount point to an array by invoking the system commands
mount is invoked when a former attempt to tie an array is being committed,
umount when a tied array is to be untied. Suitability is therefore limited and suggests a rarely used node (such as /backup, for example).
The mandatory parameter consists of the node (or: mount point) to be mounted (/backup - as declared in /etc/fstab); optional options to
mount may be subsequently passed (
-v). Device names and mount options (
-a,-A,-d) will be discarded in regard of system security.
Default paths to
umount may be overriden by setting accordingly either
$Tie::Mounted::UMOUNT_BIN. If either of them doesn't exist at the predefined path, a
which() will be performed to determine the actual path.
$Tie::Mounted::NO_FILES is set to a true value, a bogus array with zero files will be tied.
Tie::Mounted has by default set
$APPROVE to an untrue value in order to allow all nodes to be passed. If
$APPROVE is set to a true value,
@NODES has to contain the nodes that are considered ``approved"; both variables are lexically scoped and adjustable within
_private(). If in approval mode and a node is passed that is considered unapproved,
Tie::Mounted will throw an exception.
Such ``security" is rather trivial; instead it is recommended to adjust filesystem permissions to prevent malicious use.
Tie::Mounted is Linux/UNIX centered (due to the fstab file & the
mount/umount binaries requirements) and will most likely won't work on other platforms.
The tied array is read-only.
Files within the tied array are statically tied.
Tests that test the base functionality are completely missing due to an environment that most likely can't be adequately simulated.
"tie" in perlfunc, fstab(5), mount(8), umount(8)
Steven Schubiger <email@example.com>
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.