다른 사용자와 공유하는 파일 복사

2283 단어 cp리눅스

소개



한 파일을 덮어쓰기 복사할 때 에러가 표시되어 조금 빠져서 써 남깁니다.

발생한 문제



사용자 A와 사용자 B가 같은 서버의 공유 디렉토리에 같은 파일 이름의 파일을 덮어 쓰는 중 오류가 발생했습니다.

유저 A, 유저 B 모두 같은 그룹에 소속하고 있어, 파일, 디렉토리의 퍼미션은 777이 되고 있으므로, 권한 자체는 문제 없음.
※실제와는 약간 다릅니다만 설명을 간단하게 하기 위해서 재기록하고 있습니다.



원인



알고 버리면 간단한 이야기로, 일반 유저는 타 유저가 소유하고 있는 파일등에 대해서 덧쓰기할 때, 소유자의 정보를 재기입할 수 없는 것이 원인이었습니다.

이하, 사용자 A가 소유자의 파일에 대하여 사용자 B가 덮어쓰기 복사했을 때의 에러.

userB의 sharefile을/share에 복사하는 중 오류
[userB@Server ~]$ cp -p /home/userB/sharefile /share/sharefile
cp: `/share/sharefile' のタイムスタンプを保存中: 許可されていない操作です

타임 스탬프라고 쓰여 있었기 때문에, 변경 일시가 바꿀 수 없다고 생각했습니다만, 소유자, 그룹등의 정보도 타임 스탬프에 포함된다고 하는 것에 다가가기까지 시간을 취해 버렸습니다・・·
-p 옵션 없이 복사한 경우나, vi등으로 파일을 직접 편집한 경우는, 소유자, 그룹 정보는 복사되지 않기 때문에, 문제없이 성공합니다.

덧붙여서 나중에 조사해 보면, 에러는 표시됩니다만, 파일의 카피 자체는 행해지고 있는 것 같습니다.

WinSCP에서 복사


Windows 로 서버에 SCP할 때 등에 자주 사용되는 WinSCP 하지만, 디폴트에서는 -p 옵션이 유효하게 된 설정이 되어 있기 때문에, 「옵션」→「환경 설정」→「전송」 에서 '기본' 프리셋의 '편집'에서 '타임스탬프 저장'을 선택 해제하거나 '허용 오류 무시'를 체크하여 이번과 같은 경우에도 오류 메시지가 나타나지 않도록 됩니다.



결론



과거의 기억에서 같은 방법으로도 오류가 발생하지 않았을 것입니다 ... 그럼 에러 출력은 없이 복사되는 것 같습니다.

아래 Solaris Solaris 명령 Solaris 발췌.

-p
보유. cp 유틸리티는 source_file의 내용을 복제할 뿐만 아니라 ACL, 액세스 날짜 및 갱신 날짜 및 시간, 확장 속성, 확장 시스템 속성, 파일 모드, 소유자 ID 및 그룹 ID를 보유하려고 합니다.
cp가 액세스 날짜와 시간, 갱신 날짜, 확장 속성 또는 파일 모드를 유지할 수 없는 경우 cp는 이를 실패로 간주하지 않습니다.
cp가 소유자 ID와 그룹 ID를 유지할 수 없으면 복사는 실패하지 않지만 cp는 메시지를 표시하지 않고 대상 파일 모드에서 S_ISUID 및 S_ISGID 비트를 지 웁니다.

익숙한 명령에서도 매뉴얼을 제대로 읽고 동작은 제대로 기억합시다는 이야기였습니다.

좋은 웹페이지 즐겨찾기