다운로드한 항목을 자동 실행 파일로 표시하려면 어떻게 해야 합니까?

다운로드한 항목을 자동 실행 파일로 표시하려면 어떻게 해야 합니까?

나는 실행할 일을 다운로드하는 데 많은 시간을 소비합니다. 다운로드한 후에는 의심의 여지가 없습니다. 이제 내 다운로드 폴더에 있는 900개의 파일 중 약 3분의 1은 내가 다운로드한 다음 실행하는 파일입니다. 왜냐하면 그것이 내가 처음에 다운로드한 이유이기 때문입니다.

하지만 매번 chmod +x'ing라는 피곤한 작은 작업을 수행해야 하는데, 이는 재미로 다운로드하지 않기 때문에 완전한 시간 낭비입니다. 이제 앞으로 30분 안에 다운로드해야 할 작은 스크립트가 12개 있는데, 이 스크립트를 모두 chmod해야 한다는 생각에 몸서리가 쳐집니다.

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 스크립트인 경우 다음을 입력할 수 있습니다.
    파이썬  파일 이름 아르기닌1 아르기닌 2 아르기닌 3
    또는
    파이썬 2파일 이름 아르기닌1 아르기닌 2 아르기닌 3
    또는
    파이썬 3파일 이름 아르기닌1 아르기닌 2 아르기닌 3
    적절한. 노트:

    • 스크립트가 일반적인 방법(즉, 이  x비트가 설정되었다고 가정)으로 자신을 재귀적으로 호출하려고 하면 이러한 작업은 실패합니다.
    • ELF 파일과 같은 바이너리 실행 파일에 해당하는 명령이 있는지 모르겠습니다.

    파일을 다운로드한 다음 파일 유형을 모르고 실행하는 것은 정말 권장하지 않습니다.

  2. 수십 개의 스크립트를 chmod해야 한다는 생각을 하면 소름이 돋을 것입니다. 난 이해가 안 돼요. 아홉 글자를 입력하는 것이 그렇게 어렵나요 chmod +x  ?

    별칭을 이해하시나요? Bash에서 (즉,  ~/.bashrc) 다음과 같이 말할 수 있습니다.

    alias '+x'='chmod +x'
    

    그런 다음 사용할 수 있습니다

    +x파일 이름
    파일을 chmod하세요(입력 횟수 감소). 그리고 엠마 루오가 말했다., 명령에 와일드카드(glob)를 사용할 수  chmod있으며  +x *.sh괜찮습니다.

    한 문자를 더 저장하려면  x별칭으로 대신  사용하세요 +x.

  3. 위의 아이디어 결합: 셸 함수 만들기

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

    그러면 들어갈 수 있어요

    달리기파일 이름 아르기닌1 아르기닌 2 아르기닌 3
    파일을 chmod하고 하나의 명령으로 실행하십시오. ( type run호출된 명령이 시스템에 존재하는지 확인  run하고, 존재하는 경우 다른 이름을 사용할 수 있습니다 .)

답변3

일을 단순하게 유지하는 것이 가장 좋은 방법이라고 생각합니다. 단지 한두 번 테스트하기 위해 스크립트를 다운로드하는 경우 스크립트를 실행 가능하게 만드는 이유는 무엇입니까?

이렇게 하세요, 쉘 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

(나는 이것이 또한 많은 사람들이 임의의 공개 사이트에서 다운로드하는 것에 대해 가지고 있는 보안 문제를 피하기를 바랍니다. 이는 여기서는 관련이 없습니다.)

관련 정보