sudoパスワード記憶タイムアウトを増やすにはどうすればよいですか?


61

/ etc / sudoersファイルを調整する必要があることは既に知っていますが、完全な情報と、viエディターを使用する必要のないソリューションも確認したいと思います。

更新:決して、これ以外の方法でファイルを編集しないでくださいvisudo


1
visudo :: sudo env EDITOR = nano visudo
Good Person

回答:


86

sudo visudo次の行を実行して追加します。

Defaults    timestamp_timeout=-1

をご覧くださいman 5 sudoers-1パスワードがタイムアウトすることはありません。数分で番号を好きなように変更できます。

のmanページにsudoは、sudo -v「さらに5分間sudoタイムアウトを延長する」と書かれています。

ファイルを直接編集する代わりに「sudo visudo」を実行すると、システムは変更をコミットする前にsudoersファイルを検証します。たとえば、迷ったキャラクターをどこかに放置すると、保存して終了すると、「sudoersファイルにエラーがあります。どうしますか?」と表示されます。...したがって、戻って編集する機会が与えられます。これは実際に10分前に私に起こりました。


20
はい。ただし、visudo保存する前にsudoersファイルに対していくつかの基本的な健全性チェックを実行します。vi直接使用してファイルを台無しにすると、sudoを使用できなくなり、変更を元に戻すのが非常に難しくなります。
nohillsideの

4
特権は他のシステムと同じなので、Appleとは関係ありません。visudoシステムのデフォルトエディターをラップします(ルートがデフォルトをオーバーライドしている場合、rootユーザーのデフォルトを推測します)。したがって、viバーの名前とは何の関係もありません。私のシステム(apple btwではない)でnanoを取得します。試してみexport EDITOR='/bin/nano'たり、好きなエディターを使用して、visudoを使用してください。
クリス

4
えーと、あなたはそれを修正するためにルートを使用することはできません。なぜなら、あなたはルートに到達することができないからです。
daviewales

1
プロの役割では、sudoにはアクセスできますが、rootパスワードはありません。サーバーが全国のデータセンターにあり、シングルユーザーモードへのアクセスが困難な場合があります。しかし、あなたが専門家と言われたなら、おそらくあなたはそのような警告を与えられることはないでしょう。ポイントは、専門家から学ぶべきだということです。良い習慣を身に付けることを避ける方法を探してはいけません。それから、Stack ExchangeとIRCであなたの必死の叫びを聞かなければなりません。
ブルーノブロノスキー

1
(多分それは誰にとっても明らかですが、追加します):timestamp_timeoutは分単位で、小数部分を含む場合があります。
ユーザー

3

直接変更する場合十分に注意してください/etc/sudoers

たとえば、私は上記の提案を直接試しました:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

/etc/sudoers(CentOS Virtualbox VMで)ファイルを台無しにしました。になるはずだった:

sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

幸いなことに、ルートアカウントにアクセスし、ルートとしてログインしvisudo、問題を使用して修復しました。したがって、visudo代わりに上記のコメントを使用することに同意します。


1

sudoersのすべての情報は、コマンドを使用してターミナルから見つけることができます

man sudoers

単純なテキストを使用してファイルを編集することもできますが、特権によりそれが難しくなります。sudoersは-r--r----- (Octal 0440)

これは、Appleが実際にファイルをいじりたくないことを示しています。これは本当にOSのコアセキュリティです。

編集のオプションは、vi、emacs、または私の個人的なお気に入りのBBEditです。


5
これらの特権が設定されるのには理由があります。これらはvisudo、自分でファイルを編集するのではなく、使用を強制するように設定されています。また、これはOS Xとは何の関係もありません。標準の* nixです。また、デフォルト以外のエディターを使用する場合は、を$EDITOR呼び出す前に環境変数を設定するだけですvisudo。例えばEDITOR=nano sudo visudo
daviewales

1

次のコマンドでsudoタイムアウトを無効にします。

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

この方法でsudoタイムアウトを再度有効にするには:

sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers

8
sudoersのmanページから:sudoersファイルは、ファイルをロックして文法チェックを行うvisudoコマンドで常に編集する必要があります。sudoは構文エラーのあるsudoersファイルでは実行されないため、sudoersには構文エラーがないことが不可欠です。
マッテオ

@Matteoまあ、結果に気づいていれば、自分の財産で好きなことをすることができます。状況によってはこれで問題ありません。たとえば、自動化スクリプトの一部として貴重なデータを持たない新しい Macビルドで使用します。警告を提供するために、この回答を編集することを提案しました。理想的にsudoは、ファイルを編集せずにこれを変更するワンライナーの方法が必要です!
サムテベスト

1
注意してください、これは危険なアドバイスです。代わりにvisudoを使用してください。
ウィルシェパード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.