gedit을 sudo와 함께 사용할 때 어떤 특별한 나쁜 일이 발생합니까?


10

나는 "때때로"루트가 디렉토리 에서 무언가를 소유 할 수 있다고 설명하는 이 답변을 읽었다 /home/$USER.

누구나 그것을 증명하는 방법을 예를 들어 줄 수 있습니까? 내가 실제로 일을 할 때 정말 나쁜 일이 생길 때 테스트 사례를 줘

sudo gedit /etc/rc.local

파일을 편집하고 저장하십시오.

OP를 돕고 자하는 다수의 downvotes가 있었고 sudo로 gedit를 실행하는 것은 범죄라고 말하면서 홍수에 시달렸습니다.

누구나 실제 사례를 제시 할 수 있습니까?

나는 왜이 질문이 중복되지 않는지 분명히 설명했다. 연결된 질문에 대한 답은 없습니다.

그리고 널리 사용되는 이유가 무엇인지 sudo gedit, 그렇지 않은지 설명하는 것이 중요합니다 .


2
항상 sudo와 함께 사용했는데 문제가 없었습니다. 좋은 질문.
Dario Salvati

1
@Wilf, nano는 ~ / .nano_history를 쓰는 것을 좋아합니다. sudo로 파일을 실행하면 루트가 파일을 소유하게되므로 sudo없이 nano를 실행하면 파일에 액세스 할 수 없다고 불평합니다. 간단하게 sudo chown수정합니다.
psusi

1
rc.local이 실행되는 한, 그것은 실행 수준 스크립트이므로 루트가 소유해야하므로 sudo는 영향을 미치지 않습니다. ~ / .bashrc로 사용해보십시오. 루트가 소유하고 있고 기본 설정으로 되돌려 야한다면 쉘이 해당 파일을 허용하지 않는다고 생각합니다. 그러나 그것은 단지 제안 일뿐입니다. 나는 내일 돌아올 것이다,이 질문이 어떻게되는지보기
Sergiy Kolodyazhnyy

1
대부분의 편집자들에게는 SAVE를 누르는 것이 아닙니다. mMost editros는 또한 어딘가에 설정을 저장하므로 설정을 수정하면 업데이트됩니다.
Wilf

2
가치있는 것을 위해, 나는 그것을 -H볼 때 사용할 수 있도록 제자리에서 편집 합니다.
muru

답변:


11

까지는 sudo gedit, 늦어도, 특히 늦게까지 나쁜 연습, 나쁜 연습은 없습니다. 제안하기가 얼마나 더 어려울 sudo -H gedit까요?

-H,--set-home 보안 정책이 HOME 환경 변수를 대상 사용자의 비밀번호 데이터베이스 항목으로 지정된 홈 디렉토리로 설정하도록 요청하십시오. 정책에 따라 이것이 기본 동작 일 수 있습니다.

무엇을 않는 일이?

홈 폴더에 루트 소유 파일이 몇 개 있습니다. ( recently-used.xbel) 중 하나 가 사용자 소유권으로 돌아갑니다. 파일을 삭제하고 다시 만들 때 발생할 수 있습니다. sudo gedit변경된 내용을 보려면 실행 한 find ~ -user root -group root후 반환 된 내용을 확인하십시오. 기본적으로 이것은 아무것도 아닙니다.

이 명령을 사용하면 루트가 소유 한 몇 개의 파일이 표시 될 수 있습니다. 하나는 될 새로운 .file, .gvfs그리고 조만간 루트 소유 ~/.cache/dconf및 전술 recently-used.xbel.

따라서 '하늘이 무너지는 것'은 없지만 여전히. 이제 계속 사용하면 다른 문제가 발생하지만 여기에 보이지 않는 것을 주장하지는 않는다는보고가있었습니다.

또한 13.10부터 a sudo gedit는 root의 gedit 설정 대신 gedit 설정을 사용합니다. 다시 한 번 나쁜 습관을 유지하는 이유는 무엇입니까?


1
때때로 나는 또한 쉽고 편리하게 gedit를 대체 할 수 있기 때문에 사용자에게 나노 사용법을 보여줄 기회를 얻습니다. gedit가 나노보다 나은 경우도 있지만 사용법을 아는 사람들도 있습니다. 또한 sudo gedit로 인해 sudo nautilus가 더 나빠질 수 있습니다. (여기서 pkexec를 사용하도록 설정 한 gedit가 있지만이 토론 범위를 벗어난 것
doug

@wjandrea, 좋아, 편집 됨
doug

12

아마도 환상 일지 모르지만 같은 말을하는 많은 사람들이 있습니다.

테스트 해보자.

2 개의 새로운 가상 상자. 우분투 14.04. 그들에게 파이어 폭스를 실행하지 마십시오. 명령을 실행하면 sudo firefox어떻게됩니까?

tim@Hairy14CVB:~$ sudo firefox    
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

...

shutdownObserver@XPIProvider.jsm:2192:13

이것은 두 가상 상자에서 동일하거나 적어도 매우 유사합니다. 파이어 폭스가 실행되는 동안 YouTube 확장 프로그램을 설치했습니다. 그런 다음 파이어 폭스를 닫고 출력을 확인했습니다.

tim@Hairy14CVB:~$ ls -la .ICEauthority 
-rw------- 1 tim tim 1336 Jun  4 21:31 .ICEauthority

글쎄, .ICEauthority괜찮아! 하나...

tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x  3 root root 4096 Jun  1 20:49 ..
drwx------  3 root root 4096 Jun  5 22:41 .dbus
drwx------  4 root root 4096 Jun  5 22:41 .mozilla

내 홈 폴더 ( /home/tim/)의 3 가지 항목은 루트 ( .., .dbus.mozilla) 가 소유합니다 . 이것은 두 가상 상자에서 동일하거나 적어도 매우 유사합니다.

따라서이 문제가 중요합니다. 확실하지 않았으므로 다음과 같이 파이어 폭스를 실행했습니다.

tim@Hairy14CVB:~$ firefox

(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.

그리고이 추악한 오류 :

여기에 이미지 설명을 입력하십시오

전체 터미널 출력 (firefox babble 포함)에 대해서는 herehere 이 두 개의 pastebin을 참조 하십시오 .

그런데 여전히 루트로 파이어 폭스를 실행할 수 있습니다. 그러나 이제 더 많은 파일이 변경되었습니다.

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..
drwx------  3 root root  4096 Jun  5 22:55 .adobe
drwx------  3 root root  4096 Jun  5 22:40 .dbus
drwx------  3 root root  4096 Jun  5 22:55 .macromedia
drwx------  4 root root  4096 Jun  5 22:40 .mozilla

imgur.com에 이미지를 업로드했기 때문입니까? 확실하지 않다.

이 문제를 어떻게 해결 했습니까? chown. 나는 그것을 이해하지 못하지만 인터넷 은 그렇게 말했다. 그리고 그것은 가상 박스이므로 yolo.

sudo chown -R tim:tim /home/tim/

그리고 그것은 그것을 고쳤다. 이제 출력은 ..파일입니다.

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..

그리고 그것은 실제 컴퓨터에서도 동일합니다. 아, 그리고 내 쿠분투 가상 박스에서 :

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  3 root root  4096 May 16 14:10 ..

나는 심지어 sudo 명령을 실행하지도 않았습니다. 따라서 모든 것이 잘됩니다. sudoGUI 응용 프로그램에서 실행하지 마십시오 .

최종 테스트 : -H-i플래그로 실행하십시오 .

sudo -H firefox

sudo -i firefox

그리고 좋은 소식! 여전히 유일한 루트 "사물"은 ..입니다. 그리고 나는 firefox뿌리없이 달릴 수 있습니다 .


OP는 Gedit에 대해 이야기하기를 원합니다.

나는 달렸다

sudo gedit

그런 다음 임의의 플러그인을 설치했습니다. 이것은 출력이었습니다.

tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..

소유권을 볼 수도 없으므로 .gvfs이렇게했습니다.

tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..
dr-x------  2 root root      0 Jun  6 10:05 .gvfs

따라서 running sudo gedit은 내 홈 디렉토리의 파일을 root로 변경합니다.

여전히 gedit을 열 수 있지만 이번에는 쓰레기가 나옵니다.

(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.

그리고 ~.local/share/recently-used.xbel변경된 다른 파일 ( ) 이 있음을 나타냅니다 . 나는 이것이 최근에 사용한 파일 목록이라고 생각하고 (운이 추측) 더 이상 최근에 사용한 파일 목록이 더 이상 없습니다.

라는 파일이 있어야합니다 output2.txt.save2. 내 대명사는


1
당신은 질문에 대한 답을 제외한 모든 것을 썼습니다. gedit로 테스트 케이스를 제공하십시오. "답변 아님"으로 표시해야합니까? 또는 "매우 좋지 않은 품질"(긴하지만)?)))
Pilot6

5
@ Pilot6-질문에서 Can anyone give an example how to prove it ..... Can anyone give a real example?-이것은 과거의 것들과 연결되어 있으며 파이어 폭스에서 루트로 발생할 수있는 일의 예를 제공합니다- '이상하게 심술'다 '를 찾을 수 없으므로 의견을'건설적이지 않습니다 '라고 표시해야합니까? cmon :)
Wilf

1
오 사용하지 마십시오 ls -la|grep root하지만 중 find . -uid 0또는find . -user root
동지

1
@ Pilot6 좋습니다. gedit에 관한 내용을 포함하도록 편집했습니다. 나는 그것이 내 대답에 아무것도 추가하지 않는다고 생각하지만, 당신은 그것을 원하는 것 같습니다 ...
Tim

4
인용과 세부적인 예는 모두 매우 유용합니다! Gedit을 추가하게되어 기쁘지만 @Wilf에 동의하여 이전에도 좋았습니다. 내가 (고의적으로) 거기에 포함시키지 않은 것은 단지 Gedit 예제가 아닙니다 . 사람들이 원하는 경우 "때때로"에 대한 간단한 메모를 추가 할 수 있지만이 질문은 별개라고 생각 하며 다시 열기로 투표했습니다 . 다시 열면 Gedit에 대한 자세한 내용을 추가하여 다른 답변을 추가하려고 시도하지만 여전히 대부분의 사람들에게 가장 유용한 답변 될 것입니다.
Eliah Kagan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.