서버의 공유 디렉터리에 대한 권한 문제

서버의 공유 디렉터리에 대한 권한 문제

설정은 Debian Squeeze를 실행하는 VPS가 있고 파일을 공유할 수 있는 공유 디렉터리를 설정했다는 것입니다. 지금까지 나는 이 가이드를 따랐습니다.

http://www.cyberciti.biz/faq/linux-setup-shared-directory/

또한 umask를 002로 올바르게 설정했기 때문에(해당 가이드의 설명 참조) 이제 서버에서 직접 파일과 디렉터리를 생성할 수 있으며 모두 이에 대한 읽기/쓰기 액세스 권한을 갖습니다.

유일한 문제는 많은 파일이 로컬 컴퓨터(둘 다 Ubuntu 10.10 실행)에서 생성된 다음 서버에 덤프된다는 것입니다. 이로 인해 파일/디렉토리 작성자만 쓰기 권한을 갖고 이 폴더를 공유하도록 설정한 그룹의 다른 구성원만 읽기 권한을 가지게 됩니다.

다음으로 생각한 것은 로컬 컴퓨터의 기본 umask를 변경하는 것이었지만 그렇게 하는 것은 다소 극단적인 것처럼 보이며 보안 위험이 있는지는 모르겠습니다.

내가 달성하려는 목표를 달성하기 위한 더 나은 솔루션이 있는지, 아니면 이것이 실제로 가야 할 길인지 누군가 말해 줄 수 있습니까?

미리 감사드립니다

답변1

다른 접근 방식을 사용하고 다음을 통해 파일을 공유하겠습니다.액세스 제어 목록디렉토리에.

먼저 디렉토리가 있는 파일 시스템에서 액세스 제어 목록이 활성화되어 있는지 확인하십시오(네 번째 열에 /etc/fstab해당 항목이 포함되어 있는지 확인하십시오). acl또한 acl 유틸리티가 설치되어 있는지 확인하십시오(Debian에서는 이 acl패키지를 설치하십시오). 그런 다음 두 사용자 모두에게 디렉터리에 대한 상속 가능한 쓰기 권한을 부여합니다.

setfacl -m user:other_user:rwx /path/to/directory
setfacl -d -m user:other_user:rwx /path/to/directory

사용자가 세 명 이상인 경우 각 사용자에 대해 이 명령을 반복하거나(ACL은 디렉터리를 생성한 사용자에 대해 암시적입니다) 사용자를 그룹에 넣은 다음(이미 수행한 것처럼) 에 -m group:group_name:rwx사용된 항목을 추가합니다 setfacl.

답변2

죄송합니다. 리뷰가 너무 두꺼워졌습니다. SFTP 서버는 루트에 의해 실행되며 루트의 umask를 얻을 수 있습니다. /etc/ssh/sshd_config파일을 편집하고 행을 변경하면 이 문제를 해결할 수 있습니다.

Subsystem sftp /usr/lib/openssh/sftp-server

도착하다

Subsystem sftp /bin/sh -c `umask 0002; /usr/libexec/openssh/sftp-server`

답변3

Ian의 답변(작동해야 함)(그러나 둥근 따옴표에 주의하십시오. 아래 경고 참조) 외에도 상단에서 다음을 /etc/init.d/ssh찾을 수 있습니다.

### BEGIN INIT INFO
# Provides:     sshd
# Required-Start:   $remote_fs $syslog
# Required-Stop:    $remote_fs $syslog
# Default-Start:    2 3 4 5
# Default-Stop:     
# Short-Description:    OpenBSD Secure Shell server
### END INIT INFO

...

umask 022

여기서 값을 변경할 수 있습니다.

경고하다:

많은 S/FTP 클라이언트는 새로 업로드된 파일에 대한 권한을 로컬 시스템의 권한과 일치하도록 설정하려고 시도하므로 이러한 일이 발생하는지 확인하십시오. 그렇다면 일반적으로 업로드에 사용되는 클라이언트 설정에서 이 옵션을 비활성화할 수 있습니다.

편집하다:

또 다른 제안으로, 이와 같은 설정을 만들 때 항상 그룹 소유권의 고정된 부분을 활용하여(예: 모든 디렉터리 권한을 2775로 설정) 새로 생성된 파일과 디렉터리가 올바른 그룹 소유권을 상속하도록 합니다.

관련 정보