|
@@ -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="%{[33;36;1m%}%T%{[0m%} %{[33;34;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m${NS} %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
|
|
|
+else
|
|
|
+ export PS1="%{[33;36;1m%}%T%{[0m%} %{[33;31;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m${NS} %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
|
|
|
+fi
|
|
|
+
|
|
|
```
|