「sudo」コマンドが壊れています。 [3回の間違った試み、プロンプトなしで配信されました] Debian 10

「sudo」コマンドが壊れています。 [3回の間違った試み、プロンプトなしで配信されました] Debian 10

私は本当にあなたの助けが必要です。ルートとユーザー(sudoグループに追加)という2人のユーザーを持つdebian 10サーバーがあります。私はRDPのユーザーアカウントを使用しており、「sudo」コマンドは常にうまく機能します。

問題は、ユーザーアカウントで以下を実行しようとしたときに発生します。

$ echo 'deb http://ftp.de.debian.org/debian bookworm main' >> /etc/apt/sources.list

libcryptに関していくつかのエラーがありました。次のことを試しました(思い出がうまくいきません)。

$ sudo echo 'deb http://ftp.de.debian.org/debian bookworm main' >> sudo /etc/apt/sources.list

私が「sudo」に答えたのは問題だと思いますか?私はLinuxについてよく知らず、数日間グーグルをしましたが、問題を解決できませんでした。 sudoを使用するほとんどのコマンドは、パスワードの入力を求めずにすぐに次の出力を受け取ります。

$ sudo whoami
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts

私が試した場合:

$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

sudoアクセス権を持つすべてのコマンドは拒否されます。 Googleで検索したプロフィールを変更することはできません。したがって、RDPを介してのみユーザーアカウントにアクセスでき、sudoなしで試すと次のような結果が得られます。

$ apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)

問題を理解し解決するのに役立ちます。

答え1

bookwormアップグレード時にバージョンをスキップできないため、Debian 10にリポジトリを追加すること(=リリースされた場合はDebian 12になります)は悪い考えです。まず、Debian 11「bullseye」にアップグレードしてから、「bookworm」にアップグレードする必要があります。

幸いなことに、書き込みにはルートアクセスが必要なので、最初の試み(なしsudo)は失敗します。/etc/apt/sources.list

/usr/binあなたが覚えている2番目のコマンドのバージョンは、あなたがそれを実行するときにルートではないと仮定すると、大きな問題を引き起こすべきではありません。

sudo echo 'deb http://ftp.de.debian.org/debian bookworm main' >> sudo /etc/apt/sources.list

このコマンドは実際には、「root権限で標準出力に一重引用符で囲まれたテキストを書き、それを(通常のユーザーとして)現在のディレクトリの「sudo」というファイルに追加します(ファイルがない場合は生成)という意味です。そうでなければ、これは大きな害を与えません。

(成功的に)sudorootアクセス権を有効または無効にすると、他のパッケージ管理コマンドは使用できませんapt。これらのコマンドが機能するにはルートアクセスが必要なためです。

いくつかを確認することをお勧めします。

実際の状況はどうですか/etc/apt/sources.list

ジャンプしless /etc/apt/sources.listて確認してみてください。特別な権限なしで一般ユーザーとしてこれを行うことができる必要があります。

あなたは何をしましたか?実際にする?

history記憶に頼るのではなく、コマンドを使用してコマンド履歴を確認してください。

今何が起こっていますか?

コマンドを使用すると、実行してtype sudo実際に実行されている内容を確認できますsudo。通常、次のように応答する必要があります。

sudo is /usr/bin/sudo

おそらく

sudo is hashed (/usr/bin/sudo)

sudo何か違うことを教えてくれたら、$ PATHディレクトリの前に非標準的な名前があるか、/usr/binその名前でシェルエイリアスや関数を定義したのですが、sudo実際の名前の代わりに実行されていますsudo command

これが問題の場合は、単にではなくフルパスをsudo指定して実際のコマンドを使用できるようにする必要があります。/usr/bin/sudosudo


bookwormにリポジトリを正常に追加したようです/etc/apt/sources.list。パッケージもインストールされている場合は、unattended-upgradesシステムがDebian 10「buster」から「bookworm」(将来のDebian 12、まだベータ版)に直接アップグレードしようとした可能性があります。 Debian 11 をスキップします。 ...これはうまくいきません。

をインストールしようとすると、リポジトリを追加した後に多くの(すべてではない)システムライブラリのアップグレードをトリガするpython3-dev依存関係の連鎖が発生する可能性があります。python3.10-devlibpython3.10libpython3.10-devpython3.10bookworm

実際、あなたはフランケンデビアンを作成しました:異なるバージョンのパッケージを奇妙に組み合わせましたが、一緒に動作することを約束したことはありません。

/var/log/dpkg.log手動でも自動でも、すべての最近のパッケージ管理タスクを記録する必要がある低レベルのパッケージ管理ログ。一般ユーザーが読める必要があります。問題が始まったときに記録された内容を見ましたか?

各行はタイムスタンプで始まり、その後に特定のタスクを説明する単語が続きます。興味深い行には、installand / orなどのアクションワードが必要です。upgraderemovepurge

<none>作業ワードの後に​​は、パッケージ名、古いバージョン(または該当しない場合)、および新しいバージョン(または)が続く必要があります<none>

タイムスタンプのある行を取得する場合後ろにブックワームリポジトリを追加すると(修正時刻の確認)、この行はどのパッケージが交換されたかを正確に通知します。/etc/apt/sources.listおそらく。bookworm

残念ながら、システムへのRDPアクセス権しかないため、システムbusterブートローダにアクセスできる人の助けを借りずにrootアクセス権を取得し、パッケージを適切なバージョンに再ダウングレードすることはできません。

リカバリするには、外部メディアからシステムをリカバリモードで起動し、ネットワークインターフェイスを有効にして破損したchrootシステムにルートに入る必要があります。その後/var/log/dpkg.log、リポジトリを追加したり、その後にファイルにリストされているインストール/更新/削除操作を元に戻して、間違ってアップグレードされたパッケージをダウングレードする可能性がありますbookworm

関連情報