Hi.
My example:
I have a filesystem /log. Everyday, log files are copied to /log. I'd like to set owner and permission for files and directories in /log like that
chown -R log_adm /log/*
chmod -R 544 /log/*
It's OK, but just at that time. When a new log file or new directory is created in /log, it has owner and permisssion different with what I want . I don't want to execute these 2 commands above days by days to fix this.
I want every files and directories created in /log or copied to /log have owner: log_adm and permission:544. Is it possible. If yes, how ???
How do the files get into /log? Is it a manual process or a script which is being run? In which case how is the script invoked: manually, batch scheduling etc.?
Once you know the answers to the above, I advise you to have a look into the "umask" command.
Yeah, files are copied to /log and directories are created in /log by some scripts ( scp and mkdir commands ). I can set the owner and permission by modifying the script, but it's a bit complex - not as simple as the example above. Of course it could be done, but I'm looking for a better solution. Thanks for your advice
Yeah the script which creates the files and directories has the owner: root, and files and directories created also have the owner : root, but I don't want the change the script's owner. I'm trying to find something useful in "umask"
You can use SetGID, but SetUID is ignored for directories on must Unix & Linux systems, as far as I know. (Except BSD, apparently. It definitely doesn't work on AIX.)
Can't you run the script as log_adm?
Alternatively, why can't you include the chown & chmod in the script?
Most has laready been said but i'd like to question your premise: filemode 544 means "read and execute rights for the owner, readonly for his group and everybody else." Are you sure you want this? It is unusual to have a log file executed and i suppose it should be 644 instead. If any other user should be able to write into that directory you will need to open the filemode even some more: 664 or even 666.