| Line 8: |
Line 8: |
| | <br /> | | <br /> |
| | Examples<br /> | | Examples<br /> |
| | + | * 4 = r-- |
| | + | * 6 = rw- |
| | + | * 7 = rwx |
| | <br /> | | <br /> |
| | <nowiki> | | <nowiki> |
| Line 17: |
Line 20: |
| | |chmod u=rw,go= | chmod 600 | | | |chmod u=rw,go= | chmod 600 | |
| | |chmod u=rwx,go= | chmod 700 | | | |chmod u=rwx,go= | chmod 700 | |
| − | x------------------------x-----------x</nowiki> | + | x------------------------x-----------x |
| | + | test: Du=rwx,go=rx,Fu=rw,og=r |
| | + | </nowiki> |
| | Sitcky bit:<br /> | | Sitcky bit:<br /> |
| | When assigned to a directory, the elements inside it can only be renamed by:<br /> | | When assigned to a directory, the elements inside it can only be renamed by:<br /> |
| Line 23: |
Line 28: |
| | * the owner of the directory | | * the owner of the directory |
| | * root | | * root |
| − | | + | chmod +t dir_name |
| | + | chmod -t dir_name |
| | <br /> | | <br /> |
| | chmod 400 file - Read by owner<br /> | | chmod 400 file - Read by owner<br /> |
| Line 40: |
Line 46: |
| | chmod 444 file - Allow read permission to owner and group and world<br /> | | chmod 444 file - Allow read permission to owner and group and world<br /> |
| | chmod 777 file - Allow everyone to read, write, and execute file<br /> | | chmod 777 file - Allow everyone to read, write, and execute file<br /> |
| | + | |
| | + | == Change permissions only for directories == |
| | + | chmod 755 $(find /path/to/base/dir -type d) |
| | + | |
| | + | == Change permissions only for files == |
| | + | chmod 640 $(find /path/to/base/dir -type f) |
| | + | for fi in $(find /Pilaf -type f); do chmod 640 $fi;done # if there are many files |
| | + | |
| | + | == Chmod Script == |
| | + | <nowiki>#!/bin/sh |
| | + | # syntax: setperm.s destdir |
| | + | # |
| | + | if [ -z $1 ] ; then echo "Requires single argument: <directoryname>" ; exit 1 ; fi |
| | + | |
| | + | destdir=$1 |
| | + | |
| | + | dirmode=0770 |
| | + | filemode=0660 |
| | + | |
| | + | YN=no |
| | + | |
| | + | printf "\nThis will RECURSIVELY change the permissions for this entire branch:\n " |
| | + | printf "\t$destdir\n" |
| | + | printf "\tDirectories chmod = $dirmode\tFiles chmod = $filemode\n" |
| | + | printf "Are you sure want to do this [$YN]? " |
| | + | |
| | + | read YN |
| | + | |
| | + | case $YN in |
| | + | [yY]|[yY][eE][sS]) |
| | + | # change permissions on files and directories. |
| | + | find $destdir -type f -print0 | xargs -0 chmod $filemode $i |
| | + | find $destdir -type d -print0 | xargs -0 chmod $dirmode $ii ;; |
| | + | |
| | + | *) echo "\nBetter safe than sorry I always say.\n" ;; |
| | + | esac</nowiki> |