summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-06-30 11:22:41 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-06-30 11:22:41 +0000
commitca5918e8ff3da9b30243fa3b5cc273766ccf3008 (patch)
treef4487527b946ebe38815273d839163d4248bb6b5
parentabcf1cb36d0bf22d5f2efa4dd85183a0341b33f8 (diff)
Fixed #6994 -- For fastcgi, set a more sensible default umask.
Also allow the umask value to be customised. Thanks, Antonis Christofides. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7800 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--AUTHORS1
-rw-r--r--django/core/servers/fastcgi.py4
-rw-r--r--django/utils/daemonize.py9
3 files changed, 10 insertions, 4 deletions
diff --git a/AUTHORS b/AUTHORS
index ad3c88354c..d31e36069f 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -94,6 +94,7 @@ answer newbie questions, and generally made Django that much better:
Sengtha Chay <sengtha@e-khmer.com>
ivan.chelubeev@gmail.com
Bryan Chow <bryan at verdjn dot com>
+ Antonis Christofides <anthony@itia.ntua.gr>
Michal Chruszcz <troll@pld-linux.org>
Can Burak Çilingir <canburak@cs.bilgi.edu.tr>
Ian Clelland <clelland@gmail.com>
diff --git a/django/core/servers/fastcgi.py b/django/core/servers/fastcgi.py
index d7145e15ec..dc4c35b08d 100644
--- a/django/core/servers/fastcgi.py
+++ b/django/core/servers/fastcgi.py
@@ -40,6 +40,7 @@ Optional Fcgi settings: (setting=value)
workdir=DIRECTORY change to this directory when daemonizing.
outlog=FILE write stdout to this file.
errlog=FILE write stderr to this file.
+ umask=UMASK umask to use when daemonizing (default 022).
Examples:
Run a "standard" fastcgi process on a file-descriptor
@@ -73,6 +74,7 @@ FASTCGI_OPTIONS = {
'maxrequests': 0,
'outlog': None,
'errlog': None,
+ 'umask': None,
}
def fastcgi_help(message=None):
@@ -159,6 +161,8 @@ def runfastcgi(argset=[], **kwargs):
daemon_kwargs['out_log'] = options['outlog']
if options['errlog']:
daemon_kwargs['err_log'] = options['errlog']
+ if options['umask']:
+ daemon_kwargs['umask'] = int(options['umask'])
if daemonize:
from django.utils.daemonize import become_daemon
diff --git a/django/utils/daemonize.py b/django/utils/daemonize.py
index f0c2f684bd..68e5392d89 100644
--- a/django/utils/daemonize.py
+++ b/django/utils/daemonize.py
@@ -2,7 +2,8 @@ import os
import sys
if os.name == 'posix':
- def become_daemon(our_home_dir='.', out_log='/dev/null', err_log='/dev/null'):
+ def become_daemon(our_home_dir='.', out_log='/dev/null',
+ err_log='/dev/null', umask=022):
"Robustly turn into a UNIX daemon, running in our_home_dir."
# First fork
try:
@@ -13,7 +14,7 @@ if os.name == 'posix':
sys.exit(1)
os.setsid()
os.chdir(our_home_dir)
- os.umask(0)
+ os.umask(umask)
# Second fork
try:
@@ -32,13 +33,13 @@ if os.name == 'posix':
# Set custom file descriptors so that they get proper buffering.
sys.stdout, sys.stderr = so, se
else:
- def become_daemon(our_home_dir='.', out_log=None, err_log=None):
+ def become_daemon(our_home_dir='.', out_log=None, err_log=None, umask=022):
"""
If we're not running under a POSIX system, just simulate the daemon
mode by doing redirections and directory changing.
"""
os.chdir(our_home_dir)
- os.umask(0)
+ os.umask(umask)
sys.stdin.close()
sys.stdout.close()
sys.stderr.close()