NAME
Tie::Mounted - Tie a mounted node to an array
SYNOPSIS
use Tie::Mounted;
tie @files, 'Tie::Mounted', '/backup', '-v';
print $files[-1];
untie @files;
DESCRIPTION
This module ties files (and directories) of a mount point to an array by invoking the system commands mount
and umount
; 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 mount
and umount
may be overriden by setting accordingly either $Tie::Mounted::MOUNT_BIN
or $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.
If $Tie::Mounted::NO_FILES
is set to a true value, a bogus array with zero files will be tied.
BUGS & CAVEATS
Security
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.
Portability
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.
Miscellanea
The tied array is read-only.
Files within the tied array are statically tied.
Lacking tests
Tests that test the base functionality are completely missing due to an environment that most likely can't be adequately simulated.
SEE ALSO
"tie" in perlfunc, fstab(5), mount(8), umount(8)
AUTHOR
Steven Schubiger <schubiger@cpan.org>
LICENSE
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.