vi에 로그인하여 변경 한 후 먼저 sudo를 잊어 버렸습니다.


12

vi 편집기를 사용하여 Ubuntu Linux 컴퓨터의 구성 파일을 길게 변경했습니다. 불행히도, 나는 먼저 sudo를 잊어 버렸으므로 이제 편집자에 있지만 권한이 없어서 변경 사항을 저장할 수 없습니다. 해당 터미널에서 사용자를 소급해서 소급 할 수 있습니까? 아니면 최선의 조치는 무엇입니까?


답변:


11

이 경우 파일을로 작성합니다 :w /tmp/tmpfile. 그런 다음 나가서 /tmp/tmpfilesudo 권한을 가진 이전 파일로 이동 합니다.


이것은 내가하는 일이지만, wfaulk의 대답을 좋아합니다 . .. 다음에 만 기억할 수 있다면 나는 이것을합니다! :)
quack quixote

파일을 옮기지 않고 복사 하기를 바랍니다 . 이동하면 파일의 모드 (권한)가 기본값 ( '666', "umask"의 역으로 ​​AND가 됨)으로 바뀌고 파일의 소유자가 UID로 바뀝니다 ( "루트"였습니까?). 하드 링크를 끊습니다. vi
Scott

몇 가지 문제 : (1) 파일이 기밀로되어 있고“umask”가 66이 아닌 22 인 경우이 절차는 파일 내용을 /tmp디렉토리를 모니터링하는 다른 사용자에게 노출시킵니다 . (2) 시스템에 악의적 인 사용자가있는 경우 사용자는 사용자 /tmp/tmpfile를 작성할 때 (부터 vi)와 사용자가 편집중인 시스템 구성 파일을 통해 복사 할 때 사용자를 대신 할 수 있습니다. 액세스 권한이있는 디렉토리에 임시 파일을 저장하는 것이 더 안전합니다.
Scott

40

에서 SO :

:w !sudo tee %

실제로이 방법을 사용하여 더 자주 수행합니다.

:%!sudo tee %

내가 아는 것처럼 조금 더 직관적이라고 생각 :%!하지만에 대한 내장 적 이해가 없습니다 :w !. 또한, 사이의 매우 중요한 공간 그리워 쉽게 w와를 !.


3
직관에 도움이된다면, vi명령은 여러 글자 일 수 있으므로 이론적으로“ wfoo”명령 이있을 수 있으므로“ ”파일에 쓰려면“ foo”라고 말해야합니다 :w foo. 즉, " :w" 뒤에 공백이 필요합니다 . " :w !"에 관한 한 – " :!"가 무엇인지 아십니까 ? " :!date"는 " date"명령을 실행합니다. 따라서 " :w !xyz"는 버퍼가 아니라 파일이 아닌 명령에 씁니다 .
Scott

현재의 기존 답변이 다소 긴 해결 방법 인 반면 즉시 해결책이므로 승인 된 답변으로 만들어야합니다. OP?
bschlueter

@Scott 설명 감사합니다! 티란 무엇입니까 %?
CodyBugstein

@CodyBugstein : 안녕하세요. (1) 6 살짜리 주석의 저자를 핑 (Ping)하면 사람들이 때때로 떠나고 다시는 돌아 오지 않기 때문에 종종 아무데도 도움이되지 않습니다. 그러나 나는 내 컴퓨터에 묶여있다. 아마 여기 영원히있을 거예요 (또는 아닐 수도 있습니다.) (2) 연구를 해 보셨습니까? “티”에 대한 정보를 쉽게 찾을 수 있어야합니다. ( % 더 어려울 수 있습니다.) (3) 좋아, 조금 도와 줄께.  tee여러 장소에 정보를 쓸 수있는 프로그램입니다. 예를 들어, date | tee cody현재 날짜와 시간을 cody … (계속)
Scott

(계속) ... 또한 터미널 화면에도 표시됩니다.  date | tee cody > bugstein현재 날짜와 시간을 파일 cody과에 파일에 씁니다 bugstein. — 이해 sudo하십니까? 다른 사용자 (일반적으로 root)의 권한으로 명령을 실행할 수 있습니다. 예를 들어에 ls /root액세스 할 수 없으므로 일반적으로 실패합니다  /root. 그러나 sudo ls /root작동합니다. — 유닉스가 작동하는 방식의 불행한 부작용 sudo ls /root > /root/cody은에 액세스 /root할 수 없어서 글을 쓸 수 없기 때문에 실패 한다는 것  /root/cody입니다. … (계속)
Scott

-2

다른 터미널을 열고 파일의 액세스 권한을 일시적으로 변경할 수 없습니까?


1
이것은 나쁜 생각입니다. 아마 실 거예요 지금까지 큰 보안 문제 만이 할 수 있고, 더 나은 임시 파일에 쓰기, 또는 같이 더 간단한 솔루션을 (거기는 :w !sudo tee % solutionwfaulk 게시
DBR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.