2016-06-28 70 views
0
system("echo 'abcpasswd' | su - NewUsr -c 'ls -ltr'"); 

上面嵌在我的「C」代碼generats二進制,這是後來從一個HTML頁面調用代碼輸出。 現在上面的代碼會提示輸入命令中的「密碼」。但我最終在我的html呈現的頁面中看到提示'密碼:'。如何避免打印「迴響」用系統命令用C

我該如何解決這個問題?我不想在我的網頁上看到提示「密碼:」。

+0

假設「* abcpasswd *」爲***是密碼,那麼究竟如何打印字符串「* Password:*」? – alk

+0

「密碼:」提示與您在shell密碼提示中看到的內容類似。我知道像下面的'sudo'中的功能NewUsr ALL =(ALL)NOPASSWD:ALL,但是我想通過使用管道來明確給出密碼。 – shwink

+0

我以爲蘇故意不讓你輸入密碼。 – immibis

回答

1

出於安全原因,su不會從交互式終端獲取其他地方的密碼。選項-僅用於完整登錄,不用於標準輸入閱讀。

您可以使用sudo,你可以更好地控制(讀一下你的操作系統手冊),在非交互模式下使用這種提防被認爲是有害的......

0

謝謝大家對您的建議和意見。 我找到了解決這個問題的方法,在html/php端處理它。通過'exec'取代'passthru'並選擇性地選擇需要輸出到頁面的內容。