액세스 오류를 표시하는 대신 sudo 비밀번호를 묻는 메시지 표시

액세스 오류를 표시하는 대신 sudo 비밀번호를 묻는 메시지 표시

오류를 표시하고 sudo로 다시 실행하도록 요구하는 대신 루트가 필요한 모든 작업에 암호가 필요하도록 Fedora 22를 구성할 수 있습니까? 비밀번호를 기억할 수 있는 몇 분(또는 무엇이든) 타이머 없이 매번 비밀번호를 입력해야 하는 것조차 신경 쓰지 않습니다.

즉, 대신에:

$ dnf history
You don't have access to the history DB.

그것은:

$ dnf history
[sudo] password for <username>:

제가 설치한 gui yum 프론트엔드와 같은 일부 gui 애플리케이션이 이 작업을 수행할 수 있다고 생각합니다.

제 생각에는 그렇지 않을 것 같습니다...이것은 각 응용 프로그램에서 구현될 것입니다. 그러나 애플리케이션에서 루트 권한이 필요하다고 말할 수 있고 사용자에게 권한이 있는지 여부를 반환하기 전에 커널(또는 다른 곳)이 차단 입력 단계에서 (비밀번호) 사용을 유지할 수 있는 방법이 있을 수 있습니다.

답변1

파이썬 스크립트를 사용할 수 있습니다thefuck github에서 찾을 수 있습니다. 이 스크립트는 일부 사용 사례에서 잘못 실행한 마지막 명령을 수정하도록 설계되었으며, 사용을 잊어버리는 경우도 sudo그 중 하나입니다.

그들의 예를 보면 다음과 같습니다.

➜ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

➜ fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done

이 동작은 활성화할 수 있는 sudo 규칙에서 비롯됩니다.

sudo – 권한 문제로 실패할 경우 이전 명령에 sudo를 추가합니다.

이것이 기본적으로 작동하지 않으면 dnf사용자 정의 규칙을 만드는 것이 간단해야 합니다.

답변2

간단한 해결 방법은 (항상) 권한이 필요한 실행 명령을 식별하고 해당 명령에 별칭을 추가하는 것입니다.

alias dnf="sudo dnf"
  ⋮     ⋮     ⋮

cp사용하는 모든 명령, 특히 해를 끼칠 수 있는 명령(예: , mvrm) 에 대해 이 작업을 수행하지 않는 것이 좋습니다 . 사실 개인적으로는 그렇게 하지 않을 것입니다 ls. 루트로 실행하지 않았다면 ls -l /root 실패하는 것이 옳을 것이라고 생각합니다. 이렇게 하는 것이 가능 find하지만 실행하는 모든 프로그램은 -exec 실행 중인 수퍼유저 권한을 상속한다는 점을 기억하십시오.find

관련 정보