Added tag untie-0.3 for changeset 38f3910e2c06
[untie.git] / untie.8
blobdc5facb6936bf012cc3e9a09abf0d38f646277f2
1 .TH "untie" "8" "0.3" "Guillaume Chazarain" "Namespace creator"
2 .SH "NAME"
3 untie \- Run a command in a new namespace
4 .SH "SYNOPSIS"
5 \fBuntie\fR [OPTIONS]... [COMMAND]...
6 .SH "DESCRIPTION"
7 \fIuntie\fR uses Linux virtualization features to run commands in separate namespaces. If no command is given, a shell is launched in the new namespace. Note that only root can create new namespaces.
8 .SH "OPTIONS"
9 The options define which namespaces to share with the parent or to fork. All the options can be combined, only --mask can be given more than once.
10 .TP
11 \fB\-h, \-\-help\fR
12 Print help and exit.
13 .TP
14 \fB\-V, \-\-version\fR
15 Print version and exit.
16 .TP
17 \fB\-\-mount\fR
18 New mount namespace. Mounts in a namespace are invisible in other namespaces. In order to have mounts crossing namespaces, you have to use the shared subtrees feature of Linux. See http://lwn.net/Articles/159092/ for more details.
19 .TP
20 \fB\-\-uname\fR
21 New uname. An uname namespace can have its own hostname.
22 .TP
23 \fB\-\-ipc\fR
24 New IPC context. This permits a group of applications to have a private namespace for System V IPC. These include message queues, semaphores and shared memory segments.
25 .TP
26 \fB\-\-mask=MASK\fR
27 Pass user defined flag. This flag allows to virtualize a resource that was not virtualizable at the time this program was written. For example to clone the uname namespace without the --uname option, you would use \fIuntie\fR --mask=0x04000000 because 0x04000000 is the value of CLONE_NEWUTS as per the header file sched.h.
28 .TP
29 \fB\-\-chroot=DIRECTORY\fR
30 Chroot in the specified directory. This will let the child process perform a chroot before executing its command. The chroot is followed by a chdir("/") to prevent the simplest form of chroot escape.
31 .TP
32 \fB\-\-uid=UID\fR
33 Change to the specified UID. This makes the child process run with the specified UID. If no GID argument is given, the GID will be set to the given UID and the child process groups will be the single element list with the given UID.
34 .TP
35 \fB\-\-username=USERNAME\fR
36 Change to the specified username. This option has the same role as the previous one, except it takes a user name string instead of a UID number. This option and the previous one are mutually exclusive.
37 .TP
38 \fB\-\-gid=GID\fR
39 Add the specified GID. This argument can be given many times and will build the process groups list for the child process. The GID will be the first element in the list.
40 .TP
41 \fB\-\-groupname=GROUP\fR
42 Add the specified group. This option has the same role as the previous one, except it takes a group name string instead of a GID number. This option as well as the previous one can be given any number of times. The previous option takes precedence to determine the GID of the child process.
43 .TP
44 \fB\-\-daemonize\fR
45 Run as daemon. With this option, the child process will run as a background daemon.
46 .TP
47 \fB\-\-alarm=SECONDS\fR
48 Set an alarm after the specified delay. This option uses the alarm(2) facility to cause the termination of the child process after the specified timeout. The limitations of the alarm(2) system call apply, so if the child process uses alarm(2) it will cancel this specific timeout.
49 .TP
50 \fB\-\-nice=NICE\fR
51 Run as the specified nice level. This sets the nice(1) value of the child process, levels typically range from -20 (highest priority) to 19 (lowest priority).
52 .TP
53 \fB\-\-sched=SCHED\fR
54 Use the specified (possibly RT) scheduling policy. Accepted values are 'rr', 'fifo', 'normal', 'other' case insensitive. The policy can also be given in numerical form.
55 .TP
56 \fB\-\-schedprio=PRIO\fR
57 Set the priority according to the given scheduler. This is typically used to set the priority between 1 and 100 when an RT scheduling policy is choosen.
58 .SH "AUTHOR"
59 Guillaume Chazarain <guichaz@yahoo.fr>
60 .br
61 See http://guichaz.free.fr/untie