システム構成ファイルを編集する権限を取得するにはどうすればよいですか?


47

ルートシステムで構成ファイルを編集して保存できないようです(例:)/etc/dhcp/dhcpd.config。「許可が拒否されました」と表示されるか、テキストエディタで保存オプションがブロックされます。

私はrootユーザーだと確信していますが、どうすれば確認できますか?ルートユーザーの場合、これを修正するにはどうすればよいですか?

回答:


42

どのテキストエディターを使用していますか?あなたがrootユーザーであり、パスワードを知っている場合は、(端末で)次のいずれかを試してください。

  • sudoedit /etc/dhcp/dhcpd.confignanoまたはなどのターミナルベースのエディターを使用している場合。
  • gksudo <text editor here> /etc/dhcp/dhcpd.config 次のようなGUIベースのエディターを使用している場合 gedit

どちらの場合でも、要求されたときに最初にルートパスワードを提供する必要があります。

Ubuntu 14.04以降でgksudoは、デフォルトではインストールされません。gksuパッケージsudo apt-get install gksuを取得するには、パッケージをインストールする必要があります(Software Centerから、または経由で)。

Ubuntu 17.10では、従来のXサーバーの代わりにWaylandがデフォルトであり、グラフィカルエディターをルートとして実行することは困難です。Waylandでgksu / gksudoを使用したり、sudoを使用してグラフィカルアプリケーションを起動したりしない理由をご覧ください詳細については。

Ubuntu 18.04ではgksudo、公式リポジトリでは利用できません。sudo -H <text editor>代わりに、またはプロトコルを使用admin://ます

gedit admin:///etc/dhcp/dhcpd.config

15

ターミナルを使用したくない場合は、GUIプログラムをルートとして呼び出すことができます(この例はGedit用です)。

  1. ヒットAlt+は、F2ファイル名を指定して実行]ダイアログボックスを表示します。
  2. タイプgksudo(GUIで表示される名前と異なる場合があります)あなたのプログラムの実行可能ファイル名が続きます。例えば:

    gksudo gedit
    
  3. ヒットEnter

10

rootが取得するケースは考えられませんpermission denied

12.04では、次のように行うことができます: alt+ f2そしてgksudo、次のようなボックスに入力します。

F2ダイアログ

次のようなボックスが表示されたら、入力geditしてクリックしますok

実行ダイアログにgeditと入力します

クリックOpen

gedit内でタブを開く

ファイルを参照するだけです:

ファイルを開くダイアログ

完了

警告:理由により、スーパーユーザー/ルートが存在します。誤って重要なものに誤って何か悪いものや構造から外れたものを入れないようにするためです。ルートとして編集するものはすべて、編集しようとしている正しいファイルであり、構文が完璧であることを非常に注意する必要があります。他のツールを編集に使用できる場合は、それらを使用することをお勧めします。たとえば、手動で編集する代わりに、visudo terminalコマンドを使用します/etc/sudoers

混乱する可能性のあるファイルは、簡単に回復できます。その他は比較的複雑であるか、回復コンソールと多くのコマンドラインを使用する必要があります。

はい、回復コンソールのコマンドラインはこれよりも少し怖いようです。注意してください。


13.04以降ではこれを更新する必要がある場合があります。gksu / gksudoに関連するいくつかの事項が変更されました(回答に当てはまるかどうかはわかりません)。
セス

私の理解では、sudoはDISPLAY環境変数を魔法のようにエクスポートし、gksu / gksudoはなくなっているかなくなっています。まだチェックしていません。
RobotHumans 14年

rootファイルを使用してファイルが不変に設定されているchattr場合、またはディスクが読み取り専用である場合は、許可を拒否できます。
チャイT.レックス

6

現在のシェルがルートとして実行されているかどうかをいくつかの異なる方法でテストできます

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

他の答えはルート権限にエスカレートする良い方法を与えるので、私はそれらを繰り返しません。仮定すると、あなたはあるルートとあなたはまだファイルを編集することはできません/etc/dhcp/dhcpd.config-そして、非常におそらく誰かまたはいくつかのプログラムが使用しているchattrファイルの不変を作るためのプログラムを。

chattrはマニュアルページ

「i」属性を持つファイルは変更できません。削除または名前変更することはできません。このファイルへのリンクを作成することも、ファイルにデータを書き込むこともできません。CAP_LINUX_IMMUTABLEこの属性を設定またはクリアできるのは、スーパーユーザーまたは機能を所有するプロセスのみです。

を使用して調べることができます lsattr

lsattr /etc/dhcp/dhcpd.config

確かに不変の場合は、次のようにオフにすることができます。

chattr -i /etc/dhcp/dhcpd.config

3

あなたが使用している場合のUbuntu 17.04以降を、使用することをお勧めしますGVFS管理バックエンドをテキストエディターファイルadmin://アプリなどのアプリで開く完全なファイルパスの先頭に追加するだけです

たとえば、起動設定を変更するには、開く

admin:///etc/default/grub

デフォルトウェイランドでのUbuntu 17.10を使用して、している場合sudogksu、ここで古いの回答で述べたようになるではない仕事。


2

お気に入りのテキストエディターを使用する

環境変数1を使用して、お気に入りの(グラフィカル!)テキストエディターでsudo -eまたはそのエイリアスsudoeditを使用できます。VISUAL

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

これは

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

もちろん、あなたは、例えば、あなたが好きなことを、他のエディタを使用することができleafpadkateまたはsubl

一部のエディターは、現在実行中のインスタンスであっても、常に新しいインスタンスを開始するコマンドラインオプションを提供します。sudoedit編集されたファイルに変更を適用するためにエディタープロセスが終了するのを待つので、同じエディターの他のインスタンスが実行されている場合、これが必要になる場合があります。

  • GEditを使用する場合VISUAL='gedit -s'
  • ケイト用VISUAL='kate -n'

長所

  • 追加のアプリケーションや非推奨のアプリケーションは必要ありません。
  • pkexec(この場合、ファイルを編集する必要がある…スーパーユーザーとして、この答えが解決しようとしている正確なこと)のようなセキュリティポリシーの変更を必要としません。
  • 昇格された特権を持つ潜在的に安全でないアプリケーションの実行を必要としません。
  • 現在のユーザーのアプリケーション構成を使用しますが、などの構成ファイルのアクセス許可を台無しにしますsudo -H
  • ユーザーのユーザーアプリケーションの構成データにフォールバックしません。ユーザーの構成データは、root容認できるように見える場合とそうでない場合があります。

欠点

  • 短い新しいコマンドを学ぶ必要があります。

1 EDITORまたはSUDO_EDITOR動作しますが、優先度が低いか、より専門的です。詳細については、マニュアルページを参照してください。


0

安全にバックアップcp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup するにはgksu gedit /etc/dhcp/dhcpd.config

geditお好みのエディターに置き換えます

このようなプロンプトが表示されます

パスワードプロンプト

ここにパスワードを入力してください。

新しいウィンドウが開き、そこで設定を編集できます。

問題が発生した場合は、ホームフォルダーのバックアップから復元できます。

Linuxが許可を処理する方法が原因で、「許可が拒否されました」。

中に何か$HOME他にはほとんど何もルートに属しているのに対し、フォルダには、利用者に属します。

/etc/dhcp/dhcpd.confあなたがアクセスしようとしているファイルは、ルートに属し、ほとんどのファイルにおける/etc/セキュリティ上の理由から、デフォルトでルートに属します。

アクセス許可を上げることで、このファイルを編集できます。

これを行うには、いくつかの方法があります。

  • 使用suスイッチユーザーの略です。属性がなければ、rootアカウントに切り替えるコマンドとして機能しますが、切り替え先のユーザーのパスワードを入力する必要があります。また、Ubuntuではrootがデフォルトでパスワードを持たないため(rootアカウントを事実上無効にします) 、これはお勧めできませんが、rootのパスワードを設定しないと機能しません。

  • sudowhich を使用すると、1つのコマンドのみの許可が高くなります。これは通常vimnanoなどのCLIテキストエディターなどのコマンドラインアプリでのみ使用されます

  • gksuwhich を使用すると、1つのコマンドのみのアクセス許可が高くなりますがsudo、GUIなどのGUIテキストエディターなどのグラフィカルプログラムでは使用されませんgedit。グラフィカルプロンプトを使用して、パスワードの入力を容易にします。


0
sudo < editor > < filelocation >

例えば:

sudo -H gedit etc/dhcp/dhcpd.config
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.