いいえ、/dev/stdin
そして/dev/stdout
間違ったデバイスです。これらは端末デバイスではなく、それぞれ標準入力と標準出力のエイリアスです。標準入力と標準出力は、定義により、あるファイル記述子アプリケーションが開いていると、従来の意味を有することを期待すること(それぞれ、ファイル記述子0と1を、2は標準誤差であるもあります)。/dev/stdin
やなどのデバイス/dev/stdout
は、アプリケーションがファイル名を必要としているが、アプリケーションのユーザーがファイルを開くのではなく、特定のファイル記述子にアクセスすることを望む場合に役立ちます。UNIXバリアントによっては、デバイスファイルでさえない場合があります。たとえば、Linuxでは、これらはへのシンボリックリンクです/proc/self/fd/0
また、これらは、プロセスがそのファイル記述子ですでに開いているファイルへの「魔法の」シンボリックリンクです。
のパーミッションを変更する/dev/stdin
と/dev/stdout
、これらのファイル名が明示的に使用された場合にのみ変更が発生します。ターミナルに関連するものには影響しません。また、特定のファイル名を開くときにのみ権限が問題になるため、標準入力および標準出力の通常の使用には影響しません。
何mesg
がプロセスの制御端末の許可を変更することです。端末で実行されているアプリケーションの場合、端末は標準入力、標準出力、標準エラー(ファイル記述子0、1、2)で開かれています。このコマンドtty
を使用して、端末デバイスが何であるかを確認できます。mesg n
は、と同等でchmod g-w "$(tty)"
あり、mesg y
と同等chmod g+w "$(tty)"
です。
mesg n
アクセス権を使用してfutureに影響を与えることができます。write
write