sudo는 생선 껍질에서 암호를 묻습니다.


19

우분투의 sudo는 모든 명령에 대한 암호를 계속 묻습니다. 이전에는 비밀번호를 한 번만 입력하면 일정 기간 동안 기억됩니다. 이것은 최근 Natty로 "업그레이드"한 후에 변경되었습니다.

sudo visudo설정 Defaults env_reset, timestamp_timeout = 60하고 재부팅을 시도했지만 여전히 작동하지 않습니다. 이 문제를 어떻게 해결합니까?

아래 제안 후 내 /etc/sudoers모습은 다음과 같습니다.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults:endolith timestamp_timeout=60

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

최신 정보:

내 VirtualBox를 업그레이드했는데 같은 문제가 발생하기 시작했습니다. 짐작으로, 나는 bash를 실행하고 sudo를 시도했지만 암호가 올바르게 기억됩니다. 기억하지 않는 기본 껍질 생선 을 사용할 때만 가능 합니다. 이전 우분투 릴리스에서 이루어졌지만 더 이상은 아닙니다.

최신 정보:

나는 13.05로 업그레이드했으며 마술처럼 다시 작동하기 시작했습니다. 이제 비밀번호를 한 번 요청하고 잠시 동안 요청을 중지 한 다음 일정 시간 후에 다시 요청합니다.



3
@warren : 중복되지 않습니다. 암호를 입력해야하지만 한 번 입력 한 후에는 일정 시간 동안 입력하지 않아도됩니다. 과거에 visudo 로이 시간을 변경했지만 더 이상 작동하지 않습니다.
endolith

하나의 공통 분리 문이 아닌 여러 Defaults 문을 사용해야한다고 생각합니다.
Stephanie

@ Stephanie, 쉼표로 구분 된 값을 가진 단일 Defaults 문을 갖는 것이 좋습니다.
Zoredache

나는 당신이 같은 줄을 추가 한 Defaults:endolith timestamp_timeout=60것을 보았지만 endolith라는 그룹에 속하지 않았습니다. 여기에 다른 의견이 있습니다. 어떤 사용자 이름을 사용하고 있습니까? 로 확인하고 whoami그 자리 endolithDefaults:endolith timestamp_timeout=60또는 대신에 해당 사용자 이름을 추가 하십시오.endolith ALL=(ALL) NOPASSWD: ALL
wim

답변:


15

@endolith : 예, 물고기에만 영향을 미치는 것 같습니다. 동일한 문제가 발생했습니다.이 문제는 sudo 옵션 "tty_tickets"로 인해 발생합니다. / etc / sudoers 파일에서 이것을 비활성화하면 문제가 해결됩니다.

다음은 tty_tickets를 비활성화합니다 :

Defaults        env_reset,!tty_tickets

이것에 부정적인 영향이 있습니까?
endolith

1
"tty_tickets를 비활성화하면 원격 사용자에게 SSH 액세스 권한을 제공 할 경우 의도하지 않은 관리자가 높은 권한을 공유 할 수 있으므로주의해야합니다." 에서 ask.debian.net/questions/...
endolith

나는 원격 사용자에게 SSH 액세스를 제공하지만 나 자신에게만 해당되므로 취약점이 발생하지 않는다고 가정합니까?
endolith

5

다른 방법이 없으면 sudo -i스스로 시도하십시오 . 암호 하나를 입력하면 루트 셸이 제공됩니다.


6
좋은 점이지만 요청보다 약간 위험합니다.
mbb

이것이 루트 쉘을 얻는 데있어 "우분투 방식"이라고 생각하면, 그것이 문제를 해결하는 깔끔한 방법이라고 생각했습니다. 모든 명령은 여전히 ​​기록됩니다.
Broam

1
실제로 문제를 해결하지는 않지만 기본적으로 문제를 무시하는 방법입니다.
Zoredache

이것은 해결책이 아닌 해결 방법이지만, 좋습니다. 자동으로 현상금의 절반을 줄 경우 상관 없습니다. :)
endolith

1

암호를 한 번만 입력하면 일정 기간 동안 기억됩니다.

내가 추측 할 수 있다면, /var/run/sudo디렉토리 에 관한 무언가가 망가 졌을 것 입니다. 이 디렉토리는 타임 스탬프 파일이 저장되는 위치입니다. 아마도 / var / run이 가득 찼을 수도 있고 권한이 망가 졌을 수도 있습니다. 어쨌든, 그 디렉토리를 살펴보십시오. 문제가있을 수 있습니다.

내 폴더에 대한 권한은 다음과 같습니다.

# find /var/run/sudo/ -ls
1164242    4 drwx------   6 root     root         4096 Jan  1  1985 /var/run/sudo/
1179694    4 drwx------   2 root     www-data     4096 Jan  1  1985 /var/run/sudo/www-data
1164286    4 drwx------   2 root     myuser      4096 Jul 21 23:03 /var/run/sudo/myuser
1163399    0 -rw-------   1 root     myuser         0 Jul 13 22:42 /var/run/sudo/myuser/0
1163453    0 -rw-------   1 root     myuser         0 Jul 21 22:59 /var/run/sudo/myuser/2
1164309    0 -rw-------   1 root     myuser         0 Jul 21 23:03 /var/run/sudo/myuser/6
1163303    0 -rw-------   1 root     myuser         0 Jul 13 22:31 /var/run/sudo/myuser/5

적절한 측정을 sudo -K위해 현재 타임 스탬프 파일을 종료 하기 위해 실행 을 시도 할 수도 있습니다 .


find: '/var/run/sudo': No such file or directory
endolith

글쎄, 그것은 나쁜 징조입니다, 그것을 만들어보십시오, 위와 같이 소유권 / 권한을 설정하십시오.
Zoredache

또는 패키지를 다시 설치할 수도 있습니다.
Zoredache

시냅틱으로 sudo를 다시 설치
했는데

Ubuntu 10.10을 실행하는 VirtualBox에서 동일한 내용을 얻습니다. 에 sudo폴더 가 없습니다 /var/run. 이 가상 머신에서는 예상대로 비밀번호를 기억하므로 관련이 없습니다. 이 가상 머신에서 볼 수있는 유일한 것은입니다 Defaults env_reset. 또한 %sudo ALL=(ALL) ALL대신에 말합니다 %sudo ALL=(ALL:ALL) ALL.
endolith

0

/etc/sudoers.d/ 디렉토리를 확인합니다.

sudo 패키지를 이전 버전으로 다운 그레이드 할 수도 있습니다.

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