What You think about something like that:
[17:33:39] [ttyv8] [61] leila:root:/sys/miscfs/procfs# diff procfs_subr.c.orig 
procfs_subr.c
42a43
> #include <sys/kernel.h>
80a82,119
> 
> SYSCTL_NODE(_vfs, OID_AUTO, procfs, CTLFLAG_RW, 0, "vfs-procfs-level");
> 
> int procfsumask = 077;
> 
> static int
> sysctl_vfs_procfsumask(SYSCTL_HANDLER_ARGS)
> {
>       int     error, umask, mn, pfsu, tmpumask;
> 
>       pfsu = procfsumask;
>       for (umask = 0, mn = 1; pfsu > 0; mn *= 10) {
>               umask += (pfsu % 8) * mn;
>               pfsu /= 8;
>       }
> 
>       error = sysctl_handle_int(oidp, &umask, 0, req);
> 
>       if (error || !req->newptr)
>               return (error);
> 
>       tmpumask = pfsu = umask;
>       for (umask = 0, mn = 1; pfsu > 0; mn *= 8) {
>               umask += (pfsu % 10) << mn;
>               pfsu /= 10;
>       }
> 
>       if (tmpumask < 0 || tmpumask > 0777)
>               return (EPERM);
> 
>       procfsumask = tmpumask;
> 
>       return (error);
> }
> 
> SYSCTL_PROC(_vfs_procfs, OID_AUTO, umask, CTLTYPE_INT|CTLFLAG_RW,
>     0, 0, sysctl_vfs_procfsumask, "I", "Current procfs umask");
> 
203a243,245
> 
>       if (pfs->pfs_type != Pcurproc)
>               pfs->pfs_mode &= ~procfsumask;

This gives us new sysctl (vfs.procfs.umask) and with this we can control
permissions of procfs files (this works like umask(2)).

Or maybe just:
[17:33:39] [ttyv8] [61] leila:root:/sys/miscfs/procfs# diff procfs_subr.c.orig 
procfs_subr.c.2
51a52,53
> extern int ps_showallprocs;
> 
203a206,208
> 
>       if ((!ps_showallprocs) && pfs->pfs_type != Pcurproc)
>               pfs->pfs_mode &= 0700;

Hmm?

-- 
Paweł Jakub Dawidek
UNIX Systems Administrator
http://garage.freebsd.pl
Am I Evil? Yes, I Am.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to