Como foi apontado, não há como fazê-lo. Claro, se houver um testamento, existe uma maneira: que não existe tal syscall não é motivo para que ele não possa ser feito. Dito isto, como o mtk mencionou em um comentário , imagine o caos que ele poderia criar tendo um syscall para alterar o contexto de segurança de um processo não relacionado. Se nada mais, eu vejo uma condição de corrida irrompendo em três ... dois ... um ... (e não vamos sequer começar o que mudar o contexto de segurança de init ou getty poderia fazer.)
Uma outra razão é que su não só invoca um novo shell . Ele também tem a capacidade de controlar qual shell é lançado (usando -s ou --shell ) e controlá-lo passando parâmetros via (no GNU) o - / -l / --login e -c ( --command ) parâmetros. Os parâmetros passados para o su também podem ter um efeito no ambiente do novo shell. Assim, mesmo que você pudesse apenas alterar o contexto de segurança do processo pai, você não necessariamente desejaria fazer isso.