# running salt as normal user tutorial

Before continuing make sure you have a working Salt installation by following the instructions in the Salt install guide.

Stuck?

The Salt Project community can help offer advice and help troubleshoot technical issues as you're learning about Salt. One of the best places to talk to the community is on the Salt Project Discord Community.

## Running Salt functions as non root user

If you don't want to run salt cloud as root or even install it you can configure it to have a virtual root in your working directory.

The salt system uses the `salt.syspath` module to find the variables

If you run the salt-build, it will generated in:

    ./build/lib.linux-x86_64-2.7/salt/_syspaths.py

To generate it, run the command:

    python setup.py build

Copy the generated module into your salt directory

    cp ./build/lib.linux-x86_64-2.7/salt/_syspaths.py salt/_syspaths.py

Edit it to include needed variables and your new paths

    # you need to edit this
    _your_current_dir_ = ...
    ROOT_DIR = _your_current_dir_ + "/salt/root"

    # you need to edit this
    _location_of_source_code_ = ...
    INSTALL_DIR = _location_of_source_code_

    CONFIG_DIR = ROOT_DIR + "/etc/salt"
    CACHE_DIR = ROOT_DIR + "/var/cache/salt"
    SOCK_DIR = ROOT_DIR + "/var/run/salt"
    SRV_ROOT_DIR = ROOT_DIR + "/srv"
    BASE_FILE_ROOTS_DIR = ROOT_DIR + "/srv/salt"
    BASE_PILLAR_ROOTS_DIR = ROOT_DIR + "/srv/pillar"
    BASE_MASTER_ROOTS_DIR = ROOT_DIR + "/srv/salt-master"
    LOGS_DIR = ROOT_DIR + "/var/log/salt"
    PIDFILE_DIR = ROOT_DIR + "/var/run"
    CLOUD_DIR = INSTALL_DIR + "/cloud"
    BOOTSTRAP = CLOUD_DIR + "/deploy/bootstrap-salt.sh"

Create the directory structure

    mkdir -p root/etc/salt root/var/cache/run root/run/salt root/srv
    root/srv/salt root/srv/pillar root/srv/salt-master root/var/log/salt root/var/run

Populate the configuration files:

    cp -r conf/* root/etc/salt/

Edit your `root/etc/salt/master` configuration that is used by salt-cloud:

    user: *your user name*

Run like this:

    PYTHONPATH=`pwd` scripts/salt-cloud