.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Linux::ACL 3pm" .TH Linux::ACL 3pm "2022-10-19" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Linux::ACL \- Perl extension for reading and setting Access Control Lists for files by libacl linux library. .SH "VERSION" .IX Header "VERSION" Version 0.05 .SH "SYNOPSIS" .IX Header "SYNOPSIS" Quick summary of what the module does. .PP Perhaps a little code snippet. .PP .Vb 3 \& use Linux::ACL; \& ($acl, $default_acl) = getfacl("path/to/file"); \& setfacl("path/to/file", $acl [, $default_acl]); .Ve .SH "EXPORT" .IX Header "EXPORT" .IP "setfacl($$;$)" 4 .IX Item "setfacl($$;$)" Set the \s-1ACL\s0 of the file or directory named by \f(CW$path\fR to that specified by \f(CW$acl\fR. If \f(CW$path\fR names a directory, then the optional \&\f(CW$default_acl\fR argument can also be passed to specify the default \s-1ACL\s0 for the directory. See \*(L"\s-1ACL\s0 structure\*(R" for information on how the \&\f(CW$acl\fR and \f(CW$default_acl\fR hashes should be constructed. .IP "getfacl($)" 4 .IX Item "getfacl($)" Return a reference to a hash containing information about the file's \&\s-1ACL.\s0 If the file is a directory with a default \s-1ACL,\s0 then a list is returned, with the first entry being a hash reference to the \s-1ACL,\s0 and the second being a hash reference to the default \s-1ACL.\s0 See \*(L"Accessing \&\s-1ACL\s0 structures\*(R" for information on how to access these hashes, and \&\*(L"\s-1ACL\s0 structure\*(R" for information on how these hashes are internally constructed. .SH "RETURN VALUES" .IX Header "RETURN VALUES" .IP "setfacl" 4 .IX Item "setfacl" returns \s-1TRUE\s0 if successful and \s-1FALSE\s0 if unsuccessful. .IP "getfacl" 4 .IX Item "getfacl" if successful, returns a list containing a reference to the hash describing an acl, and, if there is a default acl, a reference to the hash describing the default acl. If unsuccessful, \&\f(CW\*(C`getfacl\*(C'\fR returns a null list. .SH "Examples" .IX Header "Examples" getfacl example .PP .Vb 4 \& use Linux::ACL; \& use Data::Dumper; \& my @a = getfacl("/tmp"); \& print Dumper \e@a; .Ve .PP prints: .PP .Vb 10 \& $VAR1 = [ \& { \& \*(Aquperm\*(Aq => { \& \*(Aqw\*(Aq => 1, \& \*(Aqr\*(Aq => 1, \& \*(Aqx\*(Aq => 1 \& }, \& \*(Aqgperm\*(Aq => { \& \*(Aqw\*(Aq => 1, \& \*(Aqr\*(Aq => 1, \& \*(Aqx\*(Aq => 1 \& }, \& \*(Aqother\*(Aq => { \& \*(Aqw\*(Aq => 1, \& \*(Aqr\*(Aq => 1, \& \*(Aqx\*(Aq => 1 \& } \& } \& ]; .Ve .PP setfacl example .PP .Vb 10 \& use Linux::ACL; \& setfacl("/mnt/testacl/d", { \& uperm=>{r=>1,w=>1,x=>1}, \& gperm=>{r=>1,w=>1,x=>1}, \& other=>{r=>1,w=>0,x=>1}, \& mask=>{r=>1,w=>1,x=>1}, \& group=>{ \& 123456=>{r=>1,w=>1,x=>1} \& } \& }, { \& uperm=>{r=>1,w=>1,x=>1}, \& gperm=>{r=>1,w=>1,x=>1}, \& other=>{r=>1,w=>1,x=>1}, \& mask=>{r=>1,w=>1,x=>1} \& }); \& system("getfacl /mnt/testacl/d"); .Ve .PP prints: .PP .Vb 10 \& $ getfacl d \& # file: d \& # owner: user \& # group: user \& user::rwx \& group::rwx \& group:123456:rwx \& mask::rwx \& other::r\-x \& default:user::rwx \& default:group::rwx \& default:mask::rwx \& default:other::rwx .Ve .SH "AUTHOR" .IX Header "AUTHOR" Yuriy Nazarov, \f(CW\*(C`\*(C'\fR .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to \f(CW\*(C`bug\-linux\-acl at rt.cpan.org\*(C'\fR, or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. .SH "SUPPORT" .IX Header "SUPPORT" You can find documentation for this module with the perldoc command. .PP .Vb 1 \& perldoc Linux::ACL .Ve .PP You can also look for information at: .IP "\(bu" 4 \&\s-1RT: CPAN\s0's request tracker .Sp .IP "\(bu" 4 AnnoCPAN: Annotated \s-1CPAN\s0 documentation .Sp .IP "\(bu" 4 \&\s-1CPAN\s0 Ratings .Sp .IP "\(bu" 4 Search \s-1CPAN\s0 .Sp .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2013 Yuriy Nazarov. .PP This program is free software; you can redistribute it and/or modify it under the terms of either: the \s-1GNU\s0 General Public License as published by the Free Software Foundation; or the Artistic License. .PP See http://dev.perl.org/licenses/ for more information.