Ubuntu: 동일한 자격 증명으로 생성된 디렉터리에 파일을 복사할 수 없습니다.

Ubuntu: 동일한 자격 증명으로 생성된 디렉터리에 파일을 복사할 수 없습니다.

저는 Windows 7을 Ubuntu 12.04.2 LTS로 원격 전환하고 있습니다.

저는 Ubuntu(및 일반적으로 *nix)를 처음 사용하며 새로 생성된 디렉터리에 권한을 할당하는 방법을 이해해야 합니다.

Putty SSH 세션을 통해:

$bash
myaccount@mybox:/$ cd /etc/puppet
myaccount@mybox:/etc/puppet$ sudo mkdir device
myaccount@mybox:/etc/puppet/device$ 
myaccount@mybox:/etc/puppet/device$ ls -ld
drwxr-xr-x 2 root root 4096 Jul 2 17:57

그런 다음 WinSCP 세션(SCP 모드, myaccount@mybox로도 로그인됨)을 통해 파일을 /etc/puppet/device에 복사해 보았습니다.

하지만 이 작업은 팝업 창에 오류가 발생하여 실패합니다.

Error
Copying file 'myfile' failed.
scp: /etc/puppet/device/myfile: Permission denied

내 계정에 디렉터리를 생성할 수 있는 충분한 권한이 할당된 경우 해당 디렉터리에 파일을 복사할 수 있는 권한도 있어야 한다는 것이 논리적인 것 같습니다.

아니면 디렉터리 생성과 파일 이동이 다른 역할에 속합니까?

참고: 내 게시물을 선택하고 싶다면 댓글에 이유를 설명해주세요. 익명으로 클릭하는 것만으로는 이러한 포럼이 어떻게 작동하는지 이해하는 데 도움이 되지 않습니다. 나는 규칙, 완전한 세부 사항, 후속 의견 등을 따르고 있는 것 같습니다.

답변1

내가 뭔가를 간과하지 않았기를 바랍니다.

  • sudo디렉토리를 만들어 본 적이 있나요?
  • ls디렉토리가 루트 소유라고 명시적으로 명시하셨습니다 .
  • 사용자 "myaccount"로 폴더에 파일을 복사하려고 하면 거부됩니다.

이는 정상적인 동작입니다. 다음과 같은 옵션이 있습니다.

  • "기타" 쓰기 권한 부여(chmod o+w /etc/puppet/device => 매우 나쁜 생각)
  • 예를 들어 "adm-puppet"이라는 그룹을 만들고 해당 디렉토리에 파일을 생성할 수 있는 모든 사용자와 puppet 사용자를 추가합니다. 그런 다음 그룹 소유권을 해당 그룹으로 변경하십시오.
  • 이 디렉터리에 파일을 쓸 수 있는 사용자를 기존 Puppet 그룹에 추가합니다.
  • 확장 프로그램 사용전방십자인대에스

답변2

sudo를 사용하여 파일이나 디렉터리를 생성하면 해당 명령을 루트로 실행하게 되므로 당연히 파일은 루트가 소유하게 됩니다.

일반 사용자로서 파일/디렉토리를 생성할 수 없다면(팁: 디렉토리는 단지 특수 파일일 뿐입니다), 루트는 ( chown구문 )을 사용하여 chown user:group file일반 사용자에게 이를 "제공" 할 수 있습니다.

여러 사용자(모두는 아님)가 파일에 대한 쓰기 권한이 필요한 경우 그룹을 사용해야 합니다. 그룹이 필요하지 않다고 생각하면 일반적으로 기존 사용자 이름이 지정된 그룹(이 경우 루트 및 없음)을 사용할 수 있습니다. 잘못된 선택입니다. 따라서 사용자는 일반적으로 별도의 그룹도 갖게 됩니다.

여러 사용자가 포함된 그룹을 사용하는 경우 그룹에 디렉터리에 대한 쓰기 액세스 권한을 부여하도록 권한도 변경해야 합니다. 디렉토리에 대한 쓰기 액세스는 그 안에 파일을 생성하고 삭제할 수 있음을 의미합니다(실행은 탐색, 읽기는 내용 나열). 이 작업을 수행하는 데 사용합니다 chmod g+w dirname.

관련 정보