사용자가 다른 사용자의 홈 디렉토리 목록을 볼 수 없도록 방지

사용자가 다른 사용자의 홈 디렉토리 목록을 볼 수 없도록 방지

사용자가 다른 사용자의 홈 디렉토리 목록을 볼 수 없도록 하고 싶습니다. 기본적으로 사용자는 다른 사용자의 홈 디렉토리에 접근할 수 없지만 아래와 같이 다른 사용자의 홈 디렉토리를 찾을 수 있습니다.

[opc@instance-20210712-0826 home]$ cd /home
[opc@instance-20210712-0826 home]$ ls -lh
total 8.0K
drwx------. 10 opc       opc       4.0K Nov 14 22:52 opc
drwx------.  2 otheruser otheruser   62 Nov 28 18:19 otheruser
drwx------.  3 yaskur    yaskur    4.0K Nov 28 01:45 yaskur

다른 방법으로 사용자는 다른 사용자의 목록을 볼 수 있습니다(홈 디렉토리 기준). 나는 그것을 방지하고 싶다. WHM/cPanel과 유사합니다. 사용자로 로그인하면 다른 사용자의 홈 디렉토리를 볼 수 없습니다.

[myuser@sng128 ~]$ cd /home
[myuser@sng128 home]$ ls -l
total 4
drwx--x--x 25 myuser myuser 4096 Nov 28 08:27 myuser

저는 CentOS나 Rocky Linux와 유사한 Oracle Linux를 사용합니다.

답변1

제한적인 파일 권한은 사용자가 다른 사용자와 해당 홈 디렉터리를 열거하는 것을 방지하지 않습니다. getent passwdglibc에서 홈 디렉토리를 포함하여 사용자를 나열합니다. 기본 getpwent()함수는 프로그램에서 호출할 수도 있습니다.

어떤 사용자도 다른 사용자의 홈 디렉토리를 나열하는 것을 완전히 방지하려면 해당 사용자를 격리하십시오. 마찬가지로 그들에게 자신의 용기를 제공하십시오. "컨테이너"는 하드웨어 VM, 소프트웨어 VM(사용자 모드 Linux), OpenVZ, chroot, podman 컨테이너 또는 일반적으로 Linux 사용자 및 PID 격리 네임스페이스 등 다양한 방법으로 구현될 수 있습니다.

답변2

다른 것에 대한 해결책을 찾다가 이것을 우연히 발견했습니다 ...

내 의견은 다음과 같이 할 수 있다는 것입니다.

chmod 711 /home
chmod 711 /home/*

그리고 이것은 최소한 다른 사용자가 /home 디렉토리를 나열하는 것을 방지해야 합니다. 이는 재귀적이지 않으며 /home 및 /home/userX 또는 /home/userY가 직접 나열(ls)되지 않도록 보호합니다.

물론 권한이 없는 사용자는 cat /etc/passwd시스템의 모든 사용자를 볼 수 있으며, 이 경우 /home 디렉토리를 나열하는 것만큼 좋습니다.

그런 경우에는 바로 이 목적으로 제작되었으며 설정도 쉬운 Firejail을 강력히 추천합니다.

Ubuntu Server에서는 다음과 같이 설치하고 구성합니다(예: firejail_install.sh 스크립트에서).

#!/bin/bash

apt-get -y update
apt-get -y install firejail

if [ ! -f "/etc/firejail/disable-common.local" ]; then
    cat > "/etc/firejail/disable-common.local" <<EOF

# Firejail blacklist
blacklist /etc/passwd
blacklist /etc/letsencrypt
blacklist /etc/mysql
blacklist /etc/nginx
blacklist /etc/php
blacklist /etc/postfix
blacklist /etc/varnish
blacklist /var/lib/mysql
blacklist /var/run/php

# END
EOF

fi

블랙리스트에 등록하는 것에 주의하세요 :)

이는 /home에 대한 올바른 권한과 결합되어 엿보는 눈으로부터 시스템을 어느 정도 더 효과적으로 보호하기에 충분할 것입니다.

답변3

/home에 대한 전역 읽기 권한 제거

sudo chmod o-r /home

이는 비정상적인 설정이므로 예기치 않게 일부 문제가 발생할 수 있습니다. (예: 파일 브라우저) 일반적인 작업을 방해하지 않습니다.

관련 정보