インストール †aptitude install sudo 設定方法 †sudoの設定ファイルは/etc/sudoers vi/emacsなどで直接書き込みは出来るけど、あまりおすすめしていない。出来たらvisudoなんかを使うと後で幸せになれるかもしれない。。。ほげ 制限 †# Host alias specification # User alias specification # Cmnd alias specification Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, /sbin/poweroff, /sbin/reboot, /sbin/fastboot, /sbin/init 後あまり許可したくないコマンドなどをいれておく Cmnd_Alias RM = /bin/rm, /bin/rmdir, /usr/sbin/visudo, /usr/sbin/dpkg-reconfigure, /bin/su # User privilege specification root ALL=(ALL) ALL hoge ALL=(ALL) ALL, !SHUTDOWN, !RM 許可したくないコマンド †
エラー †[解決]sudo: timestamp too far in the future: †と出たらman sudoをしてみる。それでsudo -kをするとよさげ。。。とあるんだけど、全然言う事聞いてくれない googleで検索したら、sudo -Kを二回すると直る。。。とあるんだけど、 aya@comuro:~$ sudo -K sudo: timestamp too far in the future: Jan 29 03:24:52 2008 aya@comuro:~$ sudo -K sudo: timestamp too far in the future: Jan 29 03:24:52 2008 うむむ、と思っていたんだけど、以下をやった後にsudo -Kをしたら直った。 aya@comuro:~$ sudo -l sudo: timestamp too far in the future: Jan 29 03:24:52 2008 We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password:***** なぜだろう?? 取り合えず他のオプションを使ってみる、という事だな。 その他の解決方法は su でrootになって /var/run/sudo/ユーザー名のフォルダーを消すとよい man sudoには以下のように書いてある -k -k (kill) オプションが指定されると、 sudo は有効期間を紀元年 (epoch) に設定することで、ユーザのタイムスタンプを無効にする。次回 sudo を実行するときは、パスワードが必要とされる。このオプションには パスワードが必要ない。ユーザが .logout ファイルで sudo 権限を取り消 すことができるように追加された。 -K -K (sure kill) オプションが指定されると、 sudo は ユーザのタイムス タンプを完全に削除する。このオプションにはパスワードが必要ない。 後これは読んどくべきだな †sudo はタイムスタンプディレクトリ (デフォルトでは /var/run/sudo) の所有者をチェックし、所有者が root で、かつ root のみの書き込み属性でない場合、ディレクトリの中身を無視する。 root 以外のユーザでも chown(2) を使って自分のファイルを他人に渡せるようなシステムでは、タイムスタンプディレクトリが全てのユーザに書き込み可能なディレクトリ (例えば、/tmp) である場合、ユーザが sudo の実行前にタイムスタンプディレクトリを作成できてしまう。しかし sudo はディレクトリと中身の所有者とアクセス権をチェックするので、受けるダメージとしては「隠し」ファイルをタイムスタンプディレクトリに入れられるだけである。タイムスタンプディレクトリを root の所有にして、他のユーザからはアクセス不可能としてしまえば、そこにファイルを置いたユーザはファイルを取り出せなくなるので、こういったことは起こりづらい。この問題を避けるには、全てのユーザからは書き込めないディレクトリ (例えば、/var/adm/sudo) をタイムスタンプディレクトリとして使うか、システムのスタートアップファイルで /var/run/sudo を適切な所有者 (root)とアクセス権 (0700) で作成すればよい。 sudo は、遠い未来の時刻になっているタイムスタンプのセットを受け付けない。 current_time + 2 * TIMEOUT より先の時刻になっているタイムスタンプは無視され、sudo はログに記録を残して警告を出す。これにより、ユーザによるファイル譲渡が可能なシステム上で、ユーザが偽の日付でタイムスタンプを作成するのを防ぐ。 |