
/etc/sudoersファイルの権限を見ると、次のようになっています
-r--r----- 1 root root 705 Nov 2 19:57 /etc/sudoers
さて、これは書き込み可能ではないということではないでしょうか? では、root ユーザーはどうやって書き込みを行うのでしょうか?
答え1
ルート ユーザーは、モードに関係なく、常にすべてのファイルへの完全な書き込みアクセス権を持ちます。
おそらく最も良い例は です/etc/shadow
。これはモード 000 ですが、もちろんルートによって変更できます。
[root@centos7 ~]# ls -pl /etc/shadow
----------. 1 root root 1353 Oct 26 07:40 /etc/shadow
答え2
コメントに書かれているように、元の回答は少々不明瞭でした。
ファイルの所有者は、自分が所有するファイルの権限をいつでも変更できます (一方、root は既存のすべてのファイルに対してこれを行うことができます)。
通常ユーザーの場合は、読み取り専用ファイルを変更する方法によって異なります。
- vi でファイルを開いて変更します -> 「:w!」で変更を書き込むことができます。
- try #echo "test" >> read-only-file 権限が拒否されました。
ルート ユーザーの場合は、任意のファイルを上書きしたり変更したりできますが、プログラム vi は読み取り専用権限を考慮し、確認を求めます。
ファイル /etc/sudoers は、常に「visudo」コマンドで変更する必要があります。このコマンドは、実際のファイルの内容を一時ファイルで開き、変更を保存する前にいくつかのチェックを行います。root ユーザーの場合は、読み取り専用権限にもかかわらず、変更を書き込むことができます。
答え3
viの代わりにvisudoを使ってみてください
sudo visudo