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)に追加するだけです。
挨拶