Plomba na sosne
Krzysztof G. Baranowski
kgb w manjak.knm.org.pl
Śro, 17 Lut 1999, 16:09:38 CET
On Tue, 16 Feb 1999, Wojciech Slusarczyk wrote:
> > /usr/doc/PLD/icmp, a w tymze pliku umiesci sie dokladna informacje o
> > ficzerze, z czym to sie je, co to robi, jak go wlaczac/wylaczac itd.
> > Pasuje ?
> Pewnie ze pasuje
Oto obiecana poprawka do sockpriv Michala. Przetestuj prosze,
bo ja to tylko skompilowalem, a po wczorajszej imprezie nie mam
dzis zbytniej ochoty na przesiadywanie przed kompem ;-)
Kris
--
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Smith & Wesson - The original point and click interface..."
http://www.knm.org.pl/ <prezes w manjak.knm.org.pl>
--- include/linux/sysctl.h.orig Wed Feb 17 15:14:54 1999
+++ include/linux/sysctl.h Wed Feb 17 15:14:33 1999
@@ -96,7 +96,8 @@
KERN_SHMMAX=34, /* int: Maximum shared memory segment */
KERN_MSGMAX=35, /* int: Maximum size of a messege */
KERN_MSGMNB=36, /* int: Maximum message queue size */
- KERN_MSGPOOL=37 /* int: Maximum system message pool size */
+ KERN_MSGPOOL=37, /* int: Maximum system message pool size */
+ KERN_NORAWGID=38
};
--- include/linux/sched.h.orig Wed Feb 17 15:18:29 1999
+++ include/linux/sched.h Wed Feb 17 15:34:57 1999
@@ -591,8 +591,18 @@
* fsuser(). See include/linux/capability.h for defined capabilities.
*/
+extern int no_raw_gid;
+
extern inline int capable(int cap)
{
+ /*
+ * Sockpriv for Linux 2.2.0. Group 'network' (gid 80) is
+ * able to handle RAW sockets.
+ */
+
+ if (!no_raw_gid)
+ goto do_sockpriv;
+
#if 1 /* ok now */
if (cap_raised(current->cap_effective, cap))
#else
@@ -603,6 +613,19 @@
return 1;
}
return 0;
+
+do_sockpriv:
+ #define NETGID 80
+
+ if (cap==CAP_NET_RAW) {
+ int a=0;
+
+ if (current->egid==NETGID)
+ return 1;
+ for (; a<10; a++)
+ if (current->groups[a]==NETGID)
+ return 1;
+ }
}
/*
--- kernel/sysctl.c.orig Wed Feb 17 15:02:42 1999
+++ kernel/sysctl.c Wed Feb 17 15:35:26 1999
@@ -38,6 +38,8 @@
extern int sysctl_overcommit_memory;
extern int nr_queued_signals, max_queued_signals;
+int no_raw_gid = 1;
+
#ifdef CONFIG_KMOD
extern char modprobe_path[];
#endif
@@ -212,6 +214,8 @@
{KERN_SHMMAX, "shmmax", &shmmax, sizeof (int),
0644, NULL, &proc_dointvec},
#endif
+ {KERN_NORAWGID, "no-raw-gid", &no_raw_gid, sizeof (int),
+ 0600, NULL, &proc_dointvec},
{0}
};
Więcej informacji o liście dyskusyjnej pld-devel-pl