
OS X Lion で dscl による不正なパスワード変更を防ぐためのクイックフィックス
先日、dsclユーティリティについて記事を書きました。このユーティリティを使うと、Mac OS X Lionのユーザーが既存のパスワードを知らなくてもパスワードを変更できるというものです。管理者認証が不要な点はバグとして広く報告されており、近い将来、Appleから小規模なセキュリティアップデートがリリースされる可能性があります。しかし、もし誰かがあなたのMacにアクセスしてユーザーパスワードを無断で変更してしまうのではないかと心配な場合は、dsclユーティリティの権限を手動で変更し、実行に管理者権限が必要となるように設定することも可能です。
- ターミナルを起動します(/Applications/Utilities/ にあります)
- 次のコマンドを入力して、Return キーを押します。
- 権限の変更を確認するために現在の管理者パスワードの入力を求められます。それを入力してリターンキーを押します。
sudo chmod 100 /usr/bin/dscl
これは、公式のセキュリティアップデートで行われるであろうことを模倣した、単純な権限修正です。sudo chmod 100 を使用すると、所有者(root)のみが dscl コマンドを実行できるようになります。これにより、管理者以外のユーザーが sudo コマンドを使用せずにディレクトリサービスユーティリティにアクセスできなくなり、管理者パスワードも使用できなくなります。
これらの権限を変更すると、意図しない結果が生じる可能性がありますが、ほとんどのユーザーに影響を与える可能性は低いでしょう。問題が発生した場合は、いつでも権限を元に戻すことができます。デフォルトでは755に設定されているようです。
コメント欄にこのヒントを残してくれた「Tjb」さんに心から感謝します!
更新: Jim T はコメント欄に次の推奨事項を残し、権限を変更するための別の chmod コマンドを提案しました。
代わりに、次のようにします。
sudo chmod go-x /usr/bin/dscl
これにより、グループとその他の権限の実行権限のみが削除され、その他の権限(読み取りと書き込み、およびルートのフル権限)は変更前のままになります。元に戻すには、以下のコマンドを実行します。
sudo chmod go+x /usr/bin/dscl
触るべきものだけを触ってください。
彼の論拠は、chmod 100 は、以前は root ユーザーが読み取り、書き込み、実行できたのに、実行のみにコマンドを変更する点で制限が厳しすぎるというものです。