Jails: /bin/tcsh: Permission Denied

APseudoUtopia apseudoutopia at gmail.com
Mon Oct 5 13:20:13 UTC 2009

On Mon, Oct 5, 2009 at 5:51 AM, Oliver Fromme <olli at lurza.secnetix.de> wrote:
> APseudoUtopia <apseudoutopia at gmail.com> wrote:
>  > I'm setting up jails on my system. I started with a httpd jail for
>  > nginx and php to run in. I used ezjail to create it. I went through
>  > all the steps, and got a jail setup and working. I've logged in and
>  > out several times and installed a couple ports within the jail. I then
>  > added a non-privileged user by running "adduser" as root. However,
>  > that is when the problem came up. For some reason, I cannot switch to
>  > the unprivileged user. The shell is giving me a "Permission Denied"
>  > error.
> What are the permissions on /bin/tcsh inside the jail?
> Is it executable?  Are the permissions of all of its
> libraries correct?  ("ldd /bin/tcsh" will list the libs.)
> Are the permissions on the home directory correct?
> If everything else fails, trace the shell inside the jail
> (with strace, truss or ktrace).  It will list the exact
> system call that fails.
> By the way, I recommend that jails which contain daemons
> (such as webservers, databases etc.) do not contain login
> accounts.  In fact, I never put /bin/tcsh inside a jail
> that contains a webserver.  Apache certainly doesn't need
> it.  Some ports do need /bin/csh during the build process,
> but for building ports I recommend to use a separate jail
> anyway, create packages and pkg_add them in the actual
> webserver jail.
> Just my 2 cents.
> Best regards
>   Oliver


Thanks for the tips. I'm new to jails, and I didn't think it was
possible to build a jail without tcsh. What shell do you use then?
Just /bin/sh?

/bin/tcsh works for fine for root. I log into the jail by using the
"ezjail-admin console" option, which in turn executes /usr/bin/login.
It logs in as root with a working tcsh shell. I've even changed the
prompt of the shell in /root/.cshrc within the jail. I don't think
it's the tcsh binary itself, rather some other permission. However,
the information you asked for is below.

As a matter-of-fact, I first ran into this problem when my web server
(nginx) received a "permission denied" error for every file.  While
debugging it, I was asked to su to the "www" user. This is when I ran
into this problem of getting a permission denied error for tcsh.

-r-xr-xr-x  2 root  wheel  311400 Oct  5 05:34 /bin/tcsh

        libncurses.so.7 => /lib/libncurses.so.7 (0x280c5000)
        libcrypt.so.4 => /lib/libcrypt.so.4 (0x28104000)
        libc.so.7 => /lib/libc.so.7 (0x2811d000)

-r--r--r--  1 root  wheel  258572 Oct  5 05:34 /lib/libncurses.so.7
-r--r--r--  1 root  wheel  32020 Oct  5 05:34 /lib/libcrypt.so.4
-r--r--r--  1 root  wheel  993092 Oct  5 05:34 /lib/libc.so.7

drwxr-xr-x   3 root  wheel  512 Oct  5 07:49 home
drwxr-xr-x  2 jailuser  jailuser  512 Oct  5 07:49 jailuser

The truss trace is on a pastebin (the output seemed too long for an
email) located at http://pastebin.ca/1594445

More information about the freebsd-questions mailing list