
Ubuntu日本語フォーラム

ログインしていません。
sudoersファイルのパーミッションを440から600に変更してしまいました。
パーミッション440以外ではsudoコマンドが使えず、また600から元の440に戻すこともできずに困っております。
■Ubuntuを使っている背景のようなもの
Ubuntu 12.04を大学の研究室のウェブサイト掲載用、兼研究室メンバーのメールサーバーのOSとして使っている。
私はサーバー管理の役割についており、サーバーには私以外にも複数の人のメール用ユーザーが登録されていて、それらユーザーの管理の他、新規ユーザー追加などもできなければいけない。
トラブル以前は、PuTTYを使い自分のPC端末からサーバーにある自分のユーザーでログインして、sudoコマンドを使って諸々の管理の作業をしていた。
■これまで行った一連の操作
①sudoコマンドが使えるユーザーを追加しようとして試行錯誤しているうちに、
sudo chmod 600 /etc/sudoersにより、sudoersのファイルのパーミッションを440から600へ変えた。
その結果、自分自身がsudoを使えなくなった。(ここまではPuTTYを使って行っていた操作)
それで、リカバリーモードからrootシェルで入ることにした。(以下はサーバーの本体に直接繋がっているキーボードで行った操作)
②alt + Prt Scrを押しながらR, S, E, I, U, Bの順にキーを押して再起動し、
Ubuntu, with Linux 3.2.0-38-generic (recovery mode)を選択した。
その後root Drop to root shell promptを選んだ。
③root権限でsudoersファイルのパーミッションを600から440に戻そうと、chmod 440 /etc/sudoersを実行すると、
chmod: changing permissions of ‘/etc/sudoers’ : Read-only file systemと出て、パーミッションは変更できなかった。
④以前はsudoコマンドを使って新規ユーザー登録を行っていたが、当面sudoが使えなくてもrootで仕事ができるのならと思い、
試しに新規ユーザー追加(useradd –m ユーザー名)をrootでやってみることにした。
しかし、cannot lock etc passwd; try again later. と出て追加できなかった。
⑤PuTTYで一般ユーザーでログインして操作していたときには、
/homeディレクトリにおいてlsコマンドを入力すると、登録してあるすべてのユーザー名が羅列されていたのに、
rootでログインした状態で同様に/homeディレクトリでlsしても、何も表示されなかったので、なぜだろう?と気にかかった。
■どうしたいか
上記の私の操作のせいで、sudoコマンドが使えなくなっているので、再び一般ユーザーからsudoを使えるようにしたいです。
できれば④、⑤がなぜそうなったのかについても、ご教授いただけるとうれしいです。
長文ですが読んでいただきありがとうございます。
オフライン
recovery mode から直接 root を選択するとディスクはリードオンリーでマウントされると思います。
これをリードライトでマウントするために一度 network を選択してから root を選択するという手順が
必要だと思います。
sudoers を編集するコマンドは visudo だと思います。
オフライン
read only mount が問題なのであれば
③root権限でsudoersファイルのパーミッションを600から440に戻そうと、chmod 440 /etc/sudoersを実行すると、
を実行する直前に
mount -o remount,rw /
を試してみてはいかがでしょうか?
オフライン
hiroubuntu による投稿:
②alt + Prt Scrを押しながらR, S, E, I, U, Bの順にキーを押して再起動し、
Ubuntu, with Linux 3.2.0-38-generic (recovery mode)を選択した。
その後root Drop to root shell promptを選んだ。
③root権限でsudoersファイルのパーミッションを600から440に戻そうと、chmod 440 /etc/sudoersを実行すると、
chmod: changing permissions of ‘/etc/sudoers’ : Read-only file systemと出て、パーミッションは変更できなかった。
この(2)の「root」を選ぶ前に、「fsck」というメニュー項目を実行してください。
・リカバリーモードではデフォルトでは各ファイルシステムが読み込み専用でマウントされるので、編集を行うことができません。
・「fsck」を実行すると、ファイルシステムの異常のチェック後に読み書き可能な状態で再マウントされます。
・もちろん「root」でrootシェルを取ってから自分で再マウントしても良いのですが、ファイルシステムが壊れているようなケースでは惨事を招きます。ミスや二次災害を防ぐためには「fsck」の方が良いです。
その後、(3) を再度実行すればパーミッションをもとに戻すことができるはずです。
オフライン
無事解決できたので報告させていただきます。
皆様解答くださりありがとうございます。目新しい情報ばかりです。
今回私が拝借したのがhito様の手順なので、詳細をメモしておきます。
Ubuntu, with Linux 3.2.0-38-generic (recovery mode)を選択後、表示されるメニューからfsckを選ぶとファイルシステムの異常チェックがはじまる。
→チェックが終わったら、エンターキーを押してくださいと出るので押す。
→再びメニュー画面に戻るので、root Drop to root shell promptを選ぶ。
→chmod 440 /etc/sudoersを実行
以上です。
オフライン