sudoは、魚のシェルでパスワードを尋ね続けます


19

Ubuntuの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を試みましたが、パスワードは正しく記憶されています。覚えていないのは、デフォルトのシェルフィッシュを使用するときだけです。それは以前のUbuntuリリースで行われましたが、もうありません。

更新:

13.05にアップグレードすると、魔法のように再び機能し始めました。これで、パスワードを1回要求され、しばらくは要求が停止され、一定期間後に再度要求されます。



3
@warren:それは重複ではありません。パスワードを入力する必要がありますが、一度入力した後は、一定の時間を入力する必要はありません。過去にvisudoでこの時間を変更しましたが、もう機能していません。
エンドリス

1つの共通の分離されたステートメントではなく、複数のDefaultsステートメントを使用する必要があると思います。
ステファニー

@Stephanie、カンマ区切りの値を含む単一のDefaultsステートメントを使用しても問題ないことは確かです。
ゾレダチェ

あなたはのような行を追加したことがわかりますがDefaults:endolith timestamp_timeout=60、あなたはここで別のコメントに従ってendolithと呼ばれるグループにはいません。だからあなたはどのユーザー名を使用していますか 確認してくださいwhoami、との代わりに、そのユーザ名を追加endolithDefaults:endolith timestamp_timeout=60endolith ALL=(ALL) NOPASSWD: ALL
WIM

回答:


15

@endolith:はい、魚にのみ影響があるようです。私は同じ問題を抱えていました、問題はsudoオプション「tty_tickets」が原因です。/ etc / sudoersファイルでこれを無効にすると、問題が解決します。

以下はtty_ticketsを無効にします:

Defaults        env_reset,!tty_tickets

これにはマイナスの影響がありますか?
エンドリス

1
「リモートユーザーにSSHアクセスを提供する場合は注意してください。tty_ticketsを無効にすると、意図せずに昇格した権限を共有できるようになる可能性があります。」ask.debian.net/questions/...
endolith

リモートユーザーにSSHアクセスを提供していますが、それは自分自身に限られているため、これは脆弱性を引き起こさないと思いますか?
エンドリス

5

何も機能しない場合は、sudo -i(単独で)試してください。これにより、1つのパスワードの後に​​ルートシェルが提供されます。


6
素晴らしい点ですが、リクエストよりわずかに危険です。
mbb

これがルートシェルを取得するための「Ubuntuの方法」であると考えて、私はそれが問題を回避するきちんとした作業であると考えました。すべてのコマンドは引き続き記録されます。
ブラム

1
問題を実際に修正するわけではありませんが、基本的には単にそれを無視する方法です。
ゾレダチェ

これは解決策ではなく回避策ですが、それは良いことであり、自動的に半分の報奨金が与えられるかどうかは気にしません。:)
エンドリス

1

パスワードを入力する必要があるのは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
エンドリス

それは悪い兆候です。作成してみて、上記のように所有権/許可を設定してみてください。
ゾレダチェ

または、単にパッケージを再インストールすることもできます。
ゾレダチェ

シナプスでsudoを再インストールし、それはまだ言っています
エンドリス

Ubuntu 10.10を実行しているVirtualBoxでも同じことがわかります。にはsudoフォルダがありません/var/run。この仮想マシンでは、パスワードが予想どおりに記憶されるため、これは関連性がないようです。この仮想マシンのvisudoで唯一のものはDefaults env_resetです。また、の%sudo ALL=(ALL) ALL代わりに言います%sudo ALL=(ALL:ALL) ALL
エンドリス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.