각 사용자마다 다른 mlocate 데이터베이스가 있습니까?

각 사용자마다 다른 mlocate 데이터베이스가 있습니까?

이것은 어리석은 질문으로 간주될 수 있습니다. 시스템의 모든 파일과 디렉터리는 일반 사용자가 다양한 파일을 보는 것을 방지할 수 있는 권한을 가질 수 있지만 추가 보안 및 컨텍스트를 입력하기에는 너무 길기 때문에 해당 위치로 이동할 수 있습니다. 사용자 그룹이 다른가요? 아니면 모든 사용자에게 해당됩니까?

목표는 일반 사용자가 존재조차 알지 못하는 파일에 대한 지식이나 액세스를 제한하는 것입니다. 하지만 루트 및 sudo 계정은 여전히 ​​루트 mlocate 데이터베이스를 사용하여 시스템의 모든 것을 볼 수 있어야 합니다.

이전에는 mlocate 데이터베이스에 대한 읽기 액세스를 제한했지만 이는 현재 시스템의 옵션이 아닙니다. 여러 설치에 대해 스레드 마이그레이션을 수행할 수 있는 방법이 있다면 두 개만 필요하고 저장 용량 제한도 없습니다. 참고만 하세요. 감사해요,

답변1

mlocate기본적으로 사용자가 액세스할 수 있는 파일만 표시됩니다. 적어도 내 버전의 CentOS 7에서는:

예를 들어:

% rpm -qf /usr/bin/locate
mlocate-0.26-8.el7.x86_64

% locate /root/.ssh

% sudo locate /root/.ssh
/root/.ssh
/root/.ssh/authorized_keys
/root/.ssh/known_hosts

이는 setgid로 인해 작동하며 locate데이터 파일은 해당 그룹에 잠겨 있습니다.

% ls -l /usr/bin/locate              
-rwx--s--x 1 root slocate 40520 Apr 10  2018 /usr/bin/locate

% sudo ls -al /var/lib/mlocate
total 142820
drwxr-x---  2 root slocate      4096 Feb 23 03:38 .
drwxr-xr-x 45 root root         4096 Dec  6  2018 ..
-rw-r-----  1 root slocate 146233302 Feb 23 03:38 mlocate.db

사실 일반 사용자들은 데이터베이스 파일조차 찾을 수 없습니다 :-)

% locate '/var/*mlocate*'       
/var/lib/mlocate

% sudo locate '/var/*mlocate*'
/var/lib/mlocate
/var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db.khYLWG

setgid 옵션은 FreeBSD에서도 작동합니다.

관련 정보