<commit_before># nslite - chroot/exec with namespace support

Linux has had namespace support for a little while. Probably the most common
user of it is LXC. For a lot of purposes, LXC is overkill. I was curious about
how to use the underlying syscalls for another project and wrote nsfork.c.
After discussing it with a friend who's doing some nice work with busybox
inside chroots, I decided to throw this together for general use.

## Requirements

Linux >= 2.6.24 with CONFIG_NAMESPACES=y

Root or CAP_SYS_ADMIN privileges

## Build

make

The included Makefile should work on any modern distribution.  Let me know
if that proves false.

## Example

    mkdir -p /tmp/root/bin
    cp `which busybox.static` /tmp/root/bin/busybox
    sudo ./nschroot /tmp/root /bin/busybox msh
    mkdir /proc
    mount none /proc -t proc
    ps -ef
    ls -l /

## Ideas / To do

* fill in nsexec
* add user/group switching
* add capabilities(7) support
* LD_PRELOAD example
* busybox applet?

## Author

<NAME> <<EMAIL>> @AlTobey

## License

This is free software; you can redistribute it and/or modify it under the
terms of the Artistic License 2.0.  See the file LICENSE for details.
<commit_msg>update my name and Twitter handle in the README<commit_after># nslite - chroot/exec with namespace support

Linux has had namespace support for a little while. Probably the most common
user of it is LXC. For a lot of purposes, LXC is overkill. I was curious about
how to use the underlying syscalls for another project and wrote nsfork.c.
After discussing it with a friend who's doing some nice work with busybox
inside chroots, I decided to throw this together for general use.

## Requirements

Linux >= 2.6.24 with CONFIG_NAMESPACES=y

Root or CAP_SYS_ADMIN privileges

## Build

make

The included Makefile should work on any modern distribution.  Let me know
if that proves false.

## Example

    mkdir -p /tmp/root/bin
    cp `which busybox.static` /tmp/root/bin/busybox
    sudo ./nschroot /tmp/root /bin/busybox msh
    mkdir /proc
    mount none /proc -t proc
    ps -ef
    ls -l /

## Ideas / To do

* fill in nsexec
* add user/group switching
* add capabilities(7) support
* LD_PRELOAD example
* busybox applet?

## Author

<NAME> <<EMAIL>> @MissAmyTobey

## License

This is free software; you can redistribute it and/or modify it under the
terms of the Artistic License 2.0.  See the file LICENSE for details.

{'fraction_non_alphanumeric': 0.06553297386976359, 'fraction_numerical': 0.005806719203649938, 'mean_word_length': 3.4256880733944954, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '36601', 'n_tokens_mistral': 770, 'n_tokens_neox': 729, 'n_words': 346}