SFTP가 내 umask 설정을 존중하도록 만드는 방법

SFTP가 내 umask 설정을 존중하도록 만드는 방법

SFTP에서 002의 umask를 제공하려고 하는데 umask가 022인 것처럼 계속 작동합니다. 이 작업을 수행하려면 어떻게 해야 합니까?

레드햇 7.4

/etc/ssh/sshd_config에는 다음 줄이 있습니다.

Subsystem sftp internal-sftp -u 002

나도 시도했다

Subsystem sftp internal-sftp -u 0002

sshd_config를 변경할 때마다 다음 명령을 실행합니다.

sudo systemctl restart sshd.service

그런 다음 별도의 창에서 sftp에 로그인하십시오.

파일을 sftp에 업로드하면 쉘 세션의 "ls -Fla"가 다음을 반환합니다.

drwxrwsr-x. 2 [myID]  [myGroup]         32 Dec 28 17:37 ./
drwxrwxr-x. 4 [siteID] [siteGroup]      50 Dec 26 18:44 ../
-rw-r--r--. 1 [myID]  [myGroup]    9173334 Dec 28 17:37 [myUploadedFile]

(마지막 줄에는 그룹 권한으로 r--이 있습니다)

내가 예상한 곳:

drwxrwsr-x. 2 [myID]  [myGroup]         32 Dec 28 17:37 ./
drwxrwxr-x. 4 [siteID] [siteGroup]      50 Dec 26 18:44 ../
-rw-rw-r--. 1 [myID]  [myGroup]    9173334 Dec 28 17:37 [myUploadedFile]

(마지막 줄에는 그룹 권한으로 rw-가 있습니다)

나도 시도했다

Subsystem sftp internal-sftp -u ug=rwx

그러나 이로 인해 sftp가 연결을 닫게 됩니다. 최소한 올바른 구성 파일을 업데이트하고 있음을 확인합니다.

답변1

umask값만 참고하세요.줄이다권한을 부여하고 절대 추가하지 마세요.

따라서 로컬 파일에 권한 0644(-rw-r--r--)가 있는 경우 umask는 그룹 쓰기 플래그를 추가하지 않습니다. umask는 "기타 쓰기"를 제거하므로 로컬 파일이 0666이면 원격 파일은 0664가 됩니다.

원격 파일에 그룹 쓰기가 있는지 확인하려면 이 -m 664플래그가 필요할 수 있습니다.

답변2

sshd 구성 파일에서 그룹에 "ForceCommand"를 설정해 보세요.

Match Group {GROUP_NAME}
   ForceCommand internal-sftp -u 0002 

새 설정을 적용하려면 sshd 프로세스를 다시 시작하세요.

답변3

SFTP 사용 패턴에 따라 클라이언트의 동작을 변경하는 것이 실행 가능한 접근 방식일 수 있습니다.

"배치"하려는 파일의 권한을 수정할 수 있는 경우(또는 이미 필요한 경우) -p 매개변수를 와 함께 사용할 수 있습니다. 이 매개변수는 put권한 및 파일 수정 시간을 복사합니다( scp와 함께 사용할 수도 있음). . 로컬 파일에 원하는 권한이 있다고 가정하면 다음이 작동합니다.

put -p <filename>

또는 파일을 받는 경우 lumask로컬 권한을 설정할 수 있습니다.

관련 정보