/usr/share/lua/5.1/sputnik/installer.lua is in sputnik 12.06.27-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111  | module(..., package.seeall)
require"lfs"
require"cosmo"
REQUIRE_LUAROCKS = [[pcall(require, "luarocks.require")]]
WS_SCRIPT_TEMPLATE = [=[
require('sputnik.wsapi_app')
return sputnik.wsapi_app.new{
   VERSIUM_PARAMS  = { [[$data_directory]] },
   BASE_URL        = '/',
   PASSWORD_SALT   = '$password_salt',
   TOKEN_SALT      = '$token_salt',
   $use_posix_crypt
}
]=]
CGI_TEMPLATE = [=[#! $lua
$require_luarocks
require('sputnik.wsapi_app')
local my_app = sputnik.wsapi_app.new{
   VERSIUM_PARAMS  = { [[$data_directory]] },
   BASE_URL        = '/cgi-bin/sputnik.cgi',
   PASSWORD_SALT   = '$password_salt',
   TOKEN_SALT      = '$token_salt',
   $use_posix_crypt
}
require("wsapi.cgi")
wsapi.cgi.run(my_app)
]=]
CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
local password_salt = ""
local token_salt = ""
function reset_salts()
   math.randomseed(os.time())
   password_salt = make_salt()
   token_salt = make_salt()
end
function make_salt(length)
   local buffer = ""
   local num_chars = CHARACTERS:len()
   local r
   for i=1, (length or 40) do
      r = math.random(num_chars)
      buffer = buffer..CHARACTERS:sub(r,r)
   end
   return buffer
end
function make_script(data_directory, working_directory, filename, template, options)
   options = options or {}
   
   working_directory = working_directory or lfs.currentdir()
   local file_path = working_directory.."/"..filename
   data_directory = data_directory or working_directory.."/wiki-data/"
   if (data_directory:sub(-1)~= "/") then
       data_directory = data_directory.."/"
   end
   if lfs.attributes(file_path) then
      print("Cannot create '"..file_path.."': file already exists.")
      print("Delete the file, then try again.")
      return
   end
   local out, err = io.open(file_path, "w")
   if err then
      print("Could not create file '"..path.."':")
      print(err)
      return
   end
   local require_luarocks = REQUIRE_LUAROCKS
   if options.without_luarocks then
      require_luarocks = "--"..require_luarocks
   end
   
   local posix_loaded, posix = pcall(require, "posix")
   local use_posix_crypt = "USE_POSIX_CRYPT = true,"
   if not posix_loaded then
      use_posix_crypt = "--"..use_posix_crypt.." -- better security, requires luaposix"
   end
   local lua = LUA or working_directory.."/bin/lua"
   local content = cosmo.f(template){
                      data_directory = data_directory, 
                      password_salt = password_salt,
                      token_salt    = token_salt,
                      require_luarocks = require_luarocks,
                      use_posix_crypt = use_posix_crypt,
                      lua = lua
                   }
   out:write(content)
   out:close()
end
function make_wsapi_script(data_directory, working_directory, filename, options)
   make_script(data_directory, working_directory, filename, WS_SCRIPT_TEMPLATE, options)
end
function make_cgi_file(data_directory, working_directory, filename, options)
   make_script(data_directory, working_directory, filename, CGI_TEMPLATE, options)
end
 |