system("echo 'abcpasswd' | su - NewUsr -c 'ls -ltr'");
上面嵌在我的「C」代碼generats二進制,這是後來從一個HTML頁面調用代碼輸出。 現在上面的代碼會提示輸入命令中的「密碼」。但我最終在我的html呈現的頁面中看到提示'密碼:'。如何避免打印「迴響」用系統命令用C
我該如何解決這個問題?我不想在我的網頁上看到提示「密碼:」。
system("echo 'abcpasswd' | su - NewUsr -c 'ls -ltr'");
上面嵌在我的「C」代碼generats二進制,這是後來從一個HTML頁面調用代碼輸出。 現在上面的代碼會提示輸入命令中的「密碼」。但我最終在我的html呈現的頁面中看到提示'密碼:'。如何避免打印「迴響」用系統命令用C
我該如何解決這個問題?我不想在我的網頁上看到提示「密碼:」。
出於安全原因,su
不會從交互式終端獲取其他地方的密碼。選項-
僅用於完整登錄,不用於標準輸入閱讀。
您可以使用sudo
,你可以更好地控制(讀一下你的操作系統手冊),在非交互模式下使用這種提防被認爲是有害的......
謝謝大家對您的建議和意見。 我找到了解決這個問題的方法,在html/php端處理它。通過'exec'取代'passthru'並選擇性地選擇需要輸出到頁面的內容。
假設「* abcpasswd *」爲***是密碼,那麼究竟如何打印字符串「* Password:*」? – alk
「密碼:」提示與您在shell密碼提示中看到的內容類似。我知道像下面的'sudo'中的功能NewUsr ALL =(ALL)NOPASSWD:ALL,但是我想通過使用管道來明確給出密碼。 – shwink
我以爲蘇故意不讓你輸入密碼。 – immibis