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).
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.
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.
SEE ALSO
perlfunc, fstab(5), mount(8), umount(8)
AUTHOR
Steven Schubiger
LICENSE
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html