tcpdump: socket: Operation not permitted 哦,對了。這個shell和所有其他X下的程序壹樣,都用wstearns運行。妳會想我可以從命令行提示看出來,不是嗎?:-) 不過,我可不想只為了壹個命令從X完全退出。su命令讓我們用另外壹個用戶臨時地替代當前用戶。如果不指定自己想成為哪壹個用戶,則su默認我們想成為root。不要嚇起哄說什麽黑客技術,除非當前用戶就是root,否則還是老老實實給su提供目標用戶的密碼。:-) [wstearns@sparrow wstearns]$ tcpdump -i ppp0 -qtn
tcpdump: socket: Operation not permitted
[wstearns@sparrow wstearns]$ su - Password: < 輸入root的密碼 >
[root@sparrow /root]# tcpdump -i ppp0 -qt
User level filter, protocol ALL, datagram packet socket
tcpdump: listening on ppp0
< reflectix.xs4all.nl.29788 > ME.33085: tcp 1448 (DF) [tos 0x10]
> ME.33085 > reflectix.xs4all.nl.29788: tcp 0 (DF)
< reflectix.xs4all.nl.29788 > ME.33085: tcp 1448 (DF) [tos 0x10]
> ME.33085 > reflectix.xs4all.nl.29788: tcp 0 (DF)
< reflectix.xs4all.nl.29788 > ME.33085: tcp 1448 (DF) [tos 0x10]
> ME.33085 > reflectix.xs4all.nl.29788: tcp 0 (DF)
< reflectix.xs4all.nl.29788 > ME.33085: tcp 1448 (DF) [tos 0x10] 7 packets received by filter
[root@sparrow /root]# exit
[wstearns@sparrow wstearns]$ 哦,原來是我自己下載文件占用了撥號線路。呵呵。 妳或許已經註意到,上面這個例子使用的是su -而不是su。“-”將提供目標用戶的環境來替代當前用戶的環境。下面這個例子很明確地說明了這壹點,不用su -時shell不能在/sbin和/usr/sbin下找到我們要執行的命令: [wstearns@sparrow wstearns]$ su
Password: < 輸入root的密碼 >
[root@sparrow wstearns]# tcpdump -i ppp0 -qt
bash: tcpdump: command not found
[root@sparrow wstearns]# exit
[wstearns@sparrow wstearns]$ 在這個例子中,我仍舊留在當前的wstearns目錄,沒有進入root的默認目錄。另外,由於/usr/sbin不在我的路徑中,我得指定tcpdump的完整路徑。這樣看來,壹般情況下還是使用“su -”更方便壹點。 su - -c <命令> 如果妳確實只需執行壹個命令,下面還有壹種更快的方法。-c選項告訴su運行指定的命令然後立即返回到原來的用戶: [wstearns@sparrow wstearns]$ whoamiwstearns[wstearns@sparrow wstearns]$ su - -c whoami