sudo, 사용자 파일에 접근할 수 없습니다

sudo, 사용자 파일에 접근할 수 없습니다

최신 버전의 Debian을 설치했지만 다음 명령을 사용할 때 내 파일에 액세스할 수 없습니다 sudo:

  • ls-> 내 홈 디렉토리에 있는 파일 보기
  • sudo ls-> 권한이 거부되었습니다

내 사용자는 sudoers 그룹의 일부이며 파일에 다음 항목이 있습니다 /etc/sudoers.

user1 ALL=(ALL:ALL) ALL

우분투를 사용하기 전에는 이런 문제가 발생하지 않았습니다.

내 홈 디렉터리는 NFSv4 파일 시스템에 있습니다.

답변1

이 디렉토리는 NFS 마운트 파일 시스템에 있습니다. 아마도 NFS 서버는 root_squash이 옵션(대부분의 시스템에서 기본값)을 사용하여 파일을 내보냈을 것입니다. 이는 파일 시스템에 액세스하기 위해 사용자가 root해당 사용자에게 매핑되므로 해당 사용자 nobody에 대한 "기타" 권한이 적용된다는 의미입니다. 예배 규칙서.

가능한 조치:

  1. 이 디렉토리에 액세스하는 데 사용하지 마십시오 root. 예를 들어, sudo루트부터 시작하여 각 사용자의 홈 디렉터리를 순서대로 확인하면서 사용자의 홈 디렉터리를 검색하는 스크립트를 작성하는 경우 :

    for user in `getent passwd | grep ':/home' | cut -d : -f1`
    do
         sudo -u "$user" \
             "$process_directory" "`getent passwd $user | cut -d : -f6`"
    done
    

    (옵션과 명령을 구분하기 위해 줄을 나눴습니다 sudo)

  2. 사용자가 읽고 검색할 수 있도록 디렉토리의 권한을 변경합니다 nobody(예 chmod go+rx: ). 이를 수락할 수도 있고 그렇지 않을 수도 있습니다. 민감한 파일(예: ~/.ssh/캐시 디렉터리)을 읽을 수 없도록 할 수도 있습니다.
  3. 이 옵션을 제거하려면 서버에서 내보내기를 변경하세요 root_squash. 데비안에서 이것은 옵션 목록에 /etc/exports추가하기 위해 편집하는 것을 의미합니다:no_root_squash

    srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check,no_root_squash)
    

    그러면 root마치 파일 시스템이 로컬인 것처럼 권한에 관계없이 해당 파일 시스템의 모든 파일에 대한 액세스가 허용됩니다.

관련 정보