Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use strict;
- if (! defined(@ARGV)) {
- print "This perl script will grab check the file permissions of a file.\n";
- die "Usage: $0 file1 file2 cron_files* ...\n";
- }
- printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
- printf "|%-40s|%6s|%1s|%1s|%1s|\n", "Filename", "Exists", "r", "w", "x";
- printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
- foreach my $file (@ARGV) {
- &attributes($file);
- }
- sub attributes {
- my $file = shift @_;
- # print "\$file = $file\n";
- my $exists;
- my $read;
- my $write;
- my $execute;
- (-e $file) ? ($exists = "Y") : ($exists = "N");
- (-r _) ? ($read = "Y") : ($read = "-");
- (-w _) ? ($write = "Y") : ($write = "-");
- (-x _) ? ($execute = "Y") : ($execute = "-");
- my %attribs = (
- 'exists' => "$exists",
- 'read' => "$read",
- 'write' => "$write",
- 'execute' => "$execute",
- );
- # foreach (sort keys %attribs) {
- # print "$_ => $attribs{$_}\n";
- # }
- return printf "|%-40s|%6s|%1s|%1s|%1s|\n", $file, $attribs{'exists'}, $attribs{'read'}, $attribs{'write'}, $attribs{'execute'} ;
- }
- printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
- print "done.\n";
- =======================================================
- [user@oc6351860106 ch12]# ./ex1.pl
- This perl script will grab check the file permissions of a file.
- Usage: ./ex1.pl file1 file2 cron_files* ...
- [user@oc6351860106 ch12]# ls -l; ./ex1.pl ./* file7
- total 36
- -rwxr-xr-x. 1 user user 443 Dec 27 13:59 ex1_answer.pl
- -rwxr-xr-x. 1 user user 1187 Dec 28 10:48 ex1.pl
- -rwxr-xr-x. 1 root root 637 Dec 27 16:08 ex2.pl
- -rwxr-xr-x. 1 user user 0 Dec 27 13:15 file1
- ---x--x--x. 1 user user 0 Dec 27 13:15 file2
- -rwxrwxrwx. 1 user user 0 Dec 27 13:15 file3
- ----------. 1 user user 0 Dec 27 13:15 file4
- -r--r--r--. 1 user user 0 Dec 27 13:16 file5
- -rwxr-xr-x. 1 user user 1680 Dec 19 10:37 mod_datetime.pl
- -rwxr-xr-x. 1 user user 501 Dec 18 21:21 mod_file_basename1.pl
- -rwxr-xr-x. 1 user user 292 Dec 18 21:24 mod_file_basename2.pl
- -rwxr-xr-x. 1 user user 538 Dec 18 21:35 mod_file_basename3.pl
- -rwxr-xr-x. 1 user user 612 Dec 18 21:39 mod_file_spec.pl
- --wx-wx-wx. 1 user user 1287 Dec 27 15:11 test1.pl
- =======================================================
- |Filename |Exists|r|w|x|
- =======================================================
- |./ex1_answer.pl | Y|Y|Y|Y|
- |./ex1.pl | Y|Y|Y|Y|
- |./ex2.pl | Y|Y|-|Y|
- |./file1 | Y|Y|Y|Y|
- |./file2 | Y|-|-|Y|
- |./file3 | Y|Y|Y|Y|
- |./file4 | Y|-|-|-|
- |./file5 | Y|Y|-|-|
- |./mod_datetime.pl | Y|Y|Y|Y|
- |./mod_file_basename1.pl | Y|Y|Y|Y|
- |./mod_file_basename2.pl | Y|Y|Y|Y|
- |./mod_file_basename3.pl | Y|Y|Y|Y|
- |./mod_file_spec.pl | Y|Y|Y|Y|
- |./test1.pl | Y|-|Y|Y|
- |file7 | N|-|-|-|
- =======================================================
- done.
- done.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement