리눅스를 통해 밸브의 스팀을 이용하는 게이머들이 반드시 알아야 될 정보입니다.
Github에 올라온 버그 보고에 따르면,
스팀의 유저 폴더를 다른 곳으로 이동시키고 클라이언트를 실행시킬 경우
보기만 해도 심장이 멎을 것 같은 코드가 실행된다고 합니다. 그 코드는 아래와 같습니다.
rm -rf /*
이것은 최상단 디렉토리부터 하위 계층에 있는 모든 파일을 지우는 명령어입니다.
다행히도 클라이언트가 루트 권한을 가지고 있지 않기 때문에 시스템까지 영향을 미치지 않는다고 합니다만
클라이언트를 실행한 PC의 계정과 관련된 모든 파일이 삭제되므로 주의가 요망됩니다.
프로그래머가 Scary! (무서워!) 라는 주석을 넣었기 때문에,
실수가 아니라 이미 대참사가 일어날 것을 예측하고 작성했음을 알 수 있습니다.
따라서, 중요한 자료는 미리 백업하고 문제가 해결될 때까지
스팀과 관련된 자료를 다른 디렉토리로 옮기지 말 것을 권장하고 있습니다.
* 출처 : The Register http://www.theregister.co.uk/2015/01/17/scary_code_of_the_week_steam_cleans_linux_pcs/
머피의 법칙: 일어날 수 있는 일은 반드시 일어난다
소름끼친다....
rm -rf /*
rm -rf "${STEAMROOT:-/tmp}/"*
이런 식으로 적으면 만약 스팀루트 변수가 정의되어있지 않은 경우 임시 디렉토리인 /tmp 날아가는거 외엔 문제가 없지 않았을라나 조심스레 생각해봅니다.
from CV
echo "오류"
else
rm -rf "$STEAMROOT/*"
fi
하면 예방 가능한데 왜 저렇게 코딩한 거지...
script이 루트 폴더에만 없으면 문제 없을 거 같네요. 애시당초 루트폴더에 깔지도 못했을 거고, 루트 권한도 없었을 테니, 버그라기보단 위험한 코드같네요.
#CLiOS
루트권한을 가진 경우도 완전히는 못 날리고 몇개 남습니다. 물론 그 몇개가지곤 OS가 제대로 구동이 안되니 재부팅하면 그때부터 안켜지고요. 재부팅 전에도 당장 대부분의 명령어가 맛이 가고.. 포맷은 그런거 없이 깔끔하게 날아가지요. 해당 파티션에서 부팅한 상태에선 할 수도 없고요.
그리고 요즘 유닉스계열은 저런 말도 안되는 명령어는 필터링을 하기도 합니다. 그래서 사실 저렇게 해놔도 최신형 배포판 기준으론 알아서 필터링될 가능성이 높습니다.
뭐 물론 그러나 마나 저건 진짜 인간적으로 잘못 짠 스크립트긴 합니다만..
ㅋㅋㅋㅋㅋㅋ
http://www.clien.net/cs2/bbs/board.php?bo_table=news&wr_id=1901061&sfl=mb_id%2C0CLIEN
해당 문제는 사용자가 임의로 스팀유저 디렉토리를 없애거나 옮기고 root권한으로 그걸 수행했을 때 발생하는 것이므로 그 부분에 대한 체크를 0$가 정해질 때(혹은 가장 위에서) 수행해줘야 될 것 같습니다.
- 비지니스 코드를 엄청나게 싫어하는 비지니스 개발자