ftp 파일에 대한 권한이 umask와 일치하지 않는 것 같습니다.

ftp 파일에 대한 권한이 umask와 일치하지 않는 것 같습니다.

나는 ftp가 사용자의 권리를 존중한다는 몇몇 게시물을 읽었습니다.umask. 나는 그것이 사실이라고 생각하지 않습니다. SystemX에서 SystemX로 파일을 FTP로 전송할 때 내 서버 X에서 발생하는 현상입니다. SystemX는 Solaris 시스템입니다. 내 umask는 002입니다. 기본 umask는 다음과 같습니다./etc/profile또한 002. 아래는 결과입니다. 두 가지 질문은 ftp 파일이 내 umask를 존중하지 않는 이유와 실제로 설정을 어디서 가져오는가입니다.

**SystemX:/home<username>: umask
02
SystemX:/home<username>: grep umask /etc/profile
umask 02
SystemX:/home<username>: touch junk
SystemX:/home<username>: ls -l junk
-rw-rw-r--   1 <username>  infadev        0 Jan  4 16:24 junk
SystemX:/home<username>: ftp SystemX
Connected to SystemX.
220 SystemX FTP server ready.
Name (SystemX:<username>): <username>
331 Password required for <username>.
Password:
230 User <username> logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put junk junk.out
200 PORT command successful.
150 Opening BINARY mode data connection for junk.out.
226 Transfer complete.
ftp> bye
221-You have transferred 0 bytes in 1 files.
221-Total traffic for this session was 383 bytes in 1 transfers.
221-Thank you for using the FTP service on SystemX.
221 Goodbye.
SystemX:/home<username>: ls -l junk*
-rw-rw-r--   1 <username>  infadev        0 Jan  4 16:24 junk
-rw-r--r--   1 <username>  infadev        0 Jan  4 16:24 junk.out

답변1

당신이 사용할 때놓다존재하다ftp, 그것은섬기는 사람파일 업로드 권한을 결정합니다. 이것FTP 매뉴얼 페이지junk.out이것 이라고 말해줘외딴문서:

put local-file [원격 파일]

원격 컴퓨터에 로컬 파일을 저장합니다. 만약에원격 파일지정하지 않으면 임의 처리 후 로컬 파일 이름이 사용됩니다.긍정과 부정또는지도원격 파일 이름 지정을 위한 설정입니다. 파일 전송에서는 표시 유형, 파일 구조 및 전송 모드에 대한 현재 설정을 사용합니다.

(일부 타사 응용 프로그램이 아닌) Solaris의 FTP 서버를 사용한다고 가정하면 이 정보는 다음 위치에 있습니다.FTP 액세스(4), 설명하는/etc/ftpd/ftpaccess

이 설정은 업로드된 파일과 관련이 있습니다(이 설정은 업로드된 파일과 별개입니다).고객권한):

defumask 마스크 수업

설정umask원격 사용자가 지정된 구성원인 경우 FTP 서버에서 생성된 파일에 적용됩니다.수업. 만약에수업지정하지 않은 경우 사용우마스크지정되지 않은 클래스의 기본값으로 사용됩니다. 생성된 파일의 모드는 다음을 사용하여 지정할 수 있습니다.upload지시하다.

upload[절대 |class=수업 이름]...[-] 루트 디렉토리 디글롭예|아니요소유자 그룹 모델 [카탈로그 | [d_모드]

디렉토리를 정의하다디글롭업로드를 허용하거나 거부합니다. 업로드가 허용되면 새로 생성된 모든 파일은 소유자와 그룹의 소유가 되며 모드에 따라 권한이 설정됩니다. 덮어쓴 기존 파일은 원래 소유권과 권한을 유지합니다. 디렉터리는 가장 잘 일치하는 방식으로 일치됩니다. 예를 들어:

upload /var/ftp * no
upload /var/ftp /incoming yes ftp daemon 0666
upload /var/ftp /incoming/gifs yes jlc guest 0600 nodirs

/incoming및 에만 업로드할 수 있습니다 /incoming/gifs. 업로드된 파일은 /incomingftp/daemon에 속하며 다음과 같은 권한을 가집니다.0666 화. 업로드된 파일은 /incoming/gifsjlc/guest의 소유이며 다음과 같은 권한을 가집니다.0600. 선택 과목dirs그리고nodirs다음 명령을 사용하여 새 하위 디렉터리 생성을 허용하거나 허용하지 않도록 키워드를 지정할 수 있습니다.mkdir주문하다. 만약에upload명령을 사용하면 기본적으로 디렉터리 생성이 허용됩니다. 기본적으로 끄려면 사용자, 그룹, 모드를 지정한 후 다음을 지정해야 합니다.nodirs키워드를 첫 번째 줄로 사용합니다. 여기서upload이 파일에서는 명령이 사용됩니다. 디렉터리가 허용되는 경우 선택사항d_모드새로 생성된 디렉터리의 권한을 결정합니다. 만약에d_모드생략하면 스키마에서 권한이 유추됩니다. 권한은 다음과 같습니다.0777 화if 패턴도 생략됩니다. 이것upload키워드는 다음과 같이 홈 디렉토리에만 적용됩니다.루트 디렉토리.루트 디렉토리모든 홈 디렉터리와 일치하도록 *로 지정할 수 있습니다. 소유자 또는 그룹은 다음과 같이 지정할 수 있습니다.*, 이 경우 업로드된 파일이나 디렉터리는 해당 파일이나 디렉터리가 생성된 디렉터리의 소유권으로 생성됩니다. 선택적 첫 번째 인수는 다음을 선택합니다.루트 디렉토리이름은 현재 chroot 환경에 대해 절대적이거나 상대적인 것으로 해석됩니다. 기본값은 설명입니다.루트 디렉토리이름은 절대적인 이름입니다. 원하는 수만큼 지정할 수 있습니다.class=수업 이름한계. 지정하면 이upload조항은 현재 사용자가 클래스 중 하나의 멤버인 경우에만 적용됩니다.

일치하는 항목 없이upload즉, 실제 사용자와 게스트 사용자는 파일을 업로드하고 디렉터리를 만들 수 있지만 익명 사용자는 그럴 수 없습니다. 파일 업로드 모드는 다음과 같습니다.0666 화. 생성된 디렉터리의 경우 패턴은 다음과 같습니다.0777 화. 두 모드 모두 현재에 의해 수정되었습니다.우마스크환경.

좀 장문이긴 하지만 기본적으로는 다음과 같습니다.

  • 업로드된 파일에 대한 기본 권한은 보이는 것보다 더 허용적입니다.
  • defumask관리자가 이러한 권한을 전체적으로 줄일 수 있도록 허용합니다.
  • upload관리자가 세부적인 조정을 할 수 있도록 허용합니다.

실제로 대부분의 관리자는 아마도defumask.

파일 업로드 권한은 클라이언트 umask외부 셸의 설정 에 따라 달라지지 않습니다 ftp. Solaris ftpaccess매뉴얼 페이지에는 다음과 같은 내용이 나와 있습니다(관련 내용 참조).권한 기능) 클라이언트는 umask를 지정할 수 있지만고객명령으로 나열되지 않습니다.

문서화된 설정에도 불구하고 일부 관리자는 이상한 점을 발견합니다.

관련 정보