Commands needed:
   conf/cmd/remote_exec
   conf/cmd/copy
If ! conf/cmd/remote_exec:
   use builtin
If ! conf/cmd/copy:
   use builtin
--------------------------------------------------------------------------------
--cmd-dir?
$__cdist_cmd_dir
--------------------------------------------------------------------------------
   -> Depend on session!
Builtin:
        cdist.exec.run_or_fail(["scp", "-qr", source, 
                                self.remote_user + "@" + 
                                self.target_host + ":" + 
                                destination])
self.remote_prefix = ["ssh", self.remote_user + "@" + self.target_host]
        self.remote_user = remote_user
        self.remote_prefix = remote_prefix
--------------------------------------------------------------------------------
What is in a session?
   base_dir
   target_host
--------------------------------------------------------------------------------
remote_user 
   pseudo-static, can be hardcoded again
--------------------------------------------------------------------------------
Result:
os.environ['__remote_exec'] = ["ssh", "-l", "root" ]
os.environ['__remote_exec'] = ["ssh", "-o", "User=root" ]
os.environ['__remote_copy'] = ["scp", "-o", "User=root" ]
__remote_exec=~/sudossh __remote_copy=... cdist config localhost
~/sudossh hostname $@...
~/sudocopy a hostname:b
~/chrootssh
~/chrootcopy
a)
   3 cmd verzeichnnise: cdist, sudo, chroot
   pro aufruf variable ändern
b)
   1 dir, mit zeug
   pro aufruf variablen ändern
conf/cmd/remote_exec 
args for __remote_exec
   $1 = hostname
   $2 - ...  = stuff to be executed in /bin/sh on remote side
   $2 - $7 = env
   $7 - 12 = cmd
args for __remote_copy
   $1 = file here
   $2 = hostname:destination
--------------------------------------------------------------------------------
There needs to be an easy way to change those cmds!
--------------------------------------------------------------------------------
Env-Passing:
   _a=b test -> test can access $_a
   _a=b test $_a -> $1 = "", because _a is *not* set within the shell
   _a=b; test -> can access $_a
   _a=b; test $_a -> $1 == "b"