---
layout: post
title: Environment variables for reliable ZSH restrictions
date: 2015-12-24
tags: ["freebsd","General","security","unix","zsh"]
---

Arghh. I just spent 30 minutes trying to set up a locked down restricted shell on my FreeBSD box and I want to help you not do the same. My challenge was properly setting the `PATH` variable so that the user could not bust out and run any commands. The problem was ensuring that `PATH` was set for both interactive and non-interactive shells. The interactive ones were easy using either `.zshrc` or `.bash_profile`. But although the documentation for bash said it read in `.bashrc` for non-interactive sheets, it did not.

But, finally I found that `.zshenv` worked so now I can use the restricted ZSH. Yay!
