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
"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.