summaryrefslogtreecommitdiff
path: root/packaging/macosx/ChmodBPF
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2008-03-15 18:31:52 +0000
committerGerald Combs <gerald@wireshark.org>2008-03-15 18:31:52 +0000
commit46bcad885a7a0c8e7d9b0009b0e231cb3c3677e9 (patch)
treeda6234e8eb1c99e0c4c0bc9f7dbfa6eb303f12fe /packaging/macosx/ChmodBPF
parentdca49accfae6990c6a1dcef28c09104adc82828d (diff)
downloadwireshark-46bcad885a7a0c8e7d9b0009b0e231cb3c3677e9.tar.gz
Check in the OS X packaging patch from bug 2341, since I've had
confirmation that the OS X package works on at least one system other than my laptop. svn path=/trunk/; revision=24640
Diffstat (limited to 'packaging/macosx/ChmodBPF')
-rwxr-xr-xpackaging/macosx/ChmodBPF/ChmodBPF35
-rw-r--r--packaging/macosx/ChmodBPF/README.macosx43
-rw-r--r--packaging/macosx/ChmodBPF/StartupParameters.plist4
3 files changed, 82 insertions, 0 deletions
diff --git a/packaging/macosx/ChmodBPF/ChmodBPF b/packaging/macosx/ChmodBPF/ChmodBPF
new file mode 100755
index 0000000000..8f034609b7
--- /dev/null
+++ b/packaging/macosx/ChmodBPF/ChmodBPF
@@ -0,0 +1,35 @@
+#! /bin/sh
+#
+# $Id$
+
+. /etc/rc.common
+
+StartService ()
+{
+ #
+ # Unfortunately, Mac OS X's devfs is based on the old FreeBSD
+ # one, not the current one, so there's no way to configure it
+ # to create BPF devices with particular owners or groups.
+ # This startup item will make it owned by the admin group,
+ # with permissions rw-rw----, so that anybody in the admin
+ # group can use programs that capture or send raw packets.
+ #
+ # Change this as appropriate for your site, e.g. to make
+ # it owned by a particular user without changing the permissions,
+ # so only that user and the super-user can capture or send raw
+ # packets, or give it the permissions rw-r-----, so that
+ # only the super-user can send raw packets but anybody in the
+ # admin group can capture packets.
+ #
+ chgrp admin /dev/bpf*
+ chmod g+rw /dev/bpf*
+}
+
+StopService ()
+{
+ return 0;
+}
+
+RestartService () { StartService; }
+
+RunService "$1"
diff --git a/packaging/macosx/ChmodBPF/README.macosx b/packaging/macosx/ChmodBPF/README.macosx
new file mode 100644
index 0000000000..25794d8859
--- /dev/null
+++ b/packaging/macosx/ChmodBPF/README.macosx
@@ -0,0 +1,43 @@
+As with other systems using BPF, Mac OS X allows users with read access
+to the BPF devices to capture packets with libpcap and allows users with
+write access to the BPF devices to send packets with libpcap.
+
+On some systems that use BPF, the BPF devices live on the root file
+system, and the permissions and/or ownership on those devices can be
+changed to give users other than root permission to read or write those
+devices.
+
+On newer versions of FreeBSD, the BPF devices live on devfs, and devfs
+can be configured to set the permissions and/or ownership of those
+devices to give users other than root permission to read or write those
+devices.
+
+On Mac OS X, the BPF devices live on devfs, but the OS X version of
+devfs is based on an older (non-default) FreeBSD devfs, and that version
+of devfs cannot be configured to set the permissions and/or ownership of
+those devices.
+
+Therefore, we supply a "startup item" for OS X that will change the
+ownership of the BPF devices so that the "admin" group owns them, and
+will change the permission of the BPF devices to rw-rw----, so that all
+users in the "admin" group - i.e., all users with "Allow user to
+administer this computer" turned on - have both read and write access to
+them.
+
+The startup item is in the ChmodBPF directory in the source tree. A
+/Library/StartupItems directory should be created if it doesn't already
+exist, and the ChmodBPF directory should be copied to the
+/Library/StartupItems directory (copy the entire directory, so that
+there's a /Library/StartupItems/ChmodBPF directory, containing all the
+files in the source tree's ChmodBPF directory; don't copy the individual
+items in that directory to /Library/StartupItems).
+
+If you want to give a particular user permission to access the BPF
+devices, rather than giving all administrative users permission to
+access them, you can have the ChmodBPF/ChmodBPF script change the
+ownership of /dev/bpf* without changing the permissions. If you want to
+give a particular user permission to read and write the BPF devices and
+give the administrative users permission to read but not write the BPF
+devices, you can have the script change the owner to that user, the
+group to "admin", and the permissions to rw-r-----. Other possibilities
+are left as an exercise for the reader.
diff --git a/packaging/macosx/ChmodBPF/StartupParameters.plist b/packaging/macosx/ChmodBPF/StartupParameters.plist
new file mode 100644
index 0000000000..545e2a6830
--- /dev/null
+++ b/packaging/macosx/ChmodBPF/StartupParameters.plist
@@ -0,0 +1,4 @@
+{
+ Description = "Change BPF permissions";
+ Provides = ("Non-root permission to capture or send raw packets");
+}