file permissions
Alan McKinnon
alan at linuxholdings.co.za
Mon Sep 11 14:07:35 UTC 2006
On Monday 11 September 2006 15:34, Zoltan Szecsei wrote:
> Alan McKinnon wrote:
> > Ok, let's back up a little then and get some facts to work
> > with:
> >
> > With what options is the target filesystem mounted, and
> > what fs?
>
> ext3
>
> > What umask is in effect?
>
> the default umask 022 in .bash_profile is commented out
>
> root at gl0:/home/zls# cat /etc/login.defs | grep -i ask
> # UMASK Default "umask" value.
> # UMASK usage is discouraged because it catches only some
> classes of user # umask in shell rc file will catch also
> logins through su, cron, ssh etc. # At the same time, using
> shell rc to set umask won't catch entries which use
> # Therefore the use of pam_umask is recommended (Debian
> package libpam-umask)
> # This avoids the confusion created by having the umask set
> # 022 is the "historical" value in Debian for UMASK when it
> was used #UMASK 022
> UMASK 002
> # Other former uses of this variable such as setting the
> umask when
>
> > What happens when the umask is changed to 0066?
>
> I changed it in /etc/login.defs and it seemed to have no
> effect. (but then I get into gl0 using putty from my WinXP
> box)
>
> I need a way to force all files in a directory to keep their
> 775 permissions regardless of who puts the file into that
> directory, and regardless of how that user logged into the
> system and regardless of whether the file originated from
> another host or not.
That's cool, but you didn't answer two of my questions. We both
know how umask is supposed to work, what we don't know is why
it isn't doing that on your machine.
Which 4 numbers are printed to the console when you run
the 'umask' command in a shell? And what are the mount options
and fs type of the filesystem in question? If you touch a new
file there, what permissions does it have - are they set right
at first, then something else changes them after two seconds
maybe?
If all else fails:
Step 1 is to realise that what you want is completely contrary
to the design of the ext2/3 & reiser filesystems - these put
responsibility for settings permissions totally under the
user's control, so there isn't a way to ensure that a certain
permission will be set.
Then, 775 seems odd - are these all executable files? There is
no way I know of the create a new file and have any of the
execute bits set. The kernel applies a hard coded MODE of 0666
to new files, modified by the umask. To set x, one has to run
chmod. But no matter, this doesn't change the principle
involved.
I assume you want the files to start with 775 and to never
change to something else. I can think of a few workarounds:
1. Use the affs or adfs file system types, these have a mode
option per the man page
2. Hook into some daemon like fam and chmod all new or changed
files as they are changed
3. Run 'find -perm -exec chmod' every few minutes in a cron
4. Run 'chmod -R 775 /path/to/dir/*' every minute
5. Place the directory under discussion on a vfat file system.
Mount it using an appropriate combination of exec, umask,
fmask, dmask, uid and gid options. This satisfies local users.
Share this dir using samba and enforce the permissions you
want.
Hopefully one of these suits your needs.
alan
>
>
> Zoltan
>
> > alan
>
> --
>
> ===========================================
> Geograph (Pty) Ltd.
> P.O. Box 31255, Tokai 7966, South Africa.
>
> B3-106 Tokai Village, cnr Vans/Tokai Rds,
> Tokai 7945, Western Cape, South Africa.
>
> Tel: +27-21-7154329 Mobile: +27-83-6004028
> Fax: +27-86-6115323
> ===========================================
More information about the ubuntu-users
mailing list