J'ai personnalisé mon BusyBox
pour inclure des applets spécifiques. Maintenant, je veux que l'utilisateur se connecte à BusyBox
en tant que shell. Je veux dire que lorsque l'utilisateur entre son nom d'utilisateur et ses mots de passe, il sera redirigé vers un environnement dans lequel seules les applets souhaitées sont utilisables. Modifier le login Shell de l'utilisateur à l'aide de la commande suivante ne fonctionne pas:
usermod -s /bin/busybox MYUSER
utiliser su MYUSER
affiche uniquement BusyBox
help mais j'ai besoin d'un shell interactif qui n'inclut que mes applets souhaités. Toute solution?
La commande busybox
n'est pas un shell interactif. Comme Thomas l'a dit, vous devriez lancer busybox sh
pour son shell interactif. Utilisez ces commandes pour définir le shell interactif busybox en tant que shell de connexion de l'utilisateur MYUSER:
echo "/bin/busybox sh" > /bin/ibusybox
chmod +x /bin/ibusybox
usermod -s /bin/ibusybox MYUSER
Si vous utilisez également ibusybox
, vous exécuterez Shell interactif busybox.
Vous devez démarrer busybox
avec sh
comme paramètre. Le mieux serait d'écrire un petit wrapper:
mkdir -p /usr/local/share/busybox
echo "/bin/busybox sh" > /usr/local/share/busybox/sh
chmod +x /usr/local/share/busybox/sh
Puis testez le login:
su - -s /usr/local/share/busybox/sh wood
En cas de succès, vous pouvez ajouter /usr/local/share/busybox/sh
en tant que shell de l'utilisateur.
usermod -s /usr/local/share/busybox/sh MYUSER
J'ai rapidement essayé de faire un lien symbolique busybox
vers /usr/local/share/busybox/sh
mais cela n'a pas fonctionné. Donc, donc le script wrapper.