[Mono-list] GAC permissions

A Rafael D Teixeira rafael.teixeirabr@terra.com.br
Tue, 22 Mar 2005 14:22:08 -0300


Hi Nik,

First, you should only add things to the gac as root, never as a normal
user. We even tought of an additional user-gac, but I think the idea was
dropped.

Second, everything in my gac is owned by user root and group root. And
the permissions are 

drwxr-xr-x 

for directories /usr/lib/mono, /usr/lib/mono/gac, and for each assembly-
related directory inside /usr/lib/mono/gac and their version-pl.

Taking for example Npgsql.dll instaled in my gac we have a directory 
/usr/lib/mono/gac/Npgsql/1.0.5000.0__5d8b90d52f46fda7/

containing

-rwxr-xr-x  1 root root 181760 Mar 21 15:46 Npgsql.dll
-rw-r--r--  1 root root 106152 Mar 21 15:46 Npgsql.dll.mdb

Assemblies in the GAC are shared content so they must be readable by
everyone. The execute permissions on dlls are just a reminder because
they need to be loaded and executed by mono. 

In case you don't know: the execute bits in permissions for directories
are used to mark them as "listable" (browseable), so if you take them
out the affect user/group won't be able to find/open the files, even if
the files' permissions allow.

HIH,

On Tue, 2005-03-22 at 22:54 +1100, Nik Derewianka wrote: 
> Hi,
> 
> New to linux (suse 9.2) so please bear with me:
> 
> Using mono 1.1.4 all the files in my GAC have owner/group of root.  In 
> my code where i use the Npgsql connector, my code runs fine when 
> executed under root but under a normal user it bombs out badly:
> 
> ** (postgres.exe:9267): WARNING **: Could not find assembly Npgsql, 
> references from /home/nik/postgres.exe (assemblyref_index=1)
>      Major/Minor: 1,0
>      Build:       5000,0
>      Token:       5d8b90d52f46fda7
> System error: No such file or directory
> 
> 
> ** (postgres.exe:9267): WARNING **: Missing method .ctor in assembly 
> /home/nik/postgres.exe typeref index 2
> 
> Unhandled Exception: System.NullReferenceException: Object reference not 
> set to an instance of an object
> 
> 
> Likewise, when using the gacutil to install npgsql from a normal user i 
> get errors and it mentions permissions.
> 
> So what user/group should i be setting the files in the gac to ??  If i 
> change the group to 'users' with read perms then it complains about 
> /etc/mono/machine.config
> 
> It just doesnt feel right that i need to be opening up all the perms on 
> things - but maybe this is how linux does things... if so is there any 
> recommended set of permissions  (or have i royally botched something up 
> with the install ?).
> 
> Any help appreciated,
> Nik
> _______________________________________________
> Mono-list maillist  -  Mono-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
> 
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
> http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=rafael.teixeirabr&_l=1,1111492933.424241.11838.cabue.terra.com.br,4034,Des15,Des15
> 
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 21/03/2005 / Versão: 4.4.00 - Dat 4451
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>