Provided by: jailkit_2.23-2_amd64 bug

NAME

       jk_chrootsh - a shell that will put the user inside a changed root

SYNOPSIS

       jk_chrootsh

DESCRIPTION

       jk_chrootsh can be used as a shell for a user (e.g. in /etc/passwd or your ldap store). That user will be
       put  into  a  changed root. The directory where to put the user in is read from the users home directory,
       the last occurring /./ sequence is used to mark the location of the changed  root.  An  example  line  in
       /etc/passwd would look like

       test:x:10000:10000::/home/testchroot/./home/test:/usr/sbin/jk_chrootsh

       In this example the user will be chroot-ed into /home/testchroot

       Inside  the  chroot-ed directory, it will look for /etc/passwd and it will execute the shell for the user
       from that file. For the above example the /etc/passwd file inside the jail should have an entry like

       test:x:10000:10000::/home/test:/usr/sbin/jk_lsh

       Notice that the home directory and the shell are local inside the chroot

       jk_chrootsh needs certain elevated privileges to make the chroot(2) system call. Therefore it  is  setuid
       root.  It  will drop its root privileges immediately after making the chroot() system call. Since Jailkit
       2.8 jk_chrootsh may also use the CAP_SYS_CHROOT capability on systems that support capabilities, and then
       the setuid bit can be removed.

       By default jk_chrootsh does  not  copy  any  environment  variables.  For  some  functionality,  however,
       environment  variables  need to be copied (e.g. the TERM variable for a functional terminal emulation, or
       the DISPLAY  variable  for  X  forwarding).  In  /etc/jailkit/jk_chrootsh.ini  the  required  environment
       variables  can  be  listed. An example config file is shown below. In the example, user bill will get the
       DISPLAY variable, and all users in group jail will get the TERM and PATH variables.

       By default jk_chrootsh requires a home directory owned by the user with the same  group  as  the  primary
       group  from  the  user,  and requires the home directory to be non-writable for group and others. You can
       relax these requirements in the configfile as shown below.

       [DEFAULT]
       relax_home_group=1

       [bill]
       env= DISPLAY
       relax_home_owner=1
       relax_home_group_permissions=1
       relax_home_other_permissions=1

       [group jail]
       env = TERM, PATH
       injail_login_shell=1

       If user bill is in group jail, however, he will not get the TERM variable in the above  example.  Neither
       will  any  user with primary group jail get relaxed requirements for the ownership and the permissions of
       the home directory. First the user is checked, and only if no user section is  found  the  primary  group
       section is looked for, and if no group section is found, the DEFAULT section is used.

       Normally  jk_chrootsh  will  pass all arguments it is called with to the shell in the jail. You can force
       jk_chrootsh  to  call  the  shell  inside  the  jail  with  a  single   argument   --login   by   setting
       injail_login_shell=1 in the config file.

       jk_chrootsh  can  be  configured  not  to  read the final shell from the /etc/passwd file in the jail. An
       example configfile is shown below.

       [group jail2]
       skip_injail_passwd_check=1
       injail_shell=/bin/bash

FILES

       /etc/passwd /etc/jailkit/jk_chrootsh.ini

DIAGNOSTICS

       jk_chrootsh logs everything to syslog, please check the log  files.  Logging  is  sent  to  the  LOG_AUTH
       facility  with  levels LOG_ERR and LOG_CRIT for critical errors, LOG_NOTICE for non-critical errors,  and
       LOG_INFO for normal events. On most systems the command grep jk_ /var/log/* will give you the information
       you need.

       commonly made mistakes are:

       forgetting to add the user to JAIL/etc/passwd or the group to JAIL/etc/group

       forgetting to have the correct permissions on all files inside the jail, or forgetting files  inside  the
       jail (the shell itself, or any libraries used by the shell)

       referring to a file outside the chroot

SEE ALSO

       jailkit(8)   jk_check(8)  jk_chrootlaunch(8)  jk_cp(8)  jk_init(8)  jk_jailuser(8)  jk_list(8)  jk_lsh(8)
       jk_procmailwrapper(8) jk_socketd(8) jk_uchroot(8) jk_update(8) chroot(2) syslogd(8)

COPYRIGHT

       Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009,  2010,  2011,  2012,  2013,  2014,  2018  Olivier
       Sessink

       Copying  and distribution of this file, with or without modification, are permitted in any medium without
       royalty provided the copyright notice and this notice are preserved.

JAILKIT                                            07-02-2010                                     jk_chrootsh(8)