보안을 위해 개인 쉘 스크립트를 어디에 넣어야 합니까?

보안을 위해 개인 쉘 스크립트를 어디에 넣어야 합니까?

나는 몇 가지 사용자 정의 기능을 만들기 위해 sh를 배우고 있습니다. 나는 스택 교환에서 확인했고 누군가가 아래에 내 개인 스크립트를 넣으면 실제로 그런 일을 하는 ~/bin것과 같은 악성 코드를 탐색할 수 있다고 말했기 때문에 내 개인 스크립트를 위한 안전한 장소를 찾고 있습니다 .ls()rm -rf

답변1

ilkkachu의 의견을 바탕으로 편집되었습니다. 파일 쓰기 금지가 삭제로부터 보호되지 않는다는 사실을 잊어버렸습니다. 따라서 파일도 쓰기 금지된 폴더에 있어야 합니다.


다음과 같은 경우 파일을 수정하려면 비밀번호가 필요합니다.

  • 소유자에게만 쓰기 권한이 있습니다.
  • 소유자는 루트입니다.

그렇더라도 누구나 파일을 삭제하고 자신의 콘텐츠로 다시 만들 수 있습니다. 이를 방지하려면 쓰기 권한이 없는 폴더에 파일을 넣어야 합니다. 폴더 삭제도 가능하므로반품보호된 폴더에 있어야 합니다.까지 /...

즉, 파일 권한이 다음과 같기를 원합니다.

.rw-r--r-- root일반 사용자 셸에서 실행할 수 있지만 수정하려면 sudo가 필요합니다.

.rwxr-xr-x root실행 가능해야 하는 경우에도 마찬가지입니다.

해당 파일 사이에 포함된 모든 폴더는 /다음과 같아야 합니다.

drwxr-xr-x root

다행스럽게도 대부분의 최상위 시스템 폴더는 home루트에서만 쓸 수 있으므로 적합합니다. 컨벤션이 무엇인지 잘 모르겠습니다. /usr/share예를 들어 보겠습니다.

따라서 일반 파일로 시작하십시오 ~/myscripts/script.sh.

# change file permissions to .rw-r--r--
chmod 644 myscripts/script.sh
# or to .rwxr-xr-x
chmod 755 myscripts/script.sh

# set permissions on the folder (they should be like this by default already)
chmod 755 myscripts

# make root the owner
sudo chown root:root myscripts/script.sh
sudo chown root:root myscripts

# place it in one of the root folders
sudo mv myscripts /usr/share/

이 공격 벡터가 걱정된다면 모든 자동 실행 셸 스크립트가 유사하게 보호되는지 확인해야 합니다: .bashrc, .bash_profile... (원치 않는 부작용이 있는지는 모르겠습니다. 아직 시도했습니다). 또한 새 위치를 가리키는 모든 기호 링크나 구성 파일을 잠가야 합니다.

관련 정보