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
로컬 권한을 설정할 수 있습니다.