FHS 호환 시스템에서는 어떤 디렉토리에 쓸 수 있습니까?

FHS 호환 시스템에서는 어떤 디렉토리에 쓸 수 있습니까?

특정 사용자가 시스템에서 제거되면 해당 사용자의 모든 파일이 삭제되는지 확인해야 합니다. 이 시스템에서는 사용자 생성/삭제가 자주 발생하므로 UID를 재사용하고 새 사용자가 이전 사용자의 파일에 액세스할 수 없도록 하고 싶습니다.

내 질문은 두 가지입니다.

  1. 특정 사용자가 소유한 모든 파일을 찾는 일반적이고 쉬운 방법이 있습니까? 아니면 시스템 전체가 search -uid n유일한 옵션입니까?
  2. 시스템 전체 검색이 유일한 옵션인 경우 일반 사용자가 일반적으로 쓸 수 있는 디렉터리는 무엇입니까(배포는 다음과 같다고 가정)FHS)?
    • 그의 홈 디렉토리
    • /tmp
    • ??

사용자에게는 sudo권한이 없으므로 표준 Unix 파일 시스템의 누구나 쓸 수 있는 위치에만 쓸 수 있습니다.

답변1

계정을 삭제하려는 경우 사용하세요 userdel -r. 그러면 사용자의 home디렉터리와 해당 내용이 삭제됩니다. 또한 이 사용자에게 속한 메일 스풀 파일이 삭제됩니다.

나는 어떤 디렉토리도 문제의 사용자에게 속한 객체를 보유할 수 없다고 생각합니다. 사용자에게 SUDO 권한이 있는 경우 특히 그렇습니다.

find삭제하거나 방금 삭제하려는 계정의 UID를 찾는 데 사용합니다 .

find / -user <UID> -exec ls -ld {} +

여기서 UID는 관련 실제 UID 값으로 대체되거나, 계정을 삭제하지 않은 경우 사용자 이름으로 대체됩니다.

또는 일반적으로 더 이상 어떤 이름에도 매핑되지 않는 UID의 경우:

find / -nouser -exec ls -ld {} +

다양한 Unix 버전(HP-UX, AIX 등) 및 Linux 배포판에 이식 가능합니다. GNU find에서는 .-exec ls -ld {} +-ls

답변2

나는 스스로 몇 가지 조사를 해보았다. 주요 소스:http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/c23.html

간단히 말해서:사용자가 파일을 생성하는 것을 방해하는 것은 없습니다.. 그러나 표준 Linux FHS에서는 모든 사람이 특정 디렉터리에만 쓸 수 있습니다. 이 규칙을 따르는 배포판을 사용하는 한 다음 디렉터리만 확인해야 합니다(내 시스템에서 테스트한 결과 표시됨).

  • /dev/shm (일부 배포판에는 기본적으로 설치됨)
  • 사용자 홈 디렉터리
  • /var/tmp
  • /var/run/screen/S-루벤프
  • /tmp
  • /mnt/usb-disk (gid=users를 사용하여 마운트됨)

원천:

find -type d | 
  while read DIR; do 
    if touch $DIR/test_can_be_removed123 2>/dev/null; then 
      rm $DIR/test_can_be_removed123
      echo $DIR >> writable_directories
    fi
  done

관련 정보