
Linux RedHat7.2の環境にて、system関数を使用してsuコマンドを実行し、ルートになりたいのですが(さらにその後rebootしたい)、以下の結果のようになってしまいルートになれません。system()の使用方法がまずいのでしょうか。
どなたか助けてください。お願いします。
--------------------------ソースコード--------------------------------
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char **argv)
{
int i;
i = system("su - password");
i = system("reboot");
return 0;
}
--------------------------ソースコード--------------------------------
--------------------------結果--------------------------------
[nmpb@nmpb_linux02 BIN]$ ./aaa.out
su: user password does not exist
--------------------------結果--------------------------------
No.1ベストアンサー
- 回答日時:
system()はシェルを起動するだけです。
2度関数を呼んでもシェルが2度起動されるだけで、相互の関連はありません。恐らく、意図されていることを行うには、
1.system("reboot"); を含むソースをコンパイルする。
2.できたプログラムのオーナーをrootにする。
3.chmod u+s プログラム で、オーナー権限で動作するようにする。
というのが妥当ではないかと思います。
No.2
- 回答日時:
幾つかの勘違いがありそうです。
ひとつ、大きなことは、No.1 の回答にある内容です。
次に、su コマンドについて、きちんと理解できていないようです。
まずは、「オプションには、パスワードを指定するわけではない」ということです。
"su - password" という書式は、「password という *ユーザで* そのログイン環境と同じシェルを立ち上げる」と
いうことを意味します。
あくまでも、パスワードの入力を求められます。
ちなみに、パスワードの入力さえできれば、"su -c reboot -" という書式で
root 権限で reboot を実行することができます。
で、解決の方法としては、No.1 で指示されている方法か、sudo というツールを導入する(→参考URL)のが
簡単だと思います。
参考URL:http://www.linux.or.jp/JM/html/sudo/man8/sudo.8. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- UNIX・Linux linuxサーバーのキャッシュをクリアするコマンドを実行したい。 5 2023/01/24 14:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
C言語で途中までしか、プログラ...
-
10進ベーシックで質問です。
-
sendkeysにてALT+CTRL+INSERTを...
-
VBAで外部プログラムを非表示で...
-
99BASICプログラムの乱...
-
RPG パラメーターについて
-
パソコンの演算速度について
-
C言語のセキュリティホールにつ...
-
vba GetAsyncKeyState関数について
-
プログラムの再起動
-
Windows7-VB6でのアクティブウ...
-
UWSCがうまく動かない
-
他の実行ファイルを実行するプ...
-
C言語でプログラムを再起動
-
ヘッダファイル? malloc.hと...
-
VB上で実行中の無限ループの止め方
-
プリントスクリーンをプログラ...
-
Borland C++Builder6で、デバッ...
-
他のPC上にあるexeを、そのP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
パソコンの演算速度について
-
VB上で実行中の無限ループの止め方
-
sendkeysにてALT+CTRL+INSERTを...
-
C言語で途中までしか、プログラ...
-
VBAで外部プログラムを非表示で...
-
システム資源とは?
-
実行時エラー429
-
終了してもプログラムが実行し...
-
sleep()関数について
-
他の実行ファイルを実行するプ...
-
RPG パラメーターについて
-
UWSCがうまく動かない
-
Windows10でDOSゲーム
-
clock関数は正確じゃないの?
-
C言語でプログラムを再起動
-
Excel VBA から外部プログラム...
-
system関数を使用してsuコマン...
-
プロセス間通信について
-
Borland C++を利用しているので...
おすすめ情報