Sudoを介してrootとしてコマンドを発行すると、突然権限の問題が発生します。
通常のアクセス許可を使用してホームディレクトリにファイルを作成できるので、次のようなものが機能します。
vi /home/mike/test.txt
しかし、Sudoを使用して実行される同等のコマンドは機能しません。
Sudo vi /home/mike/test.txt
"test.txt" E212: Can't open file for writing
これは1つの例にすぎません。Sudoを使用するすべてのコマンドは、権限の理由で失敗します。
通常のアクセス許可を使用して書き込むことができるので、ファイルシステムが読み取り専用であることは問題ではないと想定しています。また、ファイルの書き込みに限定されず、「Sudo visudo」などのコマンドも権限の理由で失敗します。これを引き起こしたサーバーへの最近の変更については知りません( "Sudo"は、このユーザーが起動してから8か月間は問題なく機能していました)。ハードリブートでは問題は解決していません。
サーバーは:Ubuntu 8.04.2 LTS(hardy)
どんなアイデアや助けも大歓迎です!
走ってもらえますか
Sudo -s
id
そして、出力を投稿しますか?それが実際にあなたが考えているユーザーになっているかどうかを見たいです。
また、お試しください
Sudo cat /etc/sudoers
ここでのidの出力は非常にわかりやすくなっています。あなたが走ったときSudo -s
、あなたは1のUIDを与えられましたが、カーネルがroot特権を持っていると認識する唯一のUIDはUID 0です。
実行してみてください
getent passwd | grep ':0:'
そして、エントリの最初の数値フィールドであるUIDに0があるかどうかを確認します。 root
は偽物ですが、システム上の実際のスーパーユーザーはどのアカウントでもかまいません。名前を知ったら、あなたは試すことができます
Sudo -s -u username
そのユーザーとしてシェルを取得します。
の出力も投稿する必要があります
getent passwd root
ここでのより大きな問題は、そのような条件がどのようにして成立したかです。
このマシンはネットワークサービスを提供していますか?その場合、誰かがそれに侵入して乗っ取った可能性があります。その場合は、おそらくデータをバックアップし、クリーンな再インストールを行い、それに戻ったものをすべて監査する必要があります。
パーソナルマシンの場合は、最近それにアクセスした知識のあるいたずら者がいるかもしれませんか?
編集:別の回答へのコメントは、これがサーバーであることを示唆しています。できるだけ早くオフラインにして、フォレンジック目的でディスクをイメージングすることを強くお勧めします。この問題の良性の原因を簡単に特定できない場合は、サーバーにクラックが発生している可能性があります。
まだrootになれますか
Sudo su -
その後、
cd /home/mike
vi test.txt
作業?
/ homeディレクトリがNFSマウントかどうか疑問に思っています。この場合、NFSマウントに対する権限はrootユーザーではなくユーザーnobody/nobodyであるため、rootユーザーは「その他」のカテゴリーの権限を持っています。
Sudo
バイナリSUIDルートですか?
ls -l $(which Sudo)