setuidは知ってはいたが意識して使ったこと無いのでやってみたわ

まずsetuidはバイナリじゃないと有効にならないのでシェルスクリプト
とかではなくC言語などのバイナリ吐ける言語で作る必要がある

例えば以下の内容のファイルを作って、gcc ファイル名.c とかでコンパイルする
(gccは適当に入れろな)

#include <sys/stat.h>
int main()
{
chmod("/dev/ttyS1", 0666);
}

a.out(適当名前に変更どうぞ)が作られるから、
sudo chown root:root a.out
sudo chmod +s a.out

あとはsudoとか使わなくてもroot権限(ファイルの所有者)で
動いてくれるので.bashrcとかに書いて実行すればよかろう

ちなみに、/dev/ttyS1 決め打ちなのは手抜きというより引数で自由なパスを
指定できるようにすると、セキュリティ的に問題があるのであえてそうしている
つまりこのコマンドはどう実行しても /dev/ttyS1 しか変えられんというわけだ
自分専用のツールならこの程度で十分だろう