OS是Linux SuSE 2.6.16.60-0.21-smp
可以通過Linux中的SUID程序成功調用dmidecode命令嗎?
我有一個可執行bin文件(名稱爲BMU),其已被配置SUID,如示於以下
-rwsr-sr-x 1 root root 14968899 2012-03-29 10:35 bmu
,並將該軟件調用dmidecode
內部。
如果它是由root用戶運行的,則操作將會正常,但如果程序是由非root用戶運行的,則調用的dmidecode
將返回null。
這個問題的原因是什麼?如何解決?
編輯:添加代碼和說明從評論:
read_fp = popen("dmidecode | grep 'Product Name'", "r");
/* ...... */
chars_read = fread(buffer, sizeof(char), BUFSIZ-1, read_fp);
的read_fp
返回不爲空,但緩衝器的長度爲0,其應該有一定的價值。
你有SELinux嗎?如果是的話,嘗試一下,只是爲了排除它。 – 2012-04-13 07:29:07
它看起來並不像SuSE10可以支持SELinux。 – siikee 2012-04-13 09:14:51