申し訳ありませんが、私の質問は簡単ですが、私はCにちょっと新しく、誰かが私を助けてくれることを願っていました。私はCの別のユーザーに変更したいと思います。たとえば、ユーザーのパスワードを知っていて、ユーザーが次のように入力したとします。 ./change user1 user1に変更されます。私はこれが今セキュリティ上の問題かもしれないことは知っていますが、私は現時点ではセキュリティについて心配していません。あなたはそれがPOSIXシステム上で利用可能であるunistd.h
で見つけることができるのsetuid使用したいと思うでしょうCユーザーの変更
Q
Cユーザーの変更
0
A
答えて
2
(ので、任意のLinux/Unixのfalvourは、[OK]をする必要があり)
のmanページから
の場合プロセスは適切な特権を持ち、setuid()は実際のユーザID、 実効ユーザID、および呼び出したプロセスの保存されたset-user-IDをuidに設定する。
プロセスに適切な権限がなくても、uidが実際の ユーザーIDまたは保存されたset-user-IDと等しい場合、setuid()は実効ユーザーIDをuidに設定します。 実際のユーザーIDと保存されたユーザーIDは変更されません。
setuid()関数は、補助グループリストに何ら影響してはなりません。ここ
はあなたがgetpwuid()を使用してUIDを見つけるために持っているexample
0
1
はUnix一般的に、あなたの特定のOSの両方で、変更する資格情報のについてのすべての複雑さを知っている、(例えばsystem()
またはfork()
とexec
機能の一つの組み合わせを介して)su
バイナリを呼び出します。端末は共有され、元のユーザに属し続ける。
単純なsetuid()
コールで処理されない複雑さの中には、グループ、アカウントの無効化、およびリソースの制限があります。
これはちょうど楽しみのためのもので、setgid()
と先行するsetuid()
とinitgroups()
で十分でしょう。
関連する問題
- 1. ユーザー変更プロファイル
- 2. WinAPIでのユーザー入力時のC++イメージの変更
- 3. Gitのユーザーの変更
- 4. ユーザー名の変更iSQL plus
- 5. sqlパススルークエリの変更ユーザー
- 6. ガニッシュSSH - ユーザーの変更
- 7. c/C++コードからLinuxユーザーの実行時間を変更する
- 8. ユーザーが変更することができ、メイン(C++)
- 9. 変更ラベルテキストエラーC#の
- 10. 変更OpenCVのC++
- 11. 変更c#
- 12. パスワード変更C
- 13. C#キャンバスサイズ変更
- 14. C#変更プログラム
- 15. ユーザー入力ライブカラースキーム変更
- 16. 水銀変更セットのユーザー名を変更できますか?
- 17. ユーザー変更とjs変更入力値の検出
- 18. 変更共有変数C++
- 19. C言語のユーザー入力変数値
- 20. ユーザーによるラジオボタンの変更のフィルタリング?
- 21. asp mvcのユーザーのパスワードを変更
- 22. Apacheのスパークスタンドアロン変更エグゼキュータのユーザー名
- 23. アドバンテージデータベースサーバー:ユーザーパスワードの変更/ユーザーの追加
- 24. Joomlaの各ユーザーのロゴを変更
- 25. ユーザーのパスワードの検証と変更
- 26. データベースのユーザーのパスワードを変更する
- 27. AWS CognitoユーザーのgetAuthenticationDetailsのサブ変更
- 28. BigTableのユーザー権限の変更
- 29. 変更アセンブリのバージョンのC#
- 30. C#のPCMデータピッチの変更
Cでは、ユーザーとしてそのようなものはありません。それは使用しているオペレーティングシステムに依存します。あなたが望むことを実行する方法が全くない可能性があります。 –
この質問は、オペレーティングシステムに大きく依存しています。どのOSが対象ですか? – Thanatos
"./change user1'"を使うとき、シェルが他のユーザになることを意味しますか?もしそうなら、すでにそのためのツールがあります。 – dreamlax