`cp`는 파일/디렉토리에 쓸 수 없지만 `cat >` 및 `echo`는 잘 작동합니다.

`cp`는 파일/디렉토리에 쓸 수 없지만 `cat >` 및 `echo`는 잘 작동합니다.

RHEL 7.2 기반 시스템에서 파일을 smb 설치 위치에 복사해 보았습니다.

cd /target
cp /tmp/foo .

이 작업은 다음 오류 메시지와 함께 실패합니다.

cp: cannot create regular file ‘./foo’: Operation not permitted

0바이트 크기의 파일이 생성된 것을 볼 수 있습니다.

I cat또는 echo Thisisfoobar>foothis가 제대로 작동하고 파일에 내가 원하는 내용이 포함되어 있는 경우입니다. 하지만 더 이상한 점은 내가 할 때도 작동한다는 것입니다.

cd /target
echo Thisisfoobar>foo
cp /tmp/foo .

왜 이것이 작동하지 않는지 전혀 모르겠습니다. 나는 두 변형 strace( foo존재하지 않는 변형, foo존재하고 덮어쓴 변형)을 사용하여 이것을 실행하고 출력을 비교했지만 관련 차이점을 발견하지 못했습니다. 유일한 차이점은 아래와 같이 핸들과 파일 크기입니다.

stat("./foo", {st_mode=S_IFREG|0700, st_size=12, ...}) = 0

우리는 이 머신에서 selinux를 사용하지 않습니다. 위에서 언급한 명령을 실행하기 전에 a(실제로 CyberArk에 의해 부과된 제한 사항인 루트와 같은 권한을 제공함)를 실행해야 했으며 sudo adm이 adm 셸에서 smb에 대해 간략하게 설명했습니다 su tu(또는 su - tu차이 없음). : tusmb가 탑재된 장치에 쓰기 권한이 있는 그룹의 구성원이고, tuActive Directory의 구성원이어야 합니다.

ls -laZ /tmp/foo다음 정보를 생성합니다.

-rwx------ tu user ?                                foo

dmesg명령을 실행할 때 출력을 확인했지만 추가된 항목이 없습니다 .

관련 정보