基本的に、Unixシステム内のすべてのファイルは編集可能で、少なくとも表示可能であるという印象を受けました。
nano
で次のようなファイルに遭遇した場合、どのような手順を踏むことができますか:
実行中のファイルである場合、コードと、ファイルのインポート/エクスポート/依存関係の両方を調べるために必要なファイルの種類を実際に確認するにはどうすればよいですか?
ファイルシステムまたはメモリ上に存在するすべてのファイルは、適切な方法を使用するだけで技術的に編集可能です。バイナリデータファイル、特に dconf
データベース に関連する設定のnano
のファイル名行の名前、およびファイル内のキーワードGVariant
によって判断しました自体。したがって、dconf-editor
GUIツールまたはdconf
コマンドラインツールを使用する必要があります。
実行中のファイルである場合、そのコードと、ファイルのインポート/エクスポート/依存関係の両方を調べるために必要なファイルの種類を実際に確認するにはどうすればよいですか。
通常、file
コマンドを使用して、特定のファイルタイプを判別できます。
$ file /etc/passwd
/etc/passwd: ASCII text
ファイルが実行可能かどうかに関係なく、ls -l filename
またはstat
を使用して、所有者、グループ、および他のユーザーに実行可能ビットが設定されているかどうかを判断できます。 関連する投稿 を参照してください。これは、ファイルに対するアクセス許可を非常によく説明しています。 Access Control Lists もあります。これは、基本的なUnixパーミッションが許可するよりも多くの凝ったパーミッションを作成するために使用されます。
どのソフトウェアを使用するかについては、各ファイルに依存し、同じファイルタイプには多くの種類のソフトウェアがあります。一般に、バイナリファイルは、hexdumpまたはodコマンドを介して16進形式で表示でき、編集することができます。リバースエンジニアリングおよびセキュリティアプリケーションでよく使用される16進エディタがあります。
基本的に、Unixシステム内のすべてのファイルは編集可能で、少なくとも表示可能であるという印象を受けました。
まあ、「すべてはUnix/Linuxのファイルです」という言葉に当てはめなければならない真実が少しあります。ファイルシステムに存在できるファイルがあり、それはほとんどの人がファイルとして知っているものです。実際には、ファイル(つまり、どこかで一緒に編成された特定のデータチャンク)はメモリまたはファイルシステムに存在できます。つまり、匿名ファイルが存在する可能性があります。 Sockets および名前のないパイプはファイルであり、名前を持たず、カーネルが追跡するハンドルのみを持ちます。それらすべてを編集できますか?はい、再び、正しい方法で。パイプには1つのプロセスが書き込みを行い、別のプロセスは読み取りを行うため、ライターはパイプを編集できます。 メモリにマップされたファイル は、プログラムがその特定のメモリチャンクにアクセスできる場合に編集できます。すべてがファイルであるため、ファイルがどのコンテキストで適用されるかを理解する必要があります。