0877login:Penguin
2018/10/30(火) 09:02:46.23ID:PuLxupccまず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 しか変えられんというわけだ
自分専用のツールならこの程度で十分だろう