
프린터 가게를 운영하는 고객이 있습니다. 나는 클라이언트가 인쇄하고 싶은 큰 파일을 그에게 드롭할 수 있는 FTP 서버를 구성했습니다.
여러 FTP 사용자를 만들었습니다. 그는 일부 프리미엄 고객과 일부 일반 고객을 보유하고 있습니다. 일반 클라이언트는 FTP 사용자를 사용하라는 지시를 받습니다.클라이언트. 소유자에게는 다음 권한을 가진 클라이언트라는 폴더가 있습니다.
printshopowner# ls -la
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 .
drwx-wx-wx 9 printshopowner clients 4096 Jan 19 10:24 clients
drwxrwx--- 2 premiumuser printshopowner 4096 Jan 19 08:13 premiumuser
잘 작동합니다. 클라이언트는 다른 클라이언트의 파일을 보지 않고도 파일을 업로드할 수 있습니다. 문제는 클라이언트가 폴더를 업로드할 때입니다. FTP 사용자인쇄소 주인 이 폴더는 삭제할 수 없습니다.
[printshopowner/clients]# ls -la
drwx-wx-wx 9 printshopowner clientes 4096 Jan 19 10:24 .
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 ..
drwxr-xr-x 3 clients clients 4096 Dec 3 11:57 folderA
원하는 기능을 얻으려면 FTP 보관용 계정을 어떻게 구성해야 할까요?
답변1
vsftpd.conf에서 local_umask를 설정해 볼 수 있습니다.
local_umask = 0002
또한 file_open_mode를 살펴보는 것도 고려해 보세요. 이는 이 값 위에 umask가 적용되어 업로드된 파일이 생성되는 권한을 제어합니다.
답변2
파일/디렉터리 X를 삭제(또는 적절하게 "링크 해제"라고 표현)하려면 사용자는 X에 대한 소유권이나 X에 대한 쓰기 권한이 필요하지 않지만 X에 대한 쓰기 권한은 있어야 합니다.X의 부모예배 규칙서.
귀하의 경우 인쇄소 소유자는 폴더A를 삭제할 수 있지만(rmdir) 폴더A가 비어 있는 경우에만 가능합니다. 사용자 인쇄소 소유자는 폴더A 내부의 어떤 것도 삭제할 수 없습니다(폴더A에는 쓰기 권한이 없습니다). 클라이언트의 umask를 002로 변경하면 그는 폴더A를 "drwxrwxr-x"로 만들고 printshopowner는 이를 삭제할 수 있습니다(printshopowner는 printshopowner와 클라이언트 그룹 모두에 할당되어 있다고 가정합니다). FTP 서버에서 umask를 변경하는 방법을 모릅니다.