Umask permission

Hi All

please help in this ..

I have application user called: startsys

umask already defined in the profile of application user as umask 033.

Actually application creating files once the file getting create it created with different permission which is not the same of the defined umask.

Note:
� When I create the file by user manually using touch command created with correct permission.
� Application using the same user When the file created by application created by different permission.

Please advise why this is happening.

Not sure I understood...
your application creating files? what application? run as user startsys? but how?
Most certainly the result you see has to do with environment:
The difference between a program that you execute as startsys using su startsys and su - startsys
the second case using as you call it the profile of that user...

From your comment i take it you are aware that the umask setting is not the filemode itself but rather the complement to it.

Since you didn't tell us anything about the environment (application, the way it is called, ...) there could be one of several reasons which i can only speculate about:

1) the application might be built that way. The way you can change filemodes (with chmod ) to override umask s default the application can do the same. See the fopen() system call.

2) the application might change effective UID/GID. Some applications (i.e. Apache) do this.

3) if the application is called by a script maybe the script itself calls the application with a new user like in su - otheruser -c application

4) the directory the application creates files in may have one or more sticky bits set so that files are created with different ownerships and/or permissions

I hope this helps.

bakunin

I discovered where is the problem!!

actually the application is not applying user umask which is startsys it is applying system umask which is defined under /etc/profile

umask already defined in user profile but is not getting applied by the application how to can I keep the application to apply the user umask not system umask ?

Ahem, i don't know what you mean by "umask" but it is definitely not what the umask utility is for. It seems that you mean the "group ID" of the file being created, but as i could be wrong you should post an example of what you exactly mean. What makes you think that "the application is not applying user umask which is startsys it is applying system umask"?

I hope this helps.

bakunin

1 Like

in the user profile /home/startsys/.profile umask defined for startsys user as : umask 033

The Application is creating files using startsys user and these files getting created with the umask permission which is defined in /etc/profile is not applying the umask permission of /home/startsys/.profile

why this is happening ?

On what operating system is user startsys creating a file?

How did startsys login to that operating system?

What interface did startsys use to create that file?

What mode did the file have when startsys created that file (please show us the output from;

ls -l pathname

where pathname is the pathname of the file that startsys created?

Have startsys run the command:

umask

and tell us what it reports.

Have startsys run the command:

id

and tell us what it reports.

Have startsys create another file and tell us what exactly what interface was used to create that file and the mode that file had immediately after it was created. What mode did you expect that file to have given the values returned by the umask and id commands?

Has the mode of the file been changed by anyone after startsys created that file?

When your application is running with permissions to create files owned by startsys, exactly how was application invoked? What is the output from the command:

ls -l application_pathname

where application_pathname is an absolute pathname of the file that is used to invoke the application that is running with permissions to create files owned by startsys?

1 Like

So far you continued to explain things we all know... and so from my answer and the followings from my peers should have enlighten you on what is going on...
But to our questions you still havent replied though so simple:
when you run after connecting yourself to your system with the startsys account
Do you get the correct result :
1) after creating a file?
2) after launching your application ?
if here 2 is NO, we need to understand why, and here the above replies gives what to investigate...
And I highly recommend you reading throughout the man pages of umask as I dont think like others you understand what it was for and all its implications
No point going further until 2 here is settled...

And, in addition, also post the output of

ls -ld path

where path is the path without the filename, like this:

ls -l  /path/to/file
ls -ld /path/to

as eventually sticky bits of the directory could influence the ownership (note: this is NOT what the umask does!) of the file.

I hope this helps.

bakunin