Dropbox에서 소유권 및 권한을 유지하는 방법은 무엇입니까?


9

Dropbox를 사용하는 동안 특정 파일을 동기화하려고하는 두 대의 컴퓨터, Linux 및 Linux를 실행하는 PC가 있습니다.

내가 동기화하고있는 파일 중 하나는 다른 사용자 (다른 컴퓨터의 다른 드롭 박스 사용자를 참조하지 않고 같은 컴퓨터의 다른 UID)가 쓸 수 있어야합니다. 보다 구체적으로,이 다른 UID는 실제로는 데몬입니다. 따라서 다른 사용자가 파일을 소유하거나 "그룹"및 / 또는 "기타"에 대해 쓰기 권한이 필요합니다. 처음에는 두 시스템 에서이 방법을 설정했습니다. 또한 파일을 포함하는 디렉토리는 파일에 대한 쓰기 액세스 권한이 필요한 사용자가 이미 소유하고 있습니다 (chmod 777).

그러나 파일이 한 상자에서 다른 상자로 동기화 될 때마다 Dropbox는 두 가지 권한 세트를 완전히 무시하고 새로 업데이트 된 파일의 권한을 0644 권한으로 나에게 소유하도록 변경합니다 (rw는 나를 위해, 다른 사람은 r ). 파일이 본인이 소유하지 않은 경우 소유권을 본인에게 다시 변경합니다. 결과적으로 다른 사용자는 파일을 수동으로 입력하고 다시 수정하기 전까지는 더 이상 쓰기 권한이 없습니다.

내가 시도하지 않은 추가 사항 :

  1. 두 시스템의 사용자 계정 ( "다른 사용자")이 동일한 UID를 갖도록하십시오. 내 기본 계정이 두 컴퓨터에서 동일한 UID를 가지지 않기 때문에 이것이 왜 필요한지 확실하지 않습니다.

  2. chmod u+s <dir>그리고 chmod g+s <dir>해당 파일이 들어있는 디렉토리는 어디에 있습니까?

  3. 파일의 소유권을 다른 사용자로 변경하여 Dropbox 디렉토리 외부에 배치하고 Dropbox 디렉토리에 파일에 대한 심볼릭 링크를 만듭니다. Dropbox는 실제로 심볼릭 링크를 삭제하고 원본 파일 (Dropbox 디렉토리 외부)을 변경하지 않고 심볼릭 링크가 있던 파일의 새 복사본을 만듭니다!

내 권한 및 / 또는 소유권이 유지되도록 설정하는 방법은 무엇입니까?

답변:


5

좋아, 여기 내가 찾은 해결책이 있습니다. 이것이 향후 버전의 Dropbox에서 작동하는지 여부는 확실하지 않습니다. 문제를 더 해결하기 위해 Dropbox로 서비스 요청을 열었습니다.

전체적으로이 솔루션은 다음 두 가지를 결합한 것입니다.

  1. 새로 만든 파일의 권한이 0660이되도록 Dropbox 프로세스의 umask를 설정합니다. 이는 사용자 읽기 / 쓰기, 그룹 읽기 / 쓰기, 기타 없음입니다.
  2. 새로 작성된 파일의 그룹을 해당 파일에 대한 쓰기 액세스 권한이 필요한 그룹으로 설정합니다.

이 솔루션은 단일 파일이 아니라 Dropbox 폴더의 모든 파일에 적용됩니다. 제 경우에는 허용됩니다.

리눅스에서는 /etc/init.d/dropbox시작 스크립트를 수정하여 데몬으로 dropbox를 호출하는 줄이 읽습니다.

HOME="$HOMEDIR" start-stop-daemon --umask 0006 -b -o -c $dbuser:$dbgrp -S -u $dbuser -x $HOMEDIR/$DAEMON

--umask 0006성취를 추가하면 umask 설정 이 완료 :$dbgrp되고 -c 옵션 의 일부는 디먼이 속하는 그룹을 설정합니다.

Mac 측에서는 다음 명령을 실행합니다.

ps aux | grep -i dropbox

이것에서 Dropbox를 시작한 명령 행 옵션을 볼 수 있으며 이것에서 나중에 사용되는 $ mydropboxid를 추출합니다. 그런 다음 Dropbox를 종료하고 명령 프롬프트를 열고 다음 명령을 입력하십시오.

umask 0006
/Applications/Dropbox.app/Contents/MacOS/Dropbox -psn_0_$mydropboxid &
exit

기계가 재부팅 될 때마다 다시 실행할 필요가 없도록 위의 명령을 어느 시점에서 자동화 할 계획입니다.

파일의 그룹이 쓰기 액세스 권한을 갖도록 새로 작성된 파일의 마스크 설정을 처리합니다. 그러나 그룹을 올바르게 설정하려면 Dropbox 캐시 디렉토리를 설정해야합니다. 지금까지 한 번만 수행하면됩니다.

sudo chgrp -R $dbgrp ~/Dropbox/.dropbox.cache
sudo chmod -R g+s ~/Dropbox/.dropbox.cache

~ / Dropbox / .dropbox.cache 디렉토리에 모든 새 파일이 먼저 생성되는 것으로 보이므로 위의 명령은 해당 새 파일에 Dropbox가 생성 한 새 파일이 올바른 그룹을 갖는 적절한 소유권과 권한을 부여합니다.


흥미 롭군 이 줄과 수정 된 파일의 일반적인 기능에 대해 좀 더 설명해 주시겠습니까?
nixda

start-stop-daemon은 데몬이 실행되는 다양한 설정을 제어 할 수있는 Linux 유틸리티입니다. 대부분의 매개 변수는 쉘 변수로 전달됩니다. 주요 수정 사항은 "--umask 0006"을 추가하여 사용자 및 그룹에 대한 R / W 권한을 남겨두고 다른 사용자에게는 R / W 권한을 제거하고 -c 매개 변수에 그룹 매개 변수 ( ": $ dbgrp")를 추가하는 것입니다. 데몬 프로세스가 실행되는 UID / GID를 설정합니다). Mac 명령도 비슷하지만 비슷한 유틸리티를 찾지 못했기 때문에 Dropbox를 실행하는 쉘에서 이러한 설정을 설정해야합니다.
Michael

이것은 현재 보관 용 버전에도 적용됩니까? 내 dropboxd 스크립트는 PAR=$(dirname $(readlink -f $0)) OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH LD_LIBRARY_PATH=$PAR${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH exec $PAR/dropbox $@./.dropbox-dist/에 있으며 제공된 python 스크립트를 통해 관리됩니다
자전거

@bicycle이 솔루션을 제공 한 이후로 내 dropbox 클라이언트를 업데이트하라는 메시지가 표시되지 않았습니다.
Michael

@Michael, Dropbox가 서비스 요청에 응답 한 적이 있습니까?
bbozo

0

해당 파일을 자체 폴더에 넣고 해당 폴더를 다른 사용자와 공유하십시오. 이런 식으로 그들은 당신처럼 최신 버전을 편집하고 있습니다. 동시에 작업하지 않도록주의하십시오.


1
문제의 파일을 포함하는 폴더가 다른 사용자가 이미 소유하고 있다는 사실을 반영하여 원래 질문을 업데이트합니다. Dropbox는 여전히 현재 소유권 / 권한을 무시하고 파일이 시스템에 동기화 될 때마다 재설정합니다.
Michael

0

두 컴퓨터간에 파일을 복사하면 복사를 수행하는 소프트웨어가 해당 복사에 대한 사용 권한을 결정합니다. 당신이하고있는 일에는 상당히 세분화 된 권한 매핑이 필요합니다. Dropbox 권한 매핑 기능은 두 시스템 모두 동일한 OS를 실행하는 경우 권한 보존으로 제한됩니다 . 두 개의 다른 OS간에 복사 할 경우 특정 결과가 보장되지 않습니다.

Dropbox를 원하는 방식으로 사용하는 방법을 알아낼 수 있다고해도 그 방법에 의존하지 않는 것이 좋습니다. 문서화되지 않은 소프트웨어 문제는 예고없이 사라질 수 있습니다. 사용 사례를 염두에두고 설계된 파일 전송 도구를 살펴 봐야합니다. 첫 번째 선택은 rsync입니다 . 이것은 Linux 배포판의 표준이며 특히 Cygwin 이있는 경우 Windows에 쉽게 설치할 수 있습니다 . Cygwin은 일반적으로 Windows와 Linux를 모두 사용해야하는 사람들에게 유용합니다!

물론 rsync에는 직접 연결이 필요합니다. Dropbox에서 제공하는 것과 같은 중앙 서버는 없습니다. 이를 처리하는 방법은 네트워크 설정의 세부 사항에 따라 다릅니다.


네, 당신이 기발한 말에 동의합니다. 내 생각에 이것은 종종 소프트웨어 업그레이드를 중단해야 할 좋은 이유입니다. 만약 당신이 원하는 것을하면 왜 최신 버전이 그것을 깨뜨릴 위험이 있습니다!
Michael

rsync는 양방향이 아니며 파일이 변경 될 때마다 자동으로 업데이트되지 않습니다.
Michael

@Michael 항상 소프트웨어 업그레이드를 선택할 수있는 것은 아닙니다. 그것의 (드롭 박스 같은) 클라우드를 기반으로 할 때 당신은 결코 선택의 여지가 없다. 그리고 양방향 또는 자동 복사가 왜 당신이하려는 일에 필수적인지 알기가 어렵습니다.
Isaac Rabinovitch

서비스가 이전 클라이언트와 하위 호환성을 유지하는 한 선택할 수 있습니다. Dropbox가 모든 사람을 즉시 업그레이드하도록 강요하지 않는 한, 이전 클라이언트를 손상시킬 프로토콜을 낮은 수준으로 변경하는 것과 같은 일을 할 수 있을지 의심됩니다. 그들이 할 수있는 유일한 방법은 어떤 종류의 전환을 통해서입니다.
Michael

내가하려는 일과 관련하여 두 개의 다른 컴퓨터에서 파일 세트를 유지 관리하고 주어진 시간에 파일 중 하나를 수정 한 다음 잠시 후 다른 컴퓨터로 건너 뛰고 픽업하려고합니다. rsync를 시작하는 것과 같이 수동으로 아무것도 할 필요없이 중단했습니다. 이것은 주로 원격으로 (예 : 웹 인터페이스를 통해) 수정을 수행 할 수 있고 방화벽 및 대기 시간과 같은 문제로 인해 중앙 집중식 단일 데이터 복사본을 유지 관리하는 것이 불편하기 때문입니다.
Michael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.