https://bugzilla.wikimedia.org/show_bug.cgi?id=64219

            Bug ID: 64219
           Summary: webservice creates blocking files and jobs when called
                    from a user account with an eponymous tool
           Product: Wikimedia Labs
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: Unprioritized
         Component: tools
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected], [email protected],
                    [email protected]
       Web browser: ---
   Mobile Platform: ---

When a user X is a member of the tool tools.X and he calls "webservice start"
as his /user/ account, a lighttpd process is started that doesn't work, but
clogs the tools' directories with files not (over-) writable by the /tool/
account on subsequent, correct invocations.

Symptoms:

| root@tools-login:~# for TOOL in $(getent passwd | sed -ne
's/^tools\.\([^:]\+\):.*/\1/p;'); do sudo -u tools.$TOOL find
/data/project/$TOOL -maxdepth 1 -type f \( -name access.log -or -name error.log
\) -not -writable -ls; done
| 180028436    0 -rw-r--r--   1 rluts    tools.rluts        0 Apr  6 07:42
/data/project/rluts/error.log
| 180093321   32 -rw-r--r--   1 hexacore tools.hexacore    27254 Apr 16 15:59
/data/project/hexacore/access.log
| 180093318    4 -rw-r--r--   1 hexacore tools.hexacore      403 Apr 20 14:53
/data/project/hexacore/error.log
| 180126284    0 -rw-r--r--   1 ireas    tools.ireas        0 Mär  5 16:28
/data/project/ireas/access.log
| 180126283    4 -rw-r--r--   1 ireas    tools.ireas       49 Mär  5 16:28
/data/project/ireas/error.log
| 180126720    0 -rw-r--r--   1 yellowcard tools.yellowcard        0 Apr 19
13:16 /data/project/yellowcard/access.log
| 180126719    4 -rw-r--r--   1 yellowcard tools.yellowcard       49 Apr 19
13:16 /data/project/yellowcard/error.log
| root@tools-login:~# qstat -u \* | fgrep lighttpd | fgrep -v tools.
|  426120 0.27599 lighttpd-y yellowcard   r     04/19/2014 13:16:11
webgrid-lighttpd@tools-webgrid     1
|  442640 0.26494 lighttpd-h hexacore     r     04/20/2014 14:53:02
webgrid-lighttpd@tools-webgrid     1
| root@tools-login:~#

I rectified the existing cases by:

- Stopping the lighttpd jobs mentioned above,
- take'ing the log files as the tool accounts,
- removing /tmp/php.socket.$TOOL-0 on tools-webgrid-*,
- removing /var/run/lighttpd/$TOOL.* on tools-webgrid-*, and
- "webservice start" as the tool accounts for the stopped jobs.

The underlying problem lies in line 4f.:

| tool=$(/usr/bin/id -nu|sed -e "s/^$prefix.//")
| user="$prefix.$tool"

This prepends the prefix unconditionally, and in cases where there is a user
account X and a tool account tools.X, subsequently webservice thinks the
calling user is a tool.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to