이것은 어리석은 질문으로 간주될 수 있습니다. 시스템의 모든 파일과 디렉터리는 일반 사용자가 다양한 파일을 보는 것을 방지할 수 있는 권한을 가질 수 있지만 추가 보안 및 컨텍스트를 입력하기에는 너무 길기 때문에 해당 위치로 이동할 수 있습니다. 사용자 그룹이 다른가요? 아니면 모든 사용자에게 해당됩니까?
목표는 일반 사용자가 존재조차 알지 못하는 파일에 대한 지식이나 액세스를 제한하는 것입니다. 하지만 루트 및 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에서도 작동합니다.