私はuidビットを設定したいシェルスクリプトを持っています。 私は所有者をrootに設定し、uidビットを設定します。 シェルで 'whoami'を追加して正常に動作していることを確認しました。 スクリプトを実行したとき、whoamiはrootではなくユーザーの名前を返しました。 これは間違っていますよね? uidが正しく設定されていれば、私はrootになっていたはずですか?setuidビットの結果
2
A
答えて
3
シェルスクリプトでsetuidビットを使用することはできません。シェルは実行するプログラムを決定するためにshebang行を解析し、スクリプトにsetuidビットが設定されていることを少しでも気にせずにそのプログラムを起動します。
https://serverfault.com/questions/8449/cannot-set-uid-on-shell-scriptsを参照してください。
4
いいえ、setuidビットはログインユーザーを変更しません。スクリプトが実行される有効ユーザー(euid)を変更します。
さらに、setuidビットはスクリプトでは機能しません。
低特権ユーザーがスクリプトをrootとして実行したい場合は、「su」または「sudo」を調べることをお勧めします。
関連する問題
- 1. 結果間のビットOR
- 2. SQLの照会結果をビット
- 3. ビットと結果の最適化
- 4. Unix(BSD Unix、MacOSX)vs Linuxログインのsetuidビットの違い
- 5. ビット演算 - 1ビットで2つの結果を連結します
- 6. setuidビットを設定した後にプログラムをロードできない
- 7. root以外のユーザーのプログラムでsetuidビットを設定する方法は?
- 8. SQL - ビット単位のANDブール値フィールドのすべての結果
- 9. perl cgiスクリプトでsetuidビットがオンのときにparamが動作しない
- 10. ビットごとのOR予期しない結果
- 11. 64ビットのネイティブintにint32を追加した結果は?
- 12. 予期しない結果を返すCのビットをマスキング
- 13. MySQLは、奇妙な結果を返すWHEREステートメントのビット単位
- 14. AOSP setgid/setuidは効果がありません
- 15. setuidはsudoと同じ効果がありますか?
- 16. PL/pgSQL関数が不正なビット結果を返す
- 17. 説明できない結果をもたらす64ビットELF
- 18. setuidの使い方は?
- 19. SetuidからPerlへのスクリプト
- 20. 2x16ビットを1x32ビットに結合
- 21. 結果=結果+ [i]?
- 22. 64ビット整数へのポインタを変換する、なぜ結果は32ビット・64ビットプラットフォーム
- 23. ジェンキンステスト結果分析結果
- 24. 整数からのPythonビット配列の作成 - 奇妙な結果!
- 25. 先頭の結果+残りの結果%
- 26. スパークランダムフォレストの特徴理解結果結果
- 27. DateDiffの結果間違った結果
- 28. フィルタ結果リストビュー内の検索結果
- 29. ビットを連結するC++
- 30. .NET Datagridviewのチェックボックスとして表示される結果のビット値を結合します
なぜ私はこの答えを見なければならないのですか?* setuidビットはスクリプトでは機能しません。*私は1時間を無駄にしました!ありがとう@マーティン –