Je vais donner mon avis sur la question, puisque c'est du sys principalement.
De base, sur un linux vanilla, non patché, hors distro, tout est fermé, même les sockets internes. Ensuite les deux premières choses a comprendre, sur linux et sa sécurité, c'est d'un coté l'arborescence des répertoires, et de l'autre la gestion des utilisateurs.
De base, chaque utilisateur possède son socket sur la machine, et n'a accès a qu'a sa partie congrue (/home/nomd'utilisateur), tout se qu'il lance est dans sa partie congrue et n'en sort pas, c'est se qu'on appel un jail. Ensuite, encore une fois de base, si un utilisateur a besoin de droits, il faut lui créer un jail plus étoffé, donc de base, la sécurité élémentaire d'un linux vanilla, c'est le chroot + jail applicatif.
Maintenant, sortit de ce principe de base, toutes les distro incluent des systèmes et patchs kernel pour avoir une gestion en bus + socket. Et via les busses, on peu avoir se qu'on appel des "privilège escalation" en gros, c'est la première source de piratage sous linux. En gros, le hacker va chercher un bus qui est commun a root et a utilisateur. Pour palier a ce genre de comportement tu as plusieurs choix : patch kernel a nouveau (grsec et selinux) qui va contrôler les busses et via une interface elle aussi bussé, via root/kernel va avec une access control list, une sorte de liste blanche de se que l'utilisateur va pouvoir faire, ou pas niveau applicatif. C'est un mécanisme primaire d'isolation.
Après on rentre dans les domaines particuliers, même si largement utilisés et on rentre dans la configuration fine. Mais la première règle de sécurité sur un linux, c'est 1 appli = 1 user dans un jail. Et ce, y compris en local. Et déjà rien que là, tu va éviter beaucoup de problèmes. (en gros, les seules failles restantes sont des PE kernel et tu peu pas y faire grand chose si un 0day sort, même un patchage grsec ou selinux n'y feront rien).
Tout ça, c'est de la sécurité "violente", après tu peu avoir plus "soft" via udev/*kit + kernel grsec ou selinux + tout un tas de trucs louches.
En aucuns cas, ton shell va avoir la main sur ton kernel et les "commandes" du shell sont indépendante du kernel. Puisque même "ls" est un binaire qu'exécute le kernel via un interpréteur du shell et est contenu dans /bin. Le comportement le plus proche de se que tu décrit serait un chroot sans /bin et où ses programmes seraient lancés via appel bus externes du propriétaire du chroot (et on en revient au fait que les PE viennent du kernel dans ce cas, ou de l'isolation du bus mal foutue suivant comment est codé le programme de base sur ce point).
On pourrait digresser pendant longtemps sur tout les cas de figure mais ça n'amènerait a rien de probant pour toi. Et si t'as pas un socle de connaissance de base (qui visiblement tu n'a pas vue ta question) ça sert a rien d'en débattre.