sudo에서 깨어 난 후 sudo가 항상 암호를 요구하도록하려면 어떻게해야합니까?


15

를 사용하여 명령을 실행 한 다음 15/5 분 내에 ( sudo내가 기억하는 시간이 확실하지 않은 경우) 사용하면 암호를 묻는 메시지가 표시되지 않습니다. 적어도 오랫동안 사용하지 않은 경우에만 다시 프롬프트됩니다.sudo

그러나 컴퓨터를 일시 중지하고 깨우고 그 기간이 끝나기 전에 로그인하면 sudo명령을 다시 실행할 수 있으며 특정 금액을 허용하지 않기 때문에 암호를 묻지 않습니다. 시간.

얼마나 오랫동안 사용하지 sudo않더라도 다시 로그인하면 일시 중지 후 비밀번호를 입력하라는 메시지가 표시됩니다. 사용하지 않은 15/5 분이 sudo아직 지나지 않았습니까?

작동 할 가능성이 가장 높은 것은 sudo웨이크 업시 실행되는 특정 명령을 실행할 때 모든 ID 캐시를 제거하는 명령을 실행하는 것입니다.

그놈 3.18과 함께 우분투 그놈 15.10을 실행하고 있습니다.


1
좋은 질문이지만 왜 편집증입니까? 귀하 이외의 다른 사람이 귀하의 로그인 비밀번호를 사용하는 것을 막을 수 없다면sudo
Edward Torvalds

해당 터미널 창을 종료하면 새 터미널 창을 열 때 속도에 상관없이 비밀번호를 다시 입력해야합니다. 터미널 창에서 무언가를 실행하고 있다면`; 종료하고 명령이 완료되면 창이 닫힙니다.
Marc

@Marc : 알고 있지만, 종료하거나 다음에 수동으로 sudo물어 보는 것이 항상 편리한 것은 아닙니다 . 자동 솔루션이 선호됩니다.

@ edwardtorvalds : 글쎄, 다시 로그인 한 다음 멀리 갈 수 있습니다 sudo. 내 컴퓨터에는 약간 이상하게 들리지만 다른 우분투 컴퓨터에서 약간의 유지 관리 작업을 수행했을 수 있으며 다시 사용자를 다시 로그인하면 터미널을 닫는 것이 불편할 수 있지만 그들에게 sudo권리 가 있기를 바랍니다 .

1
추가`; exit` (7 번의 키 입력)는 나에게 쉬운 것처럼 보입니다. 중간에 중단 될 가능성이별로 없기 때문에 어떤 종류의 유지 보수 서비스를 제공하지 않습니까?
Marc

답변:


19

보낸 사람 man sudo:

     -K, --remove-timestamp
                 Similar to the -k option, except that it removes the user's
                 cached credentials entirely and may not be used in conjunc‐
                 tion with a command or other option.  This option does not
                 require a password.  Not all security policies support cre‐
                 dential caching.

따라서 원하는 것은 sudo -K시스템이 일시 중단 될 때마다 사용자가 실행 하는 것입니다.

우분투 15.04+ (시스템)

Ubuntu 15.04+에서에 스크립트를 추가하면됩니다 /lib/systemd/system-sleep/.

  1. 실행 sudo nano /lib/systemd/system-sleep/disable_sudo_user( user편의를 위해 사용자의 사용자 이름으로 대체 );
  2. 다음 스크립트에 붙여 넣습니다 ( user사용자 이름으로 바꿉니다).
#!/bin/sh
case $1/$2 in
    pre/suspend)
        su user -c 'sudo -K'
        ;;
esac
  1. 히트 CTRL+ O, ENTERCTRL+ X;

  2. 실행 sudo chmod o+x /lib/systemd/system-sleep/disable_sudo_user;


최대 절전 모드 / 하이브리드 절전 모드에서도이 기능을 사용하려면이 스크립트를 대신 사용하십시오.

#!/bin/sh
case $1 in
    pre)
        su user -c 'sudo -K'
        ;;
esac

이전 우분투 버전 (업 스타트)

이전 우분투 버전에서에 스크립트를 추가하면됩니다 /etc/pm/sleep.d/.

  1. 실행 sudo nano /etc/pm/sleep.d/disable_sudo_user( user편의를 위해 사용자의 사용자 이름으로 대체 );
  2. 다음 스크립트에 붙여 넣습니다 ( user사용자 이름으로 바꿉니다).
#!/bin/sh
case $1 in
    suspend)
        su user -c 'sudo -K'
        ;;
esac
  1. 히트 CTRL+ O, ENTERCTRL+ X;

  2. 실행 sudo chmod o+x /etc/pm/sleep.d/disable_sudo_user;


최대 절전 모드에서도이 기능을 사용하려면이 스크립트를 대신 사용하십시오.

#!/bin/sh
case $1 in
    suspend|hybernate)
        su user -c 'sudo -K'
        ;;
esac

2
당신이 사용한다면 그것은 더 재미있을 것 sudo -u user sudo -k입니다. : D
muru

@muru 똑같이 생각했지만 어떤 이유로 든 어리석은 것처럼 보였다 : D
kos

죄송합니다. 한동안 쉘 코드를 작성하지 않았습니다. 정확히 무엇을 pre/*)합니까? :)

@ParanoidPanda 사라졌습니다. 업데이트를 참조하십시오. 참조 여기 (설명, 두 번째 단락) systemd-suspend.service에있는 스크립트를 호출 /lib/systemd/system-sleep/이 개 인수를 전달; $1그것은 하나의 pre사전 수면 이벤트 또는 post사후 수면 이벤트에 대해, 그리고 $2그 중 하나입니다 suspend, hybernate또는 hybrid-sleep; pre/*모두의 조합을 잡기 위해 의미되었다 pre/과의 suspend, hybernate또는 hybrid-sleep,하지만 당신은 서스펜션에 대한 명시 적으로 요구하기 때문에 나는 그것을 변경 pre/suspend.
kos

1
오래된 우분투 에서도이 작업을 수행 할 수 있다는 점에 주목할 필요가 있습니다 /etc/pm/sleep.d. 스크립트를 사용하는 것과는 다른 메커니즘 일뿐 입니다.
hobbs

3

당신이 그 편집증 인 경우에만! -K옵션을 사용할 수 있습니다 sudo.

-K, --reset-timestamp
       When used without a command, invalidates the user's cached credentials.  
       In other words, the next time sudo is run a password will be required.  
       This option does not require a password and was added to allow a user to revoke
       sudo permissions from a .logout file.

       When used in conjunction with a command or an option that may require a 
       password, this option will cause sudo to ignore the user's cached credentials.  
       As a result, sudo will prompt for a password (if one is required by the 
       security policy) and will not update the user's cached credentials.

       Not all security policies support credential caching.

예를 들어

sudo -K <command>

또는 로봇에 의해 보호되는 금속 상자에 컴퓨터를 둘 수 있습니다 :)


흠 ... 정확히 내가 원하는대로, 이것을 자동화 할 방법이 없습니까? 이것은 내가 일시 중단하려고한다는 것을 분명히 알고 있기 때문에 명령이 실행 중이고 sudo어딘가에 가야하는 경우 시스템을 일시 중단 한 다음 다시 돌아와서 일시 중단을 해제해야합니다. 다음 번에 다시 암호를 요구할 수 있기 전에 명령 또는 완료 시간에 대해? 자동화되는 데는 여러 가지 이유로 인해 훨씬 ​​유용합니다 (다른 실행 레벨에서 GUI로 실행 할 때 일시 중지 후 비밀번호를 요구하지 않는다는 사실 포함).

또한, 나는 당신이 -K아니라고 생각합니다 -k.

어쨌든 더 유용 할 것입니다.

1

또 다른 방법

'sudo visudo'유형

'Defaults env_reset'이라는 줄로 이동하십시오.

다음으로 변경하십시오.

'기본값 env_reset, timestamp_timeout = 0

그런 다음 파일을 저장하십시오.

시간 초과를 0으로 설정하면 시스템에서 매번 암호를 묻는 메시지를 표시합니다.


이 동안 수행 (기술적으로 말하기)에 영업 이익은 대부분의 경우에 그것의 과잉, 요구되는 무엇을 달성. 즉, 당신이 정말로 편집증 적 인 경우 (또는 잠재적으로 위험한 일을 할 때마다 일시 중지 및 묵상을위한 추가 단계를 원한다면) 이것은 실용적인 대안 일 수 있습니다.
CVn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.