]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Better error message when told to setuid to ourself.
authorNick Mathewson <nickm@torproject.org>
Tue, 9 Dec 2008 23:26:12 +0000 (23:26 +0000)
committerNick Mathewson <nickm@torproject.org>
Tue, 9 Dec 2008 23:26:12 +0000 (23:26 +0000)
svn:r17543

ChangeLog
src/common/compat.c

index 512785a151b3c8f59a3c07b1218be29c38c69af1..29b0e6de9e64db1e0355b3946d00be6d89a823be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 Changes in version 0.2.1.9-alpha - 200?-??-??
 
+  o Minor features:
+    - Give a better error message when an overzealous init script says,
+      "sudo -u username tor --user username".  Makes Bug 882 easier
+      for users to diagnose.
+
   o Minor features (controller):
     - New CONSENSUS_ARRIVED event to note when a new consensus has
       been fetched and validated.
index 217c9e9849abb43106476e2eeec97524726e4dd9..51172d77bee7dfc4b7cdd46a1f0fbbd87089930b 100644 (file)
@@ -1103,9 +1103,18 @@ switch_id(const char *user)
 
   /* Properly switch egid,gid,euid,uid here or bail out */
   if (setgroups(1, &pw->pw_gid)) {
-    log_warn(LD_GENERAL, "Error setting groups to gid %d: \"%s\". "
-             "If you set the \"User\" option, you must start Tor as root.",
+    log_warn(LD_GENERAL, "Error setting groups to gid %d: \"%s\".",
              (int)pw->pw_gid, strerror(errno));
+    if (old_uid == pw->pw_uid) {
+      log_warn(LD_GENERAL, "Tor is already running as %s.  You do not need "
+               "the \"User\" option if you are already running as the user "
+               "you want to be.  (If you did not set the User option in your "
+               "torrc, check whether it was specified on the command line "
+               "by a startup script.)", user);
+    } else {
+      log_warn(LD_GENERAL, "If you set the \"User\" option, you must start Tor"
+               " as root.");
+    }
     return -1;
   }