blob: c97d24264bc166c2568e840d4d375664d1ba9e14 (
plain)
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
|
module Main where
import System.Environment
import System.FilePath
import System.Linux.Namespaces
import System.Posix.Process
import System.Posix.User
import System.Process
main :: IO ()
main = do
-- we must get uid/gid before unshare
uid <- getEffectiveUserID
gid <- getEffectiveGroupID
unshare [User, Network, Mount]
writeUserMappings Nothing [UserMapping 0 uid 1]
writeGroupMappings Nothing [GroupMapping 0 gid 1] True
-- needed for creating /run/netns
callCommand "mount -t tmpfs tmpfs /run"
path <- getExecutablePath
args <- getArgs
executeFile (takeDirectory path </> "../../../erebos-tester-core/build/erebos-tester-core/erebos-tester-core") False args Nothing
|