wall コマンドでメッセージを送信できないのはなぜですか?

wall コマンドでメッセージを送信できないのはなぜですか?

wall または write のいずれかを使用してメッセージを送信しようとしています。これをテストするために、gnome-terminal ウィンドウを 2 つ開きました。次に、1 つのウィンドウに次のように入力しました。

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

wallDebian(およびUbuntu)では、との両方writeが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ビットで、4番目のフィールドはグループですtty機能を動作させるには、両方 (または同等のグループ) が必要です。

権限以外にも、gnome-terminalを使用する際に遭遇する別の側面があります。wallそして、writeメッセージを送信します。ログインしたユーザー. その情報は utmp データ ファイルから取得されますが、gnome-terminal ではサポートされていません。

参考文献:

関連情報