실제로 파일 /bin
(또는 실행 파일이 보관 된 다른 표준 디렉토리)이 루트로 쓰기 가능한지 여부는 중요 하지 않습니다. 내가 사용하는 Linux 서버에서는 루트로 쓸 수 있지만 OpenBSD 컴퓨터에서는 그렇지 않습니다.
그룹이나 "다른 사람"이 쓸 수없는 한!
보안 문제가 없습니다. 예 :
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
누군가 덮어 쓰기를 원했다면 루트 여야 root
하고, 덮어 쓰면 둘 중 하나입니다.
- 새 버전을 설치하거나
- 서투른
- 공격자 이미 루트 권한 .
고려해야 할 또 다른 사항은 루트가 쓰기 보호 여부에 관계없이 루트가 파일에 쓸 수 있다는 것입니다. 왜냐하면 루트이기 때문입니다.
"스크립트"는 바이너리 파일만큼 실행 가능한 파일입니다. "텍스트 파일이기 때문에"스크립트는 쓰기 가능할 필요가 없습니다. 어떤 경우에는 같은 디렉토리에있는 다른 실행 파일과 동일한 권한을 가져야합니다.
지금 모든 것에 대한 권한을 변경하지 마십시오! 이로 인해 권한이 올바르게 설정되었는지 확인할 수있는 모든 종류의 혼란과 잠재적 인 혼란이 발생할 수 있습니다. 또한 보안이 중요한 응용 프로그램에서 실수로 권한을 잘못 변경하면 시스템이 취약해질 수 있습니다.
실제로 이상한 것으로 보이지 않는 한 실행 파일에 대한 권한이 올바르게 설정되었다고 가정하면, 변경 사항을 시작하기보다는 관련 패키지 관리자에게 문의해야합니다.
댓글 과 채팅 에서 일부 역사가 필요했습니다.
Linux 바이너리 에 대한 권한 기록은 내가 아는 것이 아닙니다. 디렉토리 또는 umask
Linux 의 기본 권한을 단순히 상속받은 것으로 추측 되지만 실제로는 모르겠습니다.
내가 아는 것은 OpenBSD가 기본 시스템 1에 바이너리를 기본적으로 권한 모드 555로 설치한다는 것입니다 ( -r-xr-xr-x
). 이것은 메이크 조각에 지정된에 /usr/share/mk/bsd.own.mk
있는 세트 BINMODE
555 (그것은 이미 설정되어 제외). 동안 실행 파일을 설치할 때 나중에 사용됩니다 make build
에서 /usr/src
.
이 파일에 대한 주석 이 달린 CVS 로그를 살펴본 결과 1995 년 NetBSD에서 가져온 이후 파일의이 행이 변경되지 않은 것으로 나타났습니다.
NetBSD에서 파일은 1993 년 CVS 에 처음BINMODE
으로 555 로 설정되었습니다.
FreeBSD 프로젝트는 NetBSD에와 동일한 파일을 사용하는 것 같습니다 적어도 1994 년부터 , 그리고 A는 나중에 커밋하는 것은 (가) 기존 파일이 버클리 소프트웨어 배포의 4.4BSD의 릴리스라고 커밋 메시지에서 힌트를 추가합니다.
그 외에도 Berkeley의 CSRG 는 소스를 SCCS에 보관 했지만 저장소는 GitHub 2 에서 Git 형식으로 제공됩니다 . 우리가 여기에 forencic treatement을 제공하고 있다는 파일은 커밋 된 것으로 보인다 의해 키스 보 스틱 1990 년 (또는 그 가까이에있는 사람).
이것이 그 이야기입니다. 이유 를 원한다면 Keith에게 물어봐야 할 것 같습니다. 나는 " 이것은 555이기 때문에 ... " 라고 말하는 변경에 대한 커밋 메시지를보고 싶었지만 아니었다.
1 BSD 시스템은 Linux보다 "기본 시스템"과 "타사 패키지"(포트 / 패키지)로 엄격하게 구분됩니다. 기본 시스템은 운영 체제를 실행하기위한 완전한 기능 세트 를 제공하는 일관된 장치이며 포트 또는 패키지는 "로컬 소프트웨어"로 표시되며 아래에 설치됩니다 /usr/local
.
2 70 년대 이후부터보다 포괄적 인 Unix 릴리스의 GitHub 리포지토리 도 사용할 수 있습니다 .
root
가 왜 바이너리 파일에 대한 쓰기 권한을 가지고 있는지 궁금 하십니까? 그 외에는 패키지 업그레이드시 도움이되지 않습니다.