문제

SCP에 파일 권한을 설정하는 데 문제가 있습니까? 아니면 서버를 잘못 구성했습니까?

업데이트됨(2009년 3월 19일):실제로:문제 없습니다. 권한이 작동하는 방식을 오해했을 뿐입니다. 파일 내용이 변경되어도 권한은 변경되지 않습니다.

사용 사례:

편집하려는 서버에 "importantFile.txt"라는 파일이 있습니다.파일에는 "마스터" 소유자와 그룹이 있습니다.

ls -l importantFile.txt:
-rw-rw-r--  1 master master     7 Mar 18 08:11 importantFile.txt

나는 "슬레이브"라고 불리지만 운 좋게도 "마스터" 그룹에 속해 있으므로 원하는 대로 파일을 편집할 수 있습니다.그러나 나는 게으른 노예이고 서버의 파일을 편집하는 데 신경 쓸 수 없습니다. 로컬 컴퓨터에서 파일을 편집하고 서버에 SCP를 지정하는 것을 선호합니다.

echo "bored slave info" > importantFile.txt
scp importantFile.txt slave@theServerAddress:/pathToFile/importantFile.txt

이렇게 하면 서버에 있는 파일의 내용이 제대로 업로드되고 파일의 타임스탬프가 업데이트되지만 파일의 권한은 변경되지 않고 파일은 여전히 ​​"마스터"의 소유입니다."노예"가 나쁜 콘텐츠를 업로드하면 문제를 일으킨 사람이 "노예"인지 아무도 알 수 없고 "주인"이 유죄로 간주되기 때문에 이것이 문제입니다.

아마도 umask를 설정해야 할까요?그렇다면 어디서?.bash_profile을 성공하지 못하고 시도했지만 Google에서 umask에 대한 내용을 찾지 못했습니다. /etc/ssh/sshd_config.

도움이 되었습니까?

해결책

그것은 scp에 있어서 특별한 것이 아닙니다. 서버에 슬레이브로 로그온하고 즐겨 사용하는 텍스트 편집기를 사용하여 파일을 편집해 보십시오...동일한 동작이 발생하는 것을 발견하게 될 것입니다 ...파일에 쓴다고 해서 파일의 소유자가 되는 것은 아닙니다.


예:

루트로

#cd /tmp
#mkdir fubar
#chgrp vboxusers fubar
#cd fubar/
#touch testfile
#chgrp vboxusers testfile 
#chmod g+w . testfile
#ls -al
total 16
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     0 2009-03-19 10:30 testfile
#echo foo > testfile 
#ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     4 2009-03-19 10:30 testfile

사용자로(vboxusers 그룹에서)

>cd /tmp/fubar
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     4 2009-03-19 10:30 testfile
>echo bar >> testfile 
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     8 2009-03-19 10:31 testfile
>vim testfile
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:31 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:31 ..
-rw-rw-r--  1 root vboxusers    12 2009-03-19 10:31 testfile
>cat testfile 
foo
bar
baz

다른 팁

덮어쓰려면 파일을 삭제해야 합니다.그렇게 할 수 있는지 여부는 디렉토리의 권한과 소유권에 따라 다릅니다.이미 존재하는 파일의 소유권을 가로채는 것은 불가능합니다.당신이 가지고 있는 쓰기 권한은 파일의 내용에만 적용됩니다.

Emacs가 이를 처리하는 방법을 다음을 통해 구성할 수 있는 것 같습니다. backup-by-copying-when-mismatch 변수(Emacs 매뉴얼을 참조하거나 다음을 입력하십시오. C-h-v backup-by-copying-when-mismatch Emacs에서).

나는 실제로 버그 보고서 나는 그것이 Tramp의 버그라고 생각했기 때문에 이것에 대해 이야기했습니다.

파일이 작동하는 방식을 오해했습니다. 파일 내용을 수정해도 소유권이나 그룹이 변경되지 않습니다.

혼란스러운 이유는 무엇입니까? 이맥스 - 파일을 편집할 때마다 Emacs를 사용하고 있었고 Emacs는 소유자와 그룹을 현재 사용자로 변경합니다."filename"을 "filename~"으로 이동하고 "filename"이라는 새 파일을 생성하여 저장 시 백업 파일을 만들기 때문에 이 작업을 수행합니다. 새 파일이기 때문에 현재 사용자의 파일 권한을 갖습니다.VI 팬에게는 이것이 1 최대인 것 같아요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top