This commit is contained in:
Benjamin Collet 2018-12-24 13:31:25 +01:00
parent a59b876c84
commit f5ed5353ec
2 changed files with 21 additions and 6 deletions

View file

@ -20,7 +20,7 @@ On invocation of `ifup`:
* if it does and the interface is configured, the script will invoke `ifup`
for this interface inside the namespace.
## `zsh` functions to run commands and start a shell in a namespace
## `zsh` functions to run commands and start a shell in a namespace with a custom prompt
```
nse () {
if [ $# -lt 2 ]; then
@ -30,11 +30,8 @@ nse () {
fi
NS=${1}
shift
unshare -m /bin/sh <<-EOF
mount --make-rprivate /
mount --bind /run/network.${NS} /run/network
ip netns exec ${NS} ${@}
EOF
ARGS=${@}
ip netns exec ${NS} unshare -m /bin/sh -c "mount --make-rprivate /;mount --bind /run/network.${NS} /run/network; ${ARGS}"
}
nss () {
@ -45,4 +42,19 @@ nss () {
fi
nse $1 zsh -i
}
alias nsr="nsenter -t 1 -n"
NS=`ip netns identify $$`
if [ "$NS" ]; then;
NS="/$NS"
fi
if [ "`id -u`" -eq 0 ]; then
export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m${NS} %{%}%~%{%}%#%{%} "
else
export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m${NS} %{%}%~%{%}%#%{%} "
fi
```

View file

@ -11,6 +11,9 @@ then
if [ ! -f /etc/netns/$IF_NETNS/network/interfaces ]; then
touch /etc/netns/$IF_NETNS/network/interfaces
fi
if [ ! -f /etc/netns/$IF_NETNS/resolv.conf ]; then
touch /etc/netns/$IF_NETNS/resolv.conf
fi
mkdir -p /run/network.${IF_NETNS}
rm -rf /run/network.${IF_NETNS}/*
ip netns add ${IF_NETNS}