Setting permissions for shell scripts


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Setting permissions for shell scripts
# 1  
Old 11-24-2011
Setting permissions for shell scripts

Hi,
I have written a shell script which calls a java program which reads properties from a configuration file and writes to a log file for each session.However the customer wants that the user should not be able to open/edit the configuration file or the log files meaning they should not have any rights on the files.
I tried setting the user id of the shell script giving the user permission to run the script as root so that the owner of the script,configuration file and log file directory is root,and the user will not normally be able to access the said files.However it seems that setuid is not working as it still shows that permission is denied to access the files.However when I set uid on the java executable I was able to run the script without any problems.However that opens another security issue as the java executable can be used by anyone to run any java code compromising the security further.I am working on a Sun Solaris box(namely OSS-RC).
I am in a fix.It would be great if you were able to help me out in this.
# 2  
Old 11-27-2011
Can you post "ls -l" output for the shell script, java file, and the config files being used?

Here's my thought:
1. Create a separate user account and group ID.
2. Change ownership of the shell script, java file, and the configs to this UID and GID.
3. Provide read and execute permission on the shell script and java file. Read+write (if modification is required) for the config files. Make sure "others" do not have any permission on the files.
3. Create another group and add the users who should run the shell script in that.
4. Create ACL and assign this group execute permission on the shell script.

Here's the expected result:

The user tries to execute the shell script. As he belongs to the second group and has execute permission on the shell script through ACL, he would be able to do so. Now, as the SGID bit set, the script will run with the owner GID which provides execute permission to the java code and read+write permission to the config files even though the user's UID does not have any explicit permission on them. You have to make sure that the shell script does not contain anything which would give shell escape to the user.

hope this helps! Smilie
# 3  
Old 11-27-2011
Quote:
Originally Posted by jayadrath
I tried setting the user id of the shell script giving the user permission to run the script as root so that the owner of the script,configuration file and log file directory is root
Solaris does not support setuid shell scripts.
# 4  
Old 11-27-2011
Quote:
Originally Posted by fpmurphy
Solaris does not support setuid shell scripts.
Are you sure of this? I tested the steps I listed in my previous post and it worked fairly smoothly. I use Solaris 10. I have tried using both SUID and SGID bit set on ksh script. It works!

But, yes, Linux (RHEL 6.0) is ignoring the SUID bit on shell script and my steps do not work there.
# 5  
Old 11-28-2011
You cannot elevate your privilege by changing the permissions on a Shell Script file. This applies to all modern unix and Linux Shells.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Setting file permissions dynamically

I'm working in a linux server where wrappers are executed by multiple users of different groups. The log and output files are created with 554 permissions by default. This is stopping other users to run the wrappers unless the log and output files are deleted or given 777 permission. Setting SUID... (1 Reply)
Discussion started by: praveenpa
1 Replies

2. Shell Programming and Scripting

Compare the Permissions for all the scripts that exists in two Directories

Hello All, I am in the process of finding the permissions on all the files that exists in two directories: Dir1: PROD_Scripts/* Dir2: STAGE_Scripts/* Both the Directories have some shell and perl scripts respectively. Step1: Finding all the Scripts that exists in PROD but Not in STAGE.... (2 Replies)
Discussion started by: filter
2 Replies

3. Shell Programming and Scripting

Setting default permissions without umask or cron jobs

I've got a number of people sending files to me in different directory structures, and users on many different groups who need access to these incoming paths. My problem is that umask assumes a default of 666 for files. No execute bit, meaning that my users can't even see the incoming folders.... (2 Replies)
Discussion started by: Karunamon
2 Replies

4. UNIX for Advanced & Expert Users

Automate setting of group permissions

What would be a practical way of making sure files I upload to/edit in a particular directory on a server always have the correct group permissions? I'm forgetful, so I try to automate things like chgrp'ing the files when I'm done. I could write a script to be run by cron. Is that the only way,... (2 Replies)
Discussion started by: mregine
2 Replies

5. UNIX for Dummies Questions & Answers

Setting default directory file permissions and ownership help

I'm trying to setup a directory structure for my staff which enables them full access to files in the directories with their name, and have access to anything in the shared directory. The directory structure looks like this: root@www10 # ls -l total 56 drwxr-xr-x 7 internal internal 4096... (3 Replies)
Discussion started by: v_greg
3 Replies

6. UNIX for Dummies Questions & Answers

Setting permissions and restricting access

Hi all, I have user called "Z". The home directory is /home/Z. I have another directory /home/Z/OP. Within /home/Z/OP, i have 2 directories /home/Z/OP/OP1 and /home/Z/OP2. I want to restrict access for Z to only access /home/Z/OP and /home/Z/OP1 and /home/Z/OP2. What kind of... (4 Replies)
Discussion started by: new2ss
4 Replies

7. UNIX for Dummies Questions & Answers

Setting permissions

I've been told I need to set the permissions for everything in the htdocs folder to 777, but how do I go about doing this? Thanks:o (9 Replies)
Discussion started by: thehaapyappy
9 Replies

8. UNIX for Dummies Questions & Answers

Help setting up file permissions

Hi, I'm in the process of writing a system (in Java) where a user can register to become a member of a website. When they register, a collection of directories and files get created by the application. For example if a user with the name 'fred' registered they would get the following drwxr-xr-x... (0 Replies)
Discussion started by: andrewpmoore
0 Replies

9. AIX

Difference between writing Unix Shell script and AIX Shell Scripts

Hi, Please give me the detailed Differences between writing Unix Shell script and AIX Shell Scripts. Thanks in advance..... (0 Replies)
Discussion started by: haroonec
0 Replies

10. UNIX for Dummies Questions & Answers

Setting Default Permissions for Files

Hi, I am setting up an area on a unix server where multiple people will be editing web pages. Can anyone tell me how to set it up the directory and subdirectories so that when a user creates a new file, it defaults to permissions of 664 or 775? I've tried using umask but from what I can... (1 Reply)
Discussion started by: robbieg
1 Replies
Login or Register to Ask a Question