2012-11-14 2 views
0

는 :유닉스/SharpSSH - sshExec.RunCommand (chmod를 666 "@ ...) 파일의 권한을 변경하지 않는 나는 원격 컴퓨터에 파일을 업로드 할 수 SharpSSH을 사용하고

public override void WriteFile(string directoryName, string fileName, string localFilePath) { 
    sftp.Put(localFilePath, directoryName + "/" + fileName); 
} 

문제는 그입니다 파일의 권한은 rw-r -----입니다. 이것은받는 응용 프로그램이 파일을 처리 할 다른 폴더로 이동하는 것을 방지합니다. 데스크탑 (가상 컴퓨터)에 로컬로 설치된 다른 유닉스 컴퓨터에서이 파일을 테스트했지만 거기에 파일의 사용 권한이 rwxrwxrwx로 설정됩니다.
동일한 사용자를 사용하여 WinSCP로 파일을 전송할 때 파일 사용 권한이 rwxrwxrwx로 설정됩니다. 이러한 과도한 사용 권한을 제공하도록 WinSCP가 구성되어 있다는 것을 알았습니다. 같은 것을하기. 나는이 라인을 추가했다.

public override void WriteFile(string directoryName, string fileName, string localFilePath) { 
    sftp.Put(localFilePath, directoryName + "/" + fileName); 
    sshExec.RunCommand(@"chmod 666 " + directoryName + "/" + fileName); 
} 

그러나 파일의 권한은 변경되지 않습니다. 명령을 잘못 실행하고 있습니까?

+0

당신이 말할 때 '파일 및 프로세스 ING를 복용 : Sudo without password

또한 다른 RunCommand가 STDOUT을 참조하여 명령 의 출력을 얻을 수 과부하 사용 그것은 당신이 읽고, 변경하고 다시 쓰는 것을 의미합니까? –

+0

파일을 다른 폴더로 이동합니다. 다른 구성 요소가 파일을 읽고 그에 따라 작동합니다. 나는 명확하게하기 위해 나의 질문을 갱신 할 것이다. – Yoav

+0

나는 여기서 약간 단순한 것일 수도 있지만 단순한 사용 권한 문제 일 수는 없습니다. 두 번째 AP는 소유자가 아니기 때문에 파일을 삭제할 수 없습니까? ... 좋아 - 그게 질문을 구걸하고 ... –

답변

0

명령의 출력은 무엇입니까? chmod를 실행할 수있는 권한이 없습니까? "sudo chmod 666"시도

0

"sudo"를 우분투로 사용하는 경우 sudoers 파일을 편집하고 sudo 비밀번호없이 chmod가 작동하지 않으면 작업을 수행 할 수 없습니다.

확인이 :

string stErr = string.Empty; 
string stdOut = string.Empty; 
Result = Ssh.RunCommand("@"chmod 666 " + directoryName + "/" + fileName",ref stdOut, ref stErr);