File permission demonstration script
From assela Pathirana
Jump to navigationJump to search
#!/bin/bash
fmt="%15s%15s%15s%15s%15s\n"
printf $fmt umask file dirs files dirs
while read line
do
set -- $line
umask $1
touch tempfile
mkdir tempdir
fval=`ls -l tempfile|awk '{print $1}'`
dval=`ls -dl tempdir|awk '{print $1}'`
printf $fmt $1 "$(( 777 - $1 ))" "$(( 666 - $1 ))" $dval $fval
rm -rf temp*
done << EOF
022
027
002
006
007
077
EOF
will produce the following output:
umask file dirs files dirs
022 759 648 drwxr-xr-x -rw-r--r--
027 754 643 drwxr-x--- -rw-r-----
002 775 664 drwxrwxr-x -rw-rw-r--
006 771 660 drwxrwx--x -rw-rw----
007 770 659 drwxrwx--- -rw-rw----
077 714 603 drwx------ -rw-------