chmod 000 /dev/stdin この端末は永久に無効になりますか?

chmod 000 /dev/stdin この端末は永久に無効になりますか?

次の問題を解決しています。Unix教科書 (8章16号、207ページ):

コマンドとchmod同じ操作を実行するコマンドラインを提供します。 (ヒント:端末を含むすべてのハードウェアデバイスには、ディレクトリに関連ファイルがあります。)mesg nmesg y/dev

私はその答えが次のようになると信じています:

mesg n=chmod 770 /dev/stdout

mesg y=chmod 777 /dev/stdout

しかし、使用するとどうなるのだろうかchmod 000 /dev/stdin

端末にコマンドを入力できないようにロックされていますか?

ベストアンサー1

/dev/stdinいいえ、/dev/stdout間違ったデバイスです。これは端末装置ではなく、それぞれ標準入力と標準出力の別名です。定義によると、標準入力と標準出力は次のようになります。ファイル記述子アプリケーションは開かれると予想され、一般的な意味を持ちます(ファイル記述子はそれぞれ0と1、2は標準エラーです)。/dev/stdinなどのデバイスは、アプリケーションにファイル名が必要ですが、アプリケーションユーザーが特定のファイルを開くのではなく、特定のファイル記述子にアクセスしたい場合に便利です。/dev/stdoutUnixのバリエーションによっては、デバイスファイルではない可能性があります。たとえば、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)"

おすすめ記事