script to recursively change permissions on file and dirs differently?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users script to recursively change permissions on file and dirs differently?
# 1  
Old 12-16-2009
script to recursively change permissions on file and dirs differently?

Hi there,

I need to change all files/dirs

1. all files with 744
2. all dirs with 755

is there a script for that ?

thanks,
thegunman
# 2  
Old 12-16-2009
Use find with the -type d option to find directories, and find again with the -type f option to find files. The -exec option of find can be used to run chmod.
# 3  
Old 12-16-2009
Presuming you mean all files with 644 (not 744) and all dirs 755, this should work:
Code:
chmod -R a=r,a+X,u+w /path/to/dir


Last edited by Scrutinizer; 12-16-2009 at 06:00 PM..
# 4  
Old 12-16-2009
Quote:
Originally Posted by Scrutinizer
Presuming you mean all files with 644 (not 744) and all dirs 755, this should work:
Code:
chmod -R a=rX,u+w /path/to/dir

Hi, Mr. S.

Aren't you slightly assuming that everything has the umask default?
# 5  
Old 12-16-2009
Hi Mr. Moderator (Smilie),

IMO this should work whatever your umask is set to. Note I did make a small modification, otherwise files that were already executable would keep their execute permissions.

S.
# 6  
Old 12-16-2009
Thank you Smilie

I don't doubt you - I never would, and my umask analysis (although wrong) looked that way because of the files in my directory at the time that didn't seem to change.

I did a wee test:

Code:
$ cd Test
$ touch a b c
$ ll
total 0
drwxr-xr-x  5 scott  staff  170 Dec 16 23:18 .
drwxr-xr-x  8 scott  staff  272 Dec 16 23:12 ..
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 a
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 b
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 c
$ chmod 000 a
$ chmod 777 . c
$ ll
total 0
drwxrwxrwx  5 scott  staff  170 Dec 16 23:18 .
drwxr-xr-x  8 scott  staff  272 Dec 16 23:12 ..
----------  1 scott  staff    0 Dec 16 23:18 a
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 b
-rwxrwxrwx  1 scott  staff    0 Dec 16 23:18 c
$ cd ..
$ chmod -R a=r,a+X,u+w Test
$ ll Test
drwxr-xr-x  5 scott  staff  170 Dec 16 23:18 .
drwxr-xr-x  8 scott  staff  272 Dec 16 23:12 ..
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 a
-rw-r--r--  1 scott  staff    0 Dec 16 23:18 b
-rwxr-xr-x  1 scott  staff    0 Dec 16 23:18 c


Last edited by Scott; 12-16-2009 at 06:41 PM.. Reason: changed: umask analysis looked -> umask analysis (although wrong) looked
# 7  
Old 12-16-2009
This is strange, on my host I get different results:
Code:
$ ls -la chmodtest/
total 28
drwxr-xr-x   6 unixuser unixuser 4096 2009-12-16 23:37 .
drwxr-xr-x 237 unixuser unixuser 8192 2009-12-16 22:44 ..
d---------   2 unixuser unixuser 4096 2009-12-16 22:44 a
drwxr-xr-x   2 unixuser unixuser 4096 2009-12-16 22:44 b
drwxr-xr-x   3 unixuser unixuser 4096 2009-12-16 23:01 c
drwxr-xr-x   2 unixuser unixuser 4096 2009-12-16 22:44 d
----------   1 unixuser unixuser    0 2009-12-16 23:37 x
-rw-r--r--   1 unixuser unixuser    0 2009-12-16 23:37 y
-rwxrwxrwx   1 unixuser unixuser    0 2009-12-16 23:37 z
$ chmod -R a=r,a+X,u+w chmodtest/
$ ls -la chmodtest/
total 28
drwxr-xr-x   6 unixuser unixuser 4096 2009-12-16 23:37 .
drwxr-xr-x 237 unixuser unixuser 8192 2009-12-16 22:44 ..
drwxr-xr-x   2 unixuser unixuser 4096 2009-12-16 22:44 a
drwxr-xr-x   2 unixuser unixuser 4096 2009-12-16 22:44 b
drwxr-xr-x   3 unixuser unixuser 4096 2009-12-16 23:01 c
drwxr-xr-x   2 unixuser unixuser 4096 2009-12-16 22:44 d
-rw-r--r--   1 unixuser unixuser    0 2009-12-16 23:37 x
-rw-r--r--   1 unixuser unixuser    0 2009-12-16 23:37 y
-rw-r--r--   1 unixuser unixuser    0 2009-12-16 23:37 z

I would tend think my platform responds as expected. I am puzzled by your file c . Could it be your chmod has a bug?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change permission on a file recursively

Hi, this is the structure of the directory /local/home/app/cases under cases directory, below are the sub directories and each directory has files. /local/home/app/cases/1 /local/home/app/cases/2 /local/home/app/cases/3 /local/home/app/cases/4 File types are .txt .sh and so... (5 Replies)
Discussion started by: lookinginfo
5 Replies

2. Shell Programming and Scripting

Script to change Permissions on files and directories

Hey, It's me again. Have a problem, that's not really a problem. I have the below script, that goes to the directory I want it to go to. lists out the directories available, lets you choose the directory you want, then it changes the permissions on said directory. using chmod -R and chown -R. ... (2 Replies)
Discussion started by: gkelly1117
2 Replies

3. Shell Programming and Scripting

Help on script to change permissions

Hi All I have the following script that is supposed to change permissions of incoming files to a directory, but it does not seem to do what I want, please can you help: mkdir -p /tmp/tmpdir find /moneta_polled01/sgsn/ -exec ls -l {} \; |grep -v rwxrwxrwx |awk '{print $9}' >... (4 Replies)
Discussion started by: fretagi
4 Replies

4. Shell Programming and Scripting

Help on script to change permissions

Hi I have written the following script that later I want to put in cron,: #!/bin/bash _find="/usr/bin/find" _paths="/moneta_polled01/mediation_gsm /moneta_polled01/mediation_mmsc" for d in $_paths do $_find $d -type f -exec chmod 777 {} \; done but it does not seem to be... (8 Replies)
Discussion started by: fretagi
8 Replies

5. Shell Programming and Scripting

ksh; Change file permissions, update file, change permissions back?

Hi, I am creating a ksh script to search for a string of text inside files within a directory tree. Some of these file are going to be read/execute only. I know to use chmod to change the permissions of the file, but I want to preserve the original permissions after writing to the file. How can I... (3 Replies)
Discussion started by: right_coaster
3 Replies

6. Windows & DOS: Issues & Discussions

script to change widows update permissions

I want to allow windows update when ordinary users are logged on, I'm pretty sure that adjusting the permissions registry entry HEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/WindowsUpdate to allow acces to all domins users does the trick. I already have a logon.bat that runs at... (0 Replies)
Discussion started by: barrydocks
0 Replies

7. UNIX for Dummies Questions & Answers

Recursively dump all sub-dirs contents?

Hi, I have a dir structure that has many many subdirs, I would like to dump all the files from al the sub-dirs into a single directory? Can someone tell me the mv command that would do this please? before example: datadir/ datadir/datajan/jan.dat datadir/datafeb/feb.dat after example:... (1 Reply)
Discussion started by: CountryGent
1 Replies

8. Shell Programming and Scripting

script to change the access permissions of the files

Hi, I want to change the access permissions of the files whose extension is same.For example *.c but these are inside a directory and inside that other directory is there and it contains the .c files..for example-- So my aim is to search the files under src and change the access permissions... (3 Replies)
Discussion started by: smartgupta
3 Replies

9. Cybersecurity

Recursively find and change Permissions on Man pages

Just joined after using the site as a guest.. (Very Good Stuff in here.. thanks folks.) I am in the process of hardening a Solaris 10 server using JASS. I also must use DISA Security Checklists (SRR) scripts to test for things that did not get hardened to DISA standards. One of the things... (5 Replies)
Discussion started by: altamaha
5 Replies

10. UNIX for Dummies Questions & Answers

Recursively changing permissions on files

Please excuse for double posting, but since this seems like a " yep, me dummy question", I feel I should post here.:o Just joined after using the site as a guest.. (Very Good Stuff in here.. thanks folks.) I am in the process of hardening a Solaris 10 server using JASS. I also must use DISA... (1 Reply)
Discussion started by: altamaha
1 Replies
Login or Register to Ask a Question