- 【Bash】Windows Subsystem for Linux【WSL】3
877 :login:Penguin[sage]:2018/10/30(火) 09:02:46.23 ID:PuLxupcc - 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 しか変えられんというわけだ 自分専用のツールならこの程度で十分だろう
|