시스템 구성 파일을 편집 할 수있는 권한을 얻으려면 어떻게합니까?


47

루트 시스템에서 설정 파일을 편집하고 저장할 수 없습니다 (예 :) /etc/dhcp/dhcpd.config; "권한이 거부되었습니다"라고 표시되거나 텍스트 편집기에서 저장 옵션이 차단되었습니다.

나는 루트 사용자라고 확신하지만 어떻게 확인합니까? 루트 사용자 인 경우이 문제를 어떻게 해결합니까?

답변:


42

어떤 텍스트 편집기를 사용하고 있습니까? 루트 사용자이고 비밀번호를 알고있는 경우 터미널에서 다음 중 하나를 시도하십시오.

  • sudoedit /etc/dhcp/dhcpd.confignano서버 와 같은 터미널 기반 편집기를 사용 하거나 서버에 ssh하는 경우
  • gksudo <text editor here> /etc/dhcp/dhcpd.config 다음과 같은 GUI 기반 편집기를 사용하는 경우 gedit

두 경우 모두 요청시 먼저 루트 비밀번호를 제공해야합니다.

Ubuntu 14.04 이상에서는 gksudo기본적으로 설치되지 않습니다. gksu패키지 sudo apt-get install gksu를 받으려면 소프트웨어 센터에서 또는를 통해 패키지 를 설치 해야합니다.

Ubuntu 17.10에서 Wayland는 기존 X 서버 대신 기본값이며 루트로 그래픽 편집기를 실행하기가 어렵습니다. Waydo에서 suk를 사용하여 gksu / gksudo 또는 그래픽 응용 프로그램을 시작하지 않는 이유를 참조하십시오 . 자세한 내용은.

우분투 18.04에서는 gksudo공식 저장소에서 사용할 수 없습니다. 사용 sudo -H <text editor>대신에, 또는 프로토콜 :admin://

gedit admin:///etc/dhcp/dhcpd.config

15

터미널을 사용하지 않으려면 GUI 프로그램을 루트로 호출 할 수 있습니다 (이 예제는 Gedit 용).

  1. 히트 Alt+ F2실행 대화 상자를 불러옵니다.
  2. 입력 gksudo합니다 (GUI에 표시되는 이름이 다를 수 있습니다) 프로그램의 실행 파일 이름 하였다. 예를 들면 다음과 같습니다.

    gksudo gedit
    
  3. 을 누르십시오 Enter.

10

root가 얻을 수있는 경우를 생각할 수 없습니다 permission denied.

12.04에서는 다음과 같이 할 수 있습니다 : alt+ 다음 f2gksudo같은 상자에 입력하십시오 :

F2 대화

이와 같은 상자가 gedit나타나면 입력 하고 클릭하십시오 ok.

실행 대화 상자에 gedit를 입력하십시오.

클릭 Open:

gedit 내부의 탭 열기

파일을 찾으십시오.

파일 열기 대화

끝난

경고 : 이유로 인해 수퍼 유저 / 루트가 있습니다. 실수로 중요하지 않은 물건을 실수로 잘못하거나 구조에 넣지 않도록합니다. 루트로 편집 한 모든 것이 편집하려는 올바른 파일이고 구문이 완벽하다는 것을 매우 조심해야합니다. 다른 도구를 편집 할 수있는 경우 해당 도구를 사용하는 것이 좋습니다. 예를 들어, 수동 편집 대신 visudo 터미널 명령을 사용하십시오 /etc/sudoers.

엉망이 될 수있는 일부 파일은 복구하기 쉽습니다. 다른 것들은 비교적 복잡하거나 복구 콘솔과 많은 명령 줄을 사용해야합니다.

예. 복구 콘솔 명령 줄은 이것 보다 조금 더 무섭게 보입니다 . 조심해.


13.04 이상에서는이를 업데이트해야합니다. gksu / gksudo와 관련된 몇 가지 사항이 변경되었습니다 (답에 해당되는지 여부는 확실하지 않음).
Seth

sudo가 DISPLAY 환경 변수를 마술처럼 내보내고 gksu / gksudo가 사라지거나 사라지고 있다는 것을 이해합니다. 그래도 확인하지 않았습니다.
RobotHumans

root파일을 사용하여 파일을 변경할 수 chattr없거나 디스크가 읽기 전용 인 경우 권한이 거부 될 수 있습니다 .
차이 티 렉스

6

현재 쉘이 몇 가지 다른 방법으로 루트로 실행 중인지 테스트 할 수 있습니다.

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

다른 답변은 루트 권한으로 에스컬레이션하는 좋은 방법을 제공하므로 반복하지 않습니다. 가정 당신은 있는 루트 당신은 여전히 파일을 편집 할 수 없습니다 /etc/dhcp/dhcpd.config- 다음 매우 아마 누군가 또는 어떤 프로그램이 사용한 chattr파일을 변경할 수 있도록 프로그램을.

로부터 위해 chattr 매뉴얼 페이지 :

'i'속성이있는 파일은 수정할 수 없습니다. 파일을 삭제하거나 이름을 바꿀 수 없으며이 파일에 대한 링크를 만들 수 없으며 파일에 데이터를 쓸 수 없습니다. 수퍼 유저 또는 CAP_LINUX_IMMUTABLE기능을 소유 한 프로세스 만이 속성을 설정하거나 지울 수 있습니다.

당신은을 사용하여 찾을 수 있습니다 lsattr

lsattr /etc/dhcp/dhcpd.config

실제로 불변이라면 다음과 같이 끌 수 있습니다.

chattr -i /etc/dhcp/dhcpd.config

3

당신이 사용하는 경우 우분투 17.04 이상, 사용하는 것이 좋습니다 GVFS 관리 백엔드 . 텍스트 편집기 또는 파일 앱admin:// 과 같은 앱에서 열고 자하는 전체 파일 경로 앞에 추가 하면 됩니다 .

예를 들어 부팅 설정을 변경하려면

admin:///etc/default/grub

기본 WAYLAND와 우분투 17.10를 사용하는 경우 sudogksu기존의 대답에 언급 한 바와 같이 여기됩니다 하지 작동합니다.


2

좋아하는 텍스트 편집기 사용

환경 변수 1을 통해 즐겨 사용하는 (그래픽!) 텍스트 편집기와 함께 sudo -e또는 별명 sudoedit을 사용할 수 있습니다 .VISUAL

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

어느 것이

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

물론 당신은 당신이 좋아하는 다른 편집기, 예를 들어, 사용 leafpad, kate또는를 subl.

일부 편집기 는 현재 실행중인 경우에도 항상 새 인스턴스를 시작 하는 명령 줄 옵션을 제공합니다 . sudoedit편집 된 파일에 변경 사항을 적용하기 위해 편집기 프로세스가 종료 될 때까지 기다리 므로 동일한 편집기의 다른 인스턴스가 실행중인 경우에 필요할 수 있습니다.

  • GEdit의 경우 VISUAL='gedit -s'.
  • 케이트 사용 VISUAL='kate -n'합니다.

장점

  • 추가 및 / 또는 더 이상 사용되지 않는 응용 프로그램이 필요하지 않습니다.
  • 다음과 같은 보안 정책 변경이 필요하지 않습니다 pkexec(파일을 편집해야합니다. 수퍼 유저로서이 답변이 해결하려는 정확한 내용).
  • 높은 권한으로 잠재적으로 안전하지 않은 응용 프로그램을 실행할 필요가 없습니다.
  • 현재 사용자의 응용 프로그램 구성을 사용하지만 sudo -H등 의 구성 파일 액세스 권한을 엉망으로 만듭니다 .
  • root수용 가능하게 보이고 작동하지 않을 수 있는 사용자 의 사용자 응용 프로그램 구성 데이터로 되돌아 가지 않습니다.

단점

  • 짧은 새 명령을 배워야합니다.

1 EDITOR 또는 SUDO_EDITOR너무 작동하지만 우선 순위가 낮거나 각각 더 전문화되어 있습니다. 자세한 내용은 매뉴얼 페이지 를 참조하십시오.


0

사용 cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup 하고 안전하게 백업하기 위해gksu gedit /etc/dhcp/dhcpd.config

gedit선택한 편집기로 교체

당신은 이런 프롬프트를 얻을 것입니다

비밀번호 프롬프트

여기에 비밀번호를 입력하십시오.

새 창이 열리고 여기에서 구성을 편집 할 수 있습니다.

문제가 발생하면 홈 폴더의 백업에서 복원 할 수 있습니다.

Linux가 권한을 처리하는 방법 때문에 "권한이 거부되었습니다".

$HOME폴더의 모든 것은 사용자에게 속한 반면 거의 모든 것은 루트에 속합니다.

/etc/dhcp/dhcpd.conf액세스하려는 파일이 뿌리 속하고 대부분의 파일은 /etc/보안상의 이유로 기본적으로 루트에 속한다.

권한을 높여서이 파일을 편집 할 수 있습니다.

이렇게하려면 여러 가지 방법이 있습니다.

  • 사용 su스위치 사용자를 의미합니다. 속성이 없으면 루트 계정으로 전환하는 명령으로 작동하지만 전환하려는 사용자의 비밀번호를 입력해야합니다. 루트는 기본적으로 Ubuntu에 비밀번호가 없으므로 (루트 계정을 효과적으로 비활성화) 루트 비밀번호를 설정하지 않으면 작동하지 않으므로 권장하지 않습니다.

  • 를 사용 sudo하면 하나의 명령에 대한 권한 만 높아집니다. 이것은 일반적으로 같은 CLI 텍스트 편집기와 같은 명령 줄 응용 프로그램에만 사용됩니다 vim, nano

  • gksu사용하면 단 하나의 명령에 대해서만 권한이 높아지지만 sudoGUI 텍스트 편집기와 같은 그래픽 프로그램에는 사용 되지 gedit않습니다. 암호 입력을 용이하게하기 위해 그래픽 프롬프트를 사용합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.