ダウンロードしたアイテムを自動実行ファイルとして表示するにはどうすればよいですか?

ダウンロードしたアイテムを自動実行ファイルとして表示するにはどうすればよいですか?

私は実行するものをダウンロードするのに多くの時間を費やしています。ダウンロードした後は間違いありません。今私のダウンロードフォルダにある900個のファイルの約3分の1は、私がダウンロードして実行するファイルです。それは私が最初にダウンロードした理由だからです。

しかし、毎回chmod + x'ingという疲れた小さなタスクを実行する必要があります。今後30分でダウンロードする必要がある小さなスクリプトが12個あります。

Linuxを作るために何ができますか?

  • x権限を完全に無視し、私のパソコンの所有者、管理者、永遠の神などとして、私に質問や推測なしに私がさせるようにしたいのですか?
  • ダウンロードしたファイルがELF、シェル、Pythonなどと一致する場合は、自動的に実行可能ファイルとして表示しますかfile

答え1

これはおそらくセキュリティ上良い考えではない可能性があり、将来の読者はこれが自分に合うかどうか慎重に検討する必要があります。しかし、非常に具体的なユースケースを説明したので、オプションを提供します。

おそらくあなたができる最も簡単なことは、〜/ Downloadsディレクトリを監視するためにバックグラウンドスクリプトを設定することです。inotify-wait (Ubuntu inotify-toolsパッケージ)そして、ファイルに書き込んでいたプログラムによってファイルが閉じられたので(IEダウンロード後)、ファイルに対するファイル権限を直ちに変更してください。

#!/bin/bash
inotify-wait -m ~/Downloads -e close_write --format %f | while IFS= read -r line ; do
 chmod u+x ~/Downloads/"$file"
done

もちろん、~/DownloadsELF、シェル、Pythonスクリプトだけでなく、ディレクトリに追加されたすべてのファイルも変更します。これを行うには、ファイル名を決定して選択する追加の規則を追加する必要があります。たとえば、次のように使用できます。file興味のあるファイルを特定してください。

答え2

私は同意するフィリップ・クーリンとさらに一歩進んでファイルをダウンロードした後、確認、確認、検証なしで実行することはセキュリティの面でやや無謀な行為です。しかし、ソースを暗黙的に信頼し、パーソナルコンピュータで作業している場合、決定はあなたの役割です。

  1. xあなたは、Linuxが権限を完全に無視し、指示どおりに実行するようにするために何ができるかを尋ねています。さて、ファイルがシェルスクリプトの場合は、次のように入力できます。

    シェン   ファイル名 アルギニン1 アルギニン2 アルギニン3
    または
    強く打つファイル名 アルギニン1 アルギニン2 アルギニン3
    Pythonスクリプトの場合は、次のように入力できます。
    Python  ファイル名 アルギニン1 アルギニン2 アルギニン3
    または
    Python 2ファイル名 アルギニン1 アルギニン2 アルギニン3
    または
    Python 3ファイル名 アルギニン1 アルギニン2 アルギニン3
    適切です。メモ:

    • スクリプトが通常の方法(つまり、この  xビットが設定されていると仮定)で自分自身を再帰的に呼び出そうとすると、これらの操作は失敗します。
    • ELFファイルなどのバイナリ実行可能ファイルに対応するコマンドがあるかどうかわかりません。

    ファイルをダウンロードしてからファイルの種類を知らずに実行することは本当にお勧めできません。

  2. 何十ものスクリプトをchmodする必要があると思うと、不気味になります。私は理解できません。 9文字を入力するのはとても難しいですかchmod +x 

    エイリアスを理解していますか? Bashで(つまり、  ~/.bashrc)次のように言うことができます。

    alias '+x'='chmod +x'
    

    その後利用できます

    +xファイル名
    ファイルをchmodしてください(入力回数を減らす)。そして エマ・ルーオが言った。、コマンドにワイルドカード(glob)を使用でき  chmodます  +x *.sh

    もう1つの文字を保存するには、  x別名として代わりに使用してください+x

  3. 上記のアイデアの組み合わせ:シェル関数の作成

    run()
    {
            chmod +x "$1"  &&  "$@"
    }
    

    それから入ることができます。

    走るファイル名 アルギニン1 アルギニン2 アルギニン3
    ファイルをchmodし、1つのコマンドで実行します。 (type run呼び出されたコマンドがシステムに存在することを確認し  run、存在する場合は別の名前を使用できます。)

答え3

仕事を単純に保つのが最善の方法だと思います。たった1つまたは2回テストするためにスクリプトをダウンロードした場合、スクリプトを実行可能にするのはなぜですか?

これを行う、シェルcmd。スクリプトで使用するシェルを呼び出すだけです。この場合はbashスクリプトです。

bash DownloadedScript.sh

ダウンロード時に一般的ではない実行スクリプトをたくさん残すのは良い考えではありません。システムセキュリティのためには実行不可能にしておくことをお勧めします。

答え4

同じURLから実際に異なるバージョンをダウンロードして実行するために繰り返す特定のユースケースでは、次のようになります。

while
    printf 'Press enter to download and run:'
    read -r
do
    curl "$URL" >| tmpexec &&
    chmod +x tmpexec &&
    ./tmpexec
done

(これはまた、多くの人が任意の公開サイトからダウンロードすることについて持っているセキュリティ上の問題を避けることを願っています。これは関係ありません。)

関連情報