web-dev-qa-db-ja.com

Sudoコマンドを使用している場合でも「Permission denied」を取得する

/etc/apt/sources.list.dフォルダーにファイルを追加しようとしていますが、何らかの理由で、Sudoを使用しているにもかかわらず、許可が拒否されたと表示されます。これが私が実行しようとしているコードです。

$ Sudo cat >> /etc/apt/sources.list

また、単にgeditを使用してみましたが、それも機能しません。

8

ルートとしてcatコマンドを実行していますが、出力リダイレクトは通常のユーザーアカウントとして実行される現在のシェルで実行されます。

aptソースに行を追加するという目標を達成するには、少なくとも3つのオプションがあります。

  • 個別のBashルートシェルでの出力リダイレクトを含むコマンド全体の実行:

    Sudo bash -c 'cat >> /etc/apt/sources.list'
    
  • 出力をファイルにコピーするteeコマンド(既存のファイルを上書きする代わりに追加する-aオプション)を使用し、それをrootとして実行します。

    cat | Sudo tee -a /etc/apt/sources.list
    
  • nanoなどのターミナルエディタアプリケーションをルートとして使用して、ファイルを変更します。

    Sudo nano /etc/apt/sources.list
    

ただし、/etc/apt/sources.listファイルをそのままにして、*.list内に新しい/etc/apt/sources.list.d/ファイルを作成してソースを追加することをお勧めします。

16
Byte Commander