[tor-commits] [arm/master] Cautioning users against running arm as root

atagar at torproject.org atagar at torproject.org
Sun Sep 25 00:01:55 UTC 2011


commit e0248705018a57c55d7c99295a66857b617a06f1
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Sep 24 16:56:26 2011 -0700

    Cautioning users against running arm as root
    
    Notice level message at startup that cautions the user against running arm as
    root.
---
 src/starter.py |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/starter.py b/src/starter.py
index 6ed516e..b184330 100644
--- a/src/starter.py
+++ b/src/starter.py
@@ -101,6 +101,7 @@ PRIVATE_TORRC_ENTRIES = ["HashedControlPassword", "Bridge", "HiddenServiceDir"]
 
 # notices given if the user is running arm or tor as root
 TOR_ROOT_NOTICE = "Tor is currently running with root permissions. This is not a good idea and shouldn't be necessary. See the 'User UID' option from Tor's man page for an easy method of reducing its permissions after startup."
+ARM_ROOT_NOTICE = "Arm is currently running with root permissions. This is not a good idea, and will still work perfectly well if it's run with the same user as Tor (ie, starting with \"sudo -u %s arm\")."
 
 def allowConnectionTypes():
   """
@@ -493,13 +494,23 @@ if __name__ == '__main__':
   initTime = time.time() - startTime
   controller = util.torTools.getConn()
   
+  torUser = None
   if conn:
     controller.init(conn)
     
     # give a notice if tor is running with root
-    if controller.getMyUser() == "root":
+    torUser = controller.getMyUser()
+    if torUser == "root":
       util.log.log(util.log.NOTICE, TOR_ROOT_NOTICE)
-      
+  
+  # Give a notice if arm is running with root. Querying connections usually
+  # requires us to have the same permissions as tor so if tor is running as
+  # root then drop this notice (they're already then being warned about tor
+  # being root, anyway).
+  
+  if torUser != "root" and os.getuid() == 0:
+    torUserLabel = torUser if torUser else "<tor user>"
+    util.log.log(util.log.NOTICE, ARM_ROOT_NOTICE % torUserLabel)
   
   # fetches descriptions for tor's configuration options
   _loadConfigurationDescriptions(pathPrefix)



More information about the tor-commits mailing list