서버와 다른 uid:s를 사용하는 클라이언트에 대한 NFS(클라이언트 uid:s는 서버에 없어야 함)

서버와 다른 uid:s를 사용하는 클라이언트에 대한 NFS(클라이언트 uid:s는 서버에 없어야 함)

NFS를 통해 마운트된 루트 파일 시스템이 있는 임베디드 Linux 장치에 문제가 있습니다.

그러나 여러 가지 이유로 내장형 장치는 루트로 실행되는 단일 사용자 장치입니다(나중에는 네트워크 연결도 없습니다).

컴퓨터에서는 일반 사용자가 모든 파일을 소유하게 하여 항상 루트가 아니거나 sudo를 사용하지 않고도 파일을 수정할 수 있기를 원합니다.

그러나 이제 클라이언트가 nfs 마운트에 새 파일을 생성하면 사용자 ID가 루트로 설정되고 서버에 문제가 발생합니다.

그래서 제 질문은 이 문제를 해결하기 위해 /etc/export에 플래그를 설정할 수 있다는 것입니다. 이렇게 하면 클라이언트가 파일을 생성할 때 서버의 uid는 루트가 아니라 사용자의 uid(500 또는 1000)가 됩니다.

이것은 서버의 현재 /etc/export입니다.

/opt/eldk/armVFP  *(rw,sync,no_root_squash)

답변1

이것가장 단순한이 문제에 대한 해결책은 서버 공유에 대한 권한을 전역적으로 쓸 수 있도록 설정하는 것입니다(0777). 클라이언트(임베디드 장치)에서 사용자의 umask를 0000으로 설정합니다. 이 no_root_squash옵션도 제거하세요. 당신이 원하는root_squash 존재하다. 그러면 루트가 nobody사용자로 전환됩니다. 그런 다음 서버 시스템의 모든 사용자로서 공유에 생성된 모든 파일을 읽고 쓸 수 있습니다.

경고하다
내가 설명한 것은 매우 안전하지 않은 구성이므로 폐쇄된 개인 네트워크가 아닌 다른 곳에서는 이 작업을 수행하지 않는 것이 좋습니다.

관련 정보