mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 14:23:04 +01:00
Previously our defaults for DataDirectory, PidFile, RunAsDaemon, and
Log differed from upstreams. Now Tor behaves just like before (with our own DataDirectory and all) only when run as the debian-tor user. If invoked as any other user, Tor will behave just like the pristine upstream version. svn:r6821
This commit is contained in:
parent
4fccf84004
commit
f968d38f3e
4 changed files with 116 additions and 40 deletions
7
debian/README.Debian
vendored
7
debian/README.Debian
vendored
|
@ -1,13 +1,14 @@
|
||||||
This is the Debian package for Tor, The Onion Router.
|
This is the Debian package for Tor, The Onion Router.
|
||||||
|
|
||||||
The following changes have been made to the Tor source to integrate it better
|
Some changes have been made to the Tor source to integrate it better into
|
||||||
into Debian:
|
Debian. If Tor is started as the 'debian-tor' user, then:
|
||||||
|
|
||||||
- RunAsDaemon is enabled by default.
|
- RunAsDaemon is enabled by default.
|
||||||
- PidFile is set to /var/run/tor/tor.pid. No default upstream.
|
- PidFile is set to /var/run/tor/tor.pid. No default upstream.
|
||||||
- default logging goes to /var/log/tor/log instead of stdout.
|
- default logging goes to /var/log/tor/log instead of stdout.
|
||||||
- DataDirectory is set to /var/lib/tor by default. Uses $HOME/.tor upstream.
|
- DataDirectory is set to /var/lib/tor by default. Uses $HOME/.tor upstream.
|
||||||
|
|
||||||
|
If Tor is started as any other user it behaves just like upstream's.
|
||||||
|
|
||||||
--
|
--
|
||||||
Peter Palfrader, Fri, 12 Nov 2004 18:08:54 +0100
|
Peter Palfrader, Mon, 24 Jul 2006 05:20:30 +0200
|
||||||
|
|
7
debian/changelog
vendored
7
debian/changelog
vendored
|
@ -2,8 +2,13 @@ tor (0.1.2.0-alpha-cvs-1) unstable; urgency=low
|
||||||
|
|
||||||
* CVS snapshot.
|
* CVS snapshot.
|
||||||
* Forward port 07_log_to_file_by_default.dpatch.
|
* Forward port 07_log_to_file_by_default.dpatch.
|
||||||
|
* Previously our defaults for DataDirectory, PidFile, RunAsDaemon, and
|
||||||
|
Log differed from upstreams. Now Tor behaves just like before (with
|
||||||
|
our own DataDirectory and all) only when run as the debian-tor user.
|
||||||
|
If invoked as any other user, Tor will behave just like the pristine
|
||||||
|
upstream version.
|
||||||
|
|
||||||
-- Peter Palfrader <weasel@debian.org> Thu, 22 Jun 2006 00:12:44 +0200
|
-- Peter Palfrader <weasel@debian.org> Mon, 24 Jul 2006 05:21:00 +0200
|
||||||
|
|
||||||
tor (0.1.1.21-1) unstable; urgency=low
|
tor (0.1.1.21-1) unstable; urgency=low
|
||||||
|
|
||||||
|
|
124
debian/patches/06_add_compile_time_defaults.dpatch
vendored
124
debian/patches/06_add_compile_time_defaults.dpatch
vendored
|
@ -23,33 +23,97 @@ esac
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
@DPATCH@
|
@DPATCH@
|
||||||
diff -urNad tor-0.1.1.5/src/or/config.c /tmp/dpep.Xv4cHn/tor-0.1.1.5/src/or/config.c
|
diff -urNad tor~/src/or/config.c tor/src/or/config.c
|
||||||
--- tor-0.1.1.9/src/or/config.c 2005-10-17 03:54:24.917618642 +0200
|
--- tor~/src/or/config.c 2006-07-23 19:31:29.000000000 +0200
|
||||||
+++ /tmp/foo/tor/src/or/config.c 2005-10-17 03:57:52.040022393 +0200
|
+++ tor/src/or/config.c 2006-07-24 05:13:19.924871985 +0200
|
||||||
@@ -111,7 +111,7 @@
|
@@ -12,6 +12,7 @@
|
||||||
VAR("ContactInfo", STRING, ContactInfo, NULL),
|
**/
|
||||||
VAR("ControlPort", UINT, ControlPort, "0"),
|
|
||||||
VAR("CookieAuthentication",BOOL, CookieAuthentication, "0"),
|
#include "or.h"
|
||||||
- VAR("DataDirectory", STRING, DataDirectory, NULL),
|
+#include <pwd.h>
|
||||||
+ VAR("DataDirectory", STRING, DataDirectory, "/var/lib/tor"),
|
#ifdef MS_WINDOWS
|
||||||
VAR("DebugLogFile", STRING, DebugLogFile, NULL),
|
#include <shlobj.h>
|
||||||
VAR("DirAllowPrivateAddresses",BOOL, DirAllowPrivateAddresses, NULL),
|
#endif
|
||||||
VAR("DirBindAddress", LINELIST, DirBindAddress, NULL),
|
@@ -396,6 +397,10 @@
|
||||||
@@ -162,7 +162,7 @@
|
static void check_libevent_version(const char *m, const char *v, int server);
|
||||||
VAR("ORPort", UINT, ORPort, "0"),
|
#endif
|
||||||
VAR("OutboundBindAddress", STRING, OutboundBindAddress, NULL),
|
|
||||||
VAR("PathlenCoinWeight", DOUBLE, PathlenCoinWeight, "0.3"),
|
+static int debian_running_as_debiantor();
|
||||||
- VAR("PidFile", STRING, PidFile, NULL),
|
+static int debian_config_fix_defaults();
|
||||||
+ VAR("PidFile", STRING, PidFile, "/var/run/tor/tor.pid"),
|
+
|
||||||
VAR("ProtocolWarnings", BOOL, ProtocolWarnings, "0"),
|
+
|
||||||
VAR("ReachableAddresses", LINELIST, ReachableAddresses, NULL),
|
/*static*/ or_options_t *options_new(void);
|
||||||
VAR("RecommendedVersions", LINELIST, RecommendedVersions, NULL),
|
|
||||||
@@ -174,7 +174,7 @@
|
#define OR_OPTIONS_MAGIC 9090909
|
||||||
VAR("RendPostPeriod", INTERVAL, RendPostPeriod, "20 minutes"),
|
@@ -2663,7 +2668,7 @@
|
||||||
VAR("RephistTrackTime", INTERVAL, RephistTrackTime, "24 hours"),
|
int
|
||||||
OBSOLETE("RouterFile"),
|
options_init_from_torrc(int argc, char **argv)
|
||||||
- VAR("RunAsDaemon", BOOL, RunAsDaemon, "0"),
|
{
|
||||||
+ VAR("RunAsDaemon", BOOL, RunAsDaemon, "1"),
|
- or_options_t *oldoptions, *newoptions;
|
||||||
VAR("RunTesting", BOOL, RunTesting, "0"),
|
+ or_options_t *oldoptions, *newoptions = NULL;
|
||||||
VAR("SafeLogging", BOOL, SafeLogging, "1"),
|
config_line_t *cl;
|
||||||
VAR("ShutdownWaitLength", INTERVAL, ShutdownWaitLength, "30 seconds"),
|
char *cf=NULL, *fname=NULL, *errmsg=NULL;
|
||||||
|
int i, retval;
|
||||||
|
@@ -2671,6 +2676,9 @@
|
||||||
|
static char **backup_argv;
|
||||||
|
static int backup_argc;
|
||||||
|
|
||||||
|
+ if (debian_config_fix_defaults() < 0)
|
||||||
|
+ goto err;
|
||||||
|
+
|
||||||
|
if (argv) { /* first time we're called. save commandline args */
|
||||||
|
backup_argv = argv;
|
||||||
|
backup_argc = argc;
|
||||||
|
@@ -3948,3 +3956,52 @@
|
||||||
|
puts(routerparse_c_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Checks whether we are running as the debian-tor user.
|
||||||
|
+ * Returns -1 on error, 1 if we are debian-tor, 0 if not */
|
||||||
|
+static int
|
||||||
|
+debian_running_as_debiantor()
|
||||||
|
+{
|
||||||
|
+ struct passwd *pw = NULL;
|
||||||
|
+ int uid;
|
||||||
|
+
|
||||||
|
+ uid = getuid();
|
||||||
|
+ pw = getpwuid(uid);
|
||||||
|
+ if (!pw) {
|
||||||
|
+ log(LOG_WARN, LD_GENERAL, "Could not get passwd information for %d.", uid);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ assert(pw->pw_name);
|
||||||
|
+ if (strcmp(pw->pw_name, "debian-tor") == 0)
|
||||||
|
+ return 1;
|
||||||
|
+ else
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
+debian_config_fix_defaults()
|
||||||
|
+{
|
||||||
|
+ config_var_t *var;
|
||||||
|
+ static int fixed = 0;
|
||||||
|
+ int running_as_debian;
|
||||||
|
+
|
||||||
|
+ if (fixed) return 0;
|
||||||
|
+ fixed = 1;
|
||||||
|
+
|
||||||
|
+ running_as_debian = debian_running_as_debiantor();
|
||||||
|
+ if (running_as_debian < 0) return -1;
|
||||||
|
+ if (!running_as_debian) return 0;
|
||||||
|
+
|
||||||
|
+ var = config_find_option(&options_format, "DataDirectory");
|
||||||
|
+ tor_assert(var);
|
||||||
|
+ var->initvalue = tor_strdup("/var/lib/tor");
|
||||||
|
+
|
||||||
|
+ var = config_find_option(&options_format, "PidFile");
|
||||||
|
+ tor_assert(var);
|
||||||
|
+ var->initvalue = tor_strdup("/var/run/tor/tor.pid");
|
||||||
|
+
|
||||||
|
+ var = config_find_option(&options_format, "RunAsDaemon");
|
||||||
|
+ tor_assert(var);
|
||||||
|
+ var->initvalue = tor_strdup("1");
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
|
18
debian/patches/07_log_to_file_by_default.dpatch
vendored
18
debian/patches/07_log_to_file_by_default.dpatch
vendored
|
@ -23,16 +23,22 @@ esac
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
@DPATCH@
|
@DPATCH@
|
||||||
diff -urNad tor-0.1.2.0-alpha-cvs/src/or/config.c /tmp/dpep.YwfNhI/tor-0.1.2.0-alpha-cvs/src/or/config.c
|
diff -urNad tor~/src/or/config.c tor/src/or/config.c
|
||||||
--- tor-0.1.2.0-alpha-cvs/src/or/config.c
|
--- tor~/src/or/config.c 2006-07-24 05:15:02.576170550 +0200
|
||||||
+++ /tmp/dpep.YwfNhI/tor-0.1.2.0-alpha-cvs/src/or/config.c
|
+++ tor/src/or/config.c 2006-07-24 05:18:45.286651501 +0200
|
||||||
@@ -2079,7 +2079,7 @@
|
@@ -2118,8 +2118,13 @@
|
||||||
|
REJECT("Failed to normalize old Log options. See logs for details.");
|
||||||
|
|
||||||
/* Special case on first boot if no Log options are given. */
|
/* Special case on first boot if no Log options are given. */
|
||||||
- if (!options->Logs && !options->RunAsDaemon && !from_setconf)
|
- if (!options->Logs && !options->RunAsDaemon && !from_setconf)
|
||||||
- config_line_append(&options->Logs, "Log", "notice stdout");
|
- config_line_append(&options->Logs, "Log", "notice stdout");
|
||||||
+ if (!options->Logs && !from_setconf)
|
+ if (debian_running_as_debiantor()) {
|
||||||
+ config_line_append(&options->Logs, "Log", "notice file /var/log/tor/log");
|
+ if (!options->Logs && !from_setconf)
|
||||||
|
+ config_line_append(&options->Logs, "Log", "notice file /var/log/tor/log");
|
||||||
|
+ } else {
|
||||||
|
+ if (!options->Logs && !options->RunAsDaemon && !from_setconf)
|
||||||
|
+ config_line_append(&options->Logs, "Log", "notice stdout");
|
||||||
|
+ }
|
||||||
|
|
||||||
if (options_init_logs(options, 1)<0) /* Validate the log(s) */
|
if (options_init_logs(options, 1)<0) /* Validate the log(s) */
|
||||||
REJECT("Failed to validate Log options. See logs for details.");
|
REJECT("Failed to validate Log options. See logs for details.");
|
||||||
|
|
Loading…
Add table
Reference in a new issue