Commit 7f654a6a authored by Nick Mathewson's avatar Nick Mathewson 👁
Browse files

Add a ControlPortFileGroupWritable option

parent dad12188
......@@ -7,5 +7,8 @@
type. This is useful for if the user has selected SocksPort
"auto", and you need to know which port got chosen.
- There is a ControlPortWriteToFile option that tells Tor to write
its actual control port or ports to a chosen file.
its actual control port or ports to a chosen file. If the option
ControlPortFileGroupReadable is set, the file is created as
......@@ -196,6 +196,11 @@ Other options can be specified either on the command-line (--option
this address. Usable by controllers to learn the actual control port
when ControlPort is set to "auto".
**ControlPortFileGroupReadable** **0**|**1**::
If this option is set to 0, don't allow the filesystem group to read the
control port file. If the option is set to 1, make the control port
file readable by the default GID. (Default: 0).
**DataDirectory** __DIR__::
Store working data in DIR (Default: @LOCALSTATEDIR@/lib/tor)
......@@ -206,6 +206,7 @@ static config_var_t _option_vars[] = {
V(ContactInfo, STRING, NULL),
V(ControlListenAddress, LINELIST, NULL),
V(ControlPort, PORT, "0"),
V(ControlPortFileGroupReadable,BOOL, "0"),
V(ControlPortWriteToFile, FILENAME, NULL),
V(ControlSocket, LINELIST, NULL),
V(CookieAuthentication, BOOL, "0"),
......@@ -542,6 +542,14 @@ control_ports_write_to_file(void)
log_warn(LD_CONTROL, "Writing %s failed: %s",
options->ControlPortWriteToFile, strerror(errno));
#ifndef MS_WINDOWS
if (options->ControlPortFileGroupReadable) {
if (chmod(options->ControlPortWriteToFile, 0640)) {
log_warn(LD_FS,"Unable to make %s group-readable.",
SMARTLIST_FOREACH(lines, char *, cp, tor_free(cp));
......@@ -2876,6 +2876,8 @@ typedef struct {
/** File where we should write the ControlPort. */
char *ControlPortWriteToFile;
/** Should that file be group-readable? */
int ControlPortFileGroupReadable;
} or_options_t;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment