疑似端末エラー:: "mesg: /dev/pts/2 を開けませんでした: 権限が拒否されました。"

疑似端末エラー::

userA私のUbuntu 20.04.5システムでは、アカウントでPerlスクリプトが実行されています。スクリプトは次のコマンドを実行します。

sudo su - userB -c "ssh -l userB 10.0.0.1 ls -tr /some/remote/directory"

(つまり、リモートホストにSSH経由で接続し、すべてのuserBファイルを一覧表示します/some/remote/directory。)

コマンドは正常に実行されます。ただし、コマンドラインにエラーが表示されます。

me@ubuntu1$ sudo su - userB -c "ssh -l userB 10.0.0.1 ls -tr /some/remote/directory"
mesg: cannot open /dev/pts/2: Permission denied
Welcome to 10.0.0.1!  You have logged in.
file1.txt
file2.txt
file3.txt
me@ubuntu1$

mesg: cannot open /dev/pts/2: Permission deniedそのメッセージは何ですか? ? ?

若干のインターネット調査明らかにする:

/dev/ptsのエントリは疑似端末(ptyと呼ばれる)です。 Unixカーネルには汎用端末の概念があります。端末は、アプリケーションが端末装置を介して出力を表示し、入力を受け取る方法を提供します。

擬似端末で読んでいるとしましょう。

プログラムが読み取り用に端末を開くと、ユーザーの入力がプログラムに渡されます。複数のプログラムが同じ端末から読み出される場合、各文字はプログラムの一つに独立してルーティングされる。これはお勧めできません。通常、特定の時間に1つのプログラムのみが端末から積極的にデータを読み取っています。プログラムがフォアグラウンドにないときに制御端末からデータを読み取ろうとする試みは、SIGTTIN信号によって自動的に中断される。

興味深いのに…なぜそれを見ているのか、まだ混乱していますmesg: cannot open /dev/pts/2: Permission denied。私はまだスクリプトを開発しており、何度も実行しています。初めて実行したときにこのエラーメッセージが表示されたことを覚えていません。私のスクリプトが実行されるたびに/dev/pts/2毎回アクセスを試みますが、私のコードが接続を正しく閉じないのは可能ですか?

userAそれとも、これはrunコマンドの使用に関連していますかuserB?別のユーザーアカウントにアクセスすると、医師の端末は機能しませんか?

どんな洞察力やフィードバックでも歓迎します。ありがとうございます。

ベストアンサー1

デバイスに割り当てられたグループが「tty」の場合は、ユーザーをttyグループ(/ etc / group)に追加するだけです。

挨拶

おすすめ記事