bin평생 동안 Linux는 어떤 용도로도 제대로 사용되지 않았습니다.

bin평생 동안 Linux는 어떤 용도로도 제대로 사용되지 않았습니다.

내가 그랬던 것처럼https://unix.stackexchange.com/a/484626/5132이것은 자체적인 Q&A를 가질 가치가 있습니다.

리눅스 운영체제에서는...

% 비밀번호 상자 가져오기
bin:x:2:2:bin:/bin:/usr/sbin/nologin
%
...그리고 FreeBSD에서는...

% 비밀번호 상자 가져오기
bin:*:3:7:바이너리 명령 및 소스:/:/usr/sbin/nologin
%
...그리고 OpenBSD에서는...

$ getent 비밀번호 상자
bin:*:3:7:바이너리 명령 및 소스:/:/sbin/nologin
$
...현재도 계정을 찾을 수 있습니다 bin. 그러나 이것은 거의 문서화되지 않았습니다. 이것리눅스 표준 라이브러리버전 5 그냥 말하면 ...

참고: bin이전 애플리케이션과의 호환성을 위해 사용자 ID/그룹 ID가 포함되어 있습니다. 새 애플리케이션은 더 이상 bin사용자 ID/그룹 ID를 사용해서는 안 됩니다.
...호환성 메커니즘의 특성을 설명하지 않습니다. Joey Hess가 2001년에 말했듯이:

bin:

돕다: 내 시스템에는 사용자나 그룹에 속한 파일이 없습니다 bin. 그들의 이점은 무엇입니까? 역사적으로 그들은 바이너리의 소유자였을까요 /bin? FHS, 데비안 정책, base-passwd나 base-files에 대한 변경 로그에는 이에 대한 언급이 없습니다.

M. 헤스의 질문Debian doco의 base-passwd 패키지는 지금까지 답변이 없습니다., 17년 후.

그렇다면 bin계정의 용도는 무엇입니까?

답변1

bin평생 동안 Linux는 어떤 용도로도 제대로 사용되지 않았습니다.

런레벨 및 회비 기록과 마찬가지로 init이 계정은 Linux가 발명되기 전에는 Unix 세계에서 더 이상 사용되지 않았습니다. 이는 1980년대의 아이디어였지만 NFS(Network File System)와 그 사용자의 발명과 채택으로 산산조각이 났습니다. 상용 Unix 세계의 사람들이 90년대에 적극적으로 사용을 중단했던 2010년대 후반에도 사용자 계정 데이터베이스에 계속해서 존재했다는 것은 관성의 증거입니다.getty/etc/inittabbinnobody

아이디어는 사용자가 및 bin같은 다양한 디렉토리를 가지고 있다는 것입니다 (실제로는/bin/usr/binhttps://unix.stackexchange.com/a/448799/5132예를 들어 /usr/mbin/usr/5bin) 및 설정되지 않은 UID/설정되지 않은 GID 파일이 포함되어 있습니다. 또한 man 페이지와 같은 doco 파일과 디렉토리도 있습니다.

/(더 극단적인 경우에는 및 일부 Unices에도 있지만 /etc후자는 SunOS 운영 체제 이미지를 생성할 때 인식되는 오류입니다. 전자는 어리석은 일입니다.)

따라서 사용자로 실행할 때 소프트웨어 업데이트를 수행할 수 있는 권한은 bin수퍼유저로 실행할 때 시스템에서 모든 작업을 수행할 수 있는 포괄적인 권한이 아닙니다. 소프트웨어 업그레이드 프로그램은 개인 사용자 파일을 읽거나 쓸 수 없으며, 사서함에 액세스하는 등의 작업을 할 수 없습니다. 물론 소프트웨어를 업데이트할 수도 있습니다.

파일에 있는 다른 여러 특수 계정 항목에는 /etc/passwd비밀번호가 있어야 합니다. 관리 계정은 , bin, daemon, sys, uucplp입니다 adm. [...] 이러한 계정이 존재하는 주된 이유는 명령, 스크립트, 파일 및 장치의 안전한 소유권을 위한 것입니다. 일부 관리자는 이러한 계정에 대한 비밀번호를 설치하고 실제로 사용합니다. [...] 비밀번호가 없는 bin계정은 시스템 파괴자에게 매우 유용합니다.
--레베카 토마스와 릭 패로우(1989).System V용 UNIX 관리 안내서. 프렌티스 홀. ISBN 9780139428890. 피. 452.

1980년대 초 NFS의 발명은 이러한 생각을 완전히 깨뜨렸습니다.

위의 인용문에서 알 수 있듯이 이미 무너지고 있습니다. 이는 슈퍼유저가 당연히 수행하는 기본 유틸리티에 대한 프로그램 이미지 파일을 업데이트하는 기능이 /bin/ls슈퍼유저 권한을 얻는 직접적인 벡터이고, 계정을 사용할 때 액세스를 구분하면 bin실수로 잘못된 디렉토리를 수정하는 것을 방지하기보다는 단순히 방지하기 때문입니다. Molecule은 슈퍼유저 액세스 권한을 얻습니다.

NFS의 등장은 이 점을 강조합니다. NFS 에는 수퍼유저 계정을 일반 비시스템 사용자 계정으로 다시 매핑하는 메커니즘이 있지만 bin. 실제로 NFS 클라이언트의 수퍼유저(그렇지 않으면 서버의 일반 비시스템 사용자로 다시 매핑됨)가 서버 운영 체제 파일 및 디렉터리에 대한 소유자 액세스 권한을 얻을 수 있습니다.binbin

이는 Unix 보안 감사 도구의 표준 보고 항목이 되었으며 경고 대상이 된 취약성을 해결하기 위해 chown슈퍼유저 소유에서 슈퍼유저 소유로 변경하는 것이 통념이었던 1990년대 초의 상식이었습니다. bin. Sendmail의 설치 doco와 유사합니다.

M. Hess의 질문에 따르면, 이 아이디어는 데비안에서 채택된 적이 없으며, 데비안은 유닉스 세계가 그것이 나쁜 아이디어라는 것을 알고 몇 년 후에 나왔고, 유닉스는 리눅스 이전에도 그것이 나쁜 아이디어라는 것을 알고 있었습니다.그 자체발명되었습니다. BSD 운영 체제의 역사하다1980년대로 돌아가 물리적 소유권은 폐지된 지 오래지만 사용자 계정은 여전히 ​​계정 데이터베이스에 유지됩니다. FreeBSD는 1998년에 bin: bin소유권을 root:소유권 으로 전환했습니다.wheel, 예를 들어.

추가 읽기

답변2

2018년에는 두 가지 상황에서 bin을 사용했습니다. 1: 실행 파일 - 기능을 완료하기 위해 웹 서버에서 주로 사용되는 .exe 파일입니다. 2: 로그 - 때때로 bin 폴더에 .log 또는 .dat 파일을 넣습니다.

관련 정보