* Implemented support for chroot:

- Added a "root" vnode to the io_context. It is used for resolving
    paths and converting nodes to paths instead of sRoot. Some more
    passing around of io_context structures was necessary.
  - Introduced a new lock sIOContextRootLock to protect
    io_context::root. The current uses of io_context::io_mutex
    (put_vnode(), remove_vnode() while holding it) looked too suspicious
    to use that mutex in vnode_path_to_vnode().
  - Added _kern_change_root() syscall and chroot() libroot function.
  - Added chroot coreutils program to the image. Funnily it seems to be
    much easier to set up a little jail than under Linux (just copy
    bash and libroot.so into respective subdirs; mount another pipefs
    if you want pipe support).
    With Haiku allowing direct access to directories via inode IDs
    jailing is obviously not very secure at the moment.
  - Added /var/empty to the image. It will be the chroot target for ssh.
* Changed vfs.cpp:get_cwd() so that the io_context::io_mutex is no
  longer held when calling dir_vnode_to_path().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24673 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-03-30 05:59:54 +00:00
parent 2df0ed7856
commit 360be1fc45
10 changed files with 325 additions and 101 deletions
+3 -2
View File
@@ -7,6 +7,7 @@ AddDirectoryToHaikuImage home Desktop ;
AddDirectoryToHaikuImage home config bin ;
AddDirectoryToHaikuImage home config lib ;
AddDirectoryToHaikuImage home mail ;
AddDirectoryToHaikuImage var empty ;
AddDirectoryToHaikuImage var log ;
AddDirectoryToHaikuImage var tmp ;
@@ -24,8 +25,8 @@ if $(INCLUDE_GPL_ADDONS) = 1 {
}
BEOS_BIN = "[" addattr alert arp base64 basename bc beep bzip2 cal cat
catattr chgrp chmod chop chown cksum clear clockconfig cmp comm compress
cp copyattr $(X86_ONLY)CortexAddOnHost
catattr chgrp chmod chop chown chroot cksum clear clockconfig cmp comm
compress cp copyattr $(X86_ONLY)CortexAddOnHost
csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname
driveinfo dstcheck du echo eject env error expand expr
expr factor false fdinfo ffm find finddir fmt fold fortune frcode ftp ftpd