No.1ベストアンサー
- 回答日時:
smbmountのコマンドラインオプション"-o password=xxxx"でパスワードを指定できるのは分かっているんですよね.それだとpsコマンドなんかでパスワードが見えてしまうから,パイプか何かでsmbmountに食わせたいと.
ああいうパスワード取得プログラムは,直接/dev/tty(そのプロセスに接続されている制御端末)からパスワードを取得します.標準入力を経由しないんでパイプでは通常は無理です.ただ,多くのプログラムはttyのオープンに失敗した後,標準入力からパスワードを取得するという作戦をとります.ですから,ttyをオープンできないようにしてやればパイプでパスワードを取れるようになる場合があります.
で,ttyをオープンできないようにするには,制御端末から切り離してしまえばOKです.それにはまず/dev/ttyをオープンしてから,そのファイルディスクリプターをioctl()で指定して,TIOCNOTTYコマンドで切り離します.↓
int
main ( int argc, char **argv )
{
int pfd[2];
int pid;
int fd;
char pswd[] = "xxxxxxx\n";
pipe (pfd);
if ( (pid = fork ()) == 0 ){
/* 子プロセス */
/* パイプを標準入力につなぐ */
close (pfd[1]);
close (0);
dup (pfd[0]);
/* /dev/ttyをオープン */
fd = open ("/dev/tty", O_RDONLY);
/* 制御端末切り離し */
ioctl (fd, TIOCNOTTY);
system ("smbmount //srv/rsc /mntpnt");
exit (0);
}
/* 親プロセス */
close (pfd[0]);
write (pfd[1], pswd, strlen(pswd));
exit(0);
}
こうすると,子プロセスをpsコマンドで見るとTTYの項目が?になっていて,制御端末から切り離されます.smbmountが上記の作戦にしたがうならこれでいけます.ちなみにうちではOKでした.sambaのバージョンによってはもしかしたらだめかも.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- その他(Microsoft Office) エクセルの関数について 4 2022/07/30 16:42
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- その他(クラウドサービス・オンラインストレージ) ネット経由でPCとiPadでのテキストデータの同期(共有)方法は? 2 2023/04/23 19:26
- その他(クラウドサービス・オンラインストレージ) Windowsクラウドサービス「OneDrive」の不具合 3 2022/06/17 20:04
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
別のプロセスの関数を呼び出す...
-
Visual C++からpingを実行して...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
VBAで別プロセスのExcelのフル...
-
プロセスIDからウィンドウハ...
-
ADOでアクセスのレコードに...
-
API関数 GetExitCodeProcess
-
特定ユーザーのプロセス情報を...
-
EXE間でデータを受け渡し時のka...
-
ウィンドウのタイトルからプロ...
-
共有メモリの使い方について
-
GetModuleFileNameでエラーが出...
-
sleep関数の精度について
-
完全な乱数を生成する方法
-
VB.NET 自プログラムのプロセス...
-
execvpでのcdコマンドについて。
-
Linuxでのスレッド間メッセージ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
なぜ女性は男性が忘れたことを...
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
C#でのbatファイル実行結果取得
-
プロセスIDからウィンドウハ...
-
c言語でプロセスIDを調べたい
-
Linuxでのスレッド間メッセージ...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
怪しいプロセス教えてください。
-
vb.netでEXCEL起動がうまくでき...
-
別のプロセスの関数を呼び出す...
-
C++のプログラムをバックグラウ...
-
Visual C++からpingを実行して...
-
VBS(WSH)で開いたIEのウィンド...
-
IISがフリーズ
おすすめ情報