為什麼我無法使用 wall 指令發送訊息?

為什麼我無法使用 wall 指令發送訊息?

我正在嘗試使用 wall 或 write 發送訊息。為了測試這一點,我打開了兩個 gnome 終端視窗。然後在一個視窗中輸入以下內容:

me@host>>wall
message to everyone


<ctrl> + d

當我完成訊息後,我使用(ctrl-d)發送了一個中斷信號EOF 字元。終端機沒有發送訊息,而是向我發出蜂鳴聲,就好像我輸入了無效的輸入一樣。我在 write 中得到了類似的行為。有人可以幫我解決問題嗎?

編輯:這是權限資訊:

me@host>>ls -l $(type -p wall)
-rwxr-sr-x 1 root tty 27368 May 26 18:31 /usr/bin/wall

答案1

wallwrite在 Debian(和 Ubuntu)上都使用 setgid (設定組 ID) 的特權tty群組以允許這些程式寫入其他使用者的終端。

然而,共享電腦系統的管理員通常會停用此功能。您可以透過執行以下操作來查看權限

ls -lL /usr/bin/write /usr/bin/wall

在正常的系統上會看到這個(日期並不重要):

$ ls -lL /usr/bin/write /usr/bin/wall
-rwxr-sr-x 1 root tty 23056 Dec 11  2012 /usr/bin/wall
-rwxr-sr-x 1 root tty 14624 Jun 11  2012 /usr/bin/write

s在第一個字段中-rwxr-sr-x是setgid位,第四個字段是組tty。您需要兩者(或等效的組)才能使該功能發揮作用。

除了權限之外,使用 gnome-terminal 還會遇到另一個面向:wall並將write訊息傳送到登入用戶。他們從 utmp 數據文件中獲取該信息,而 gnome-terminal 不支援該文件。

延伸閱讀:

相關內容