![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Thousand Parsec 0.5.0 (C++ Server branch) | iBot | Software Releases - RSS News | 0 | 05-01-2008 02:10 PM |
| Thousand Parsec 0.3.0 (Python wxWindows Client branch) | iBot | Software Releases - RSS News | 0 | 02-18-2008 11:50 PM |
| removing thousand of carriage returns using sed | ml5003 | Shell Programming and Scripting | 4 | 06-09-2006 02:22 PM |
| 65 thousand dollar question | mud | What's on Your Mind? | 10 | 10-22-2005 10:35 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
getting thousand of permissions
Hi, I would like to ask if someone could help me to shorten this process.
If example i will have a thousand files and i want to get there permisions. pls help. $ sh researcher2.sh rm /home/aris/logs/logna rm a12 for i in `aclget /usr/bin/uname` do grep -e $i ownership | awk '{print $1}' done > a12 echo /usr/bin/uname has the permission of `cat a12` > /home/aris/logs/logna rm a12 for i in `aclget profile` do grep -e $i ownership | awk '{print $1}' done >> a12 echo profile has the permission of `cat a12` >> /home/aris/logs/logna rm12 for i in `aclget cron.sh` do grep -e $i ownership | awk '{print $1}' done >> a12 echo cron.sh has the permission of `cat a12` >> /home/aris/logs/logna clear cp logna /home/aris/a/orig cat /home/aris/logs/logna this is the output : /usr/bin/uname has the permission of 5 5 5 profile has the permission of 1 cron.sh has the permission of 1 7 7 7 ------------------------------------------------------------------------i already tried this one, but it didnt work y=`cat test` for x in `aclget $y` do grep -e $x ownership | awk '{print $1}' >> file122 echo $y permisions is `cat file122` >> file1 done cat file1 $ cat test /usr/bin/uname profile cron.sh |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
This is the value of ownership if you may ask.
$ cat ownership 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx |
|
#3
|
||||
|
||||
|
Code:
#! /usr/local/bin/perl
open(DATA, "< test") || die "Unable to open file test\n";
while (<DATA>) {
chomp;
printf "%s has permission %o \n", $_ , (stat($_))[2]& 0777;
}
close(DATA);
exit 0
|
|
#4
|
|||
|
|||
|
if you have stat in your system (AIX?)
Code:
# stat -c "%a:%n" * Code:
# find /path -printf "%m:%p\n" |
|
#5
|
|||
|
|||
|
sir's,
thanks for the support, but only perl works w/ me. Currently there is no stat command in my aix. I really thank Sir Perderabo. It is much better if it is purely shell script, no problem w/ perl,but this script will be the script to all of our servers. We know that diffrnt servers diffrnt perl. |
|
#6
|
||||
|
||||
|
perl does vary quite a bit between versions and this can cause portability problems. But I doubt that you will be able to find any perl version which cannot run that little script. It stays with just a few basic things. And you wanted speed. There is no way to come close to the performance of the perl script with a shell script.
|
|
#7
|
|||
|
|||
|
Code:
#!/bin/sh
# assume no setuid,setgid bits set.
ls -l | awk '
BEGIN{
perm["rwx"]=7
perm["rw-"]=6
perm["r--"]=4
perm["-wx"]=3
perm["--x"]=1
perm["r-x"]=5
pern["-w-"]=2
}
{
uperm = substr($1,2,3)
gperm = substr($1,5,3)
operm = substr($1,8,3)
printf "%s has permission: %s%s%s\n", $9,perm[uperm],perm[gperm],perm[operm]
}
'
|
|||
| Google The UNIX and Linux Forums |