我正在嘗試使用 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
wall
和write
在 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 不支援該文件。
延伸閱讀: