Nethack 3.4.3 [PSARC/2008/172 FastTrack timeout 03/11/2008]

Danek Duvall danek.duvall at sun.com
Tue Mar 4 13:46:42 PST 2008


I'm sponsoring this case for myself.  It should qualify for patch binding,
though I currently have no intent on delivering in a patch.

The proposal is in the case directory as proposal.txt; the man page is in
materials/nethack.6.

======================================================================

1.  Summary

Nethack[1] is a terminal-based game, based on rogue, in which your
character descends through a dungeon to fight monsters, gain experience,
and eventually capture the Amulet of Yendor and sacrifice it on the altar
of your god in the Astral Plane.


2.  Issues

    2.1 Setgid "games"

    The only inherently interesting issue is that nethack games leave files
    behind that are intended to be shared by multiple players.  This
    includes a shared scoreboard, a logfile, a saved-games directory, and
    "bones" files (remains of characters who have died).  These are best
    shared so that one can compare one's score with others and dig through
    their bones piles.  If these files are put in a directory open to being
    written by the world, it only really affects nethack, but it means it's
    easy for players to cheat -- by restoring saved games, manipulating
    bones files, and so on -- and even to annoy other players.

    Thus I'm proposing the addition of a unix group dedicated to games,
    that the shared directory be owned by group "games", and that nethack
    be installed setgid "games".  This allows users to be unable to
    manipulate these files except through nethack itself.  Any exploits
    that might be possible through this minimal "privilege elevation" would
    be limited only to the contents of /var/games, which is ultimately of
    limited value to the system.

    2.2 Historical UNIX gaming

    I'm proposing to re-introduce section 6 of the manual -- thus
    nethack(6).  However, I'm not proposing to re-introduce /usr/games, as
    that violates serendipitous discovery, and doesn't seem to add any
    value to the system.

3.  Interfaces

    /usr/bin/nethack      Uncommitted        Executable location, CLI
    /usr/lib/nethack      Project Private    Game data directory
    /var/games            Committed          Writeable area for games
    /var/games/nethack    Uncommitted        Writeable area for nethack
    games                 Committed          group name


4.  References

    1  http://www.nethack.org/



More information about the opensolaris-arc mailing list