chmod +x:1つのオペレーティングシステムまたはすべてのオペレーティングシステムのファイルに影響します。

chmod +x:1つのオペレーティングシステムまたはすべてのオペレーティングシステムのファイルに影響します。

たとえば、run.shこのファイルを実行可能にしたいので、次のようにします。

chmod +x run.sh

私の質問は次のとおりです

  • このコマンドはファイルを実行可能にします。それでは、このファイルを別のオペレーティングシステムにインポートしても実行可能ですか?
  • それでも実行可能であれば、人々は他の場所に送信する前に実行可能にしないのはなぜですか?

Docker環境でテストしたときにホスト環境で実行できるように作成されたファイルがDocker環境の影響を受けたことを発見したので、これを尋ねます。

ありがとう

答え1

ファイルの権限はディスクに保持されるため、ファイルの実行ビットを設定するとディスクに保存されます。ディスクを移動するか、単に別のオペレーティングシステムを起動して「ファイルを別のオペレーティングシステムにインポートする」場合、ファイルのメタデータは同じです。

ただし、「インポート」が他のファイル転送メカニズムなどの一部の操作を意味する場合、通常は次のようになりますscpいいえデフォルトでは、変更時間や権限などのメタデータが渡されます。scp -pたとえば、次を使用してこれを実行できます。マニュアルから:

 -p      Preserves modification times, access times, and modes from the original file.

ここで、「モード」は一般に権限として知られています(実際にはchmod「変更モード」の略語です)。コピー操作対象のファイルシステムがこのメタデータを処理する方法を知っていると仮定すると、新しいホストに対してまだ同じ権限があります。

答え2

それでは、このファイルを別のオペレーティングシステムにインポートしても実行可能ですか?

これは導入方法によって異なります(つまり、FSをリモートリポジトリにインポートすることは実行フラグをサポートしません)。

それでも実行可能であれば、人々は他の場所に送信する前に実行可能にしないのはなぜですか?

たぶん何人かの人々はその動作を知っているので、このように紹介しないかもしれません。

関連情報