私のOS:debian9。
私のディスク上のファイルシステム:
$ Sudo blkid | awk '{print $1 ,$3}'
/dev/sda2: TYPE="ext4"
/dev/sda1: TYPE="vfat"
/dev/sda3: TYPE="ext4"
/dev/sda4: TYPE="ext4"
/dev/sda5: TYPE="swap"
chattr +i
を/etc/resolv.conf
に追加するには:
Sudo chattr +i /etc/resolv.conf
chattr: Operation not supported while reading flags on /etc/resolv.conf
ls -al /etc/resolv.conf
lrwxrwxrwx 1 root root 31 Jan 8 15:08 /etc/resolv.conf -> /etc/resolvconf/run/resolv.conf
Sudo mount -o remount,acl /
Sudo chattr +i /etc/resolvconf/run/resolv.conf
chattr: Inappropriate ioctl for device while reading flags on /etc/resolvconf/run/resolv.conf
chattr +i
を/etc/resolve.conf
に設定する方法
/dev/sda1
は、Windowsでは空です。
私のdebianは/dev/sda2
にインストールされています
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1948840 0 1948840 0% /dev
tmpfs 392020 5848 386172 2% /run
/dev/sda2 95596964 49052804 41644988 55% /
acl
がインストールされています。
$ dpkg -l acl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii acl 2.2.52-3+b1 AMD64 Access control list utilities
これらのfindmntコマンドからの出力情報はありません:
Sudo findmnt -fn / | grep -E "acl|user_xattr"
Sudo findmnt -fn / | grep vfat
Sudo findmnt -fn $(dirname $(realpath /etc/resolv.conf)) | grep tmpfs
きみの /etc/resolv.conf
はおそらくシンボリックリンクです。詳細は この説明 を参照してください。
あなたは試すことができます:
chattr +i "$(realpath /etc/resolv.conf)"
ルートマウントポイントはAccess Control Lists(acl)またはExtended Attributesをサポートしていますか? ?
それを介してそれを確認してください:
findmnt -fn / | grep -E "acl|user_xattr" || echo "acl or user_xattr mount option not set for mountpoint /"
ルートパーティションのタイプは「VFAT」ですか? 「VFAT」はACLsをサポートしていないと思います。
それを介してそれを確認してください:
findmnt -fn / | grep vfat
または、シンボリックリンクのターゲットディレクトリはtmpfsですか? ACLがtmpfsで失われる
試して:
findmnt -fn $(dirname $(realpath /etc/resolv.conf)) | grep tmpfs && echo $(dirname $(realpath /etc/resolv.conf)) is tmpfs
乾杯
ご覧のとおり、シンボリックリンクにchattr
属性を設定できないようです。また、tmpfs
ではサポートされていません。 chattr
のマニュアルページ は、
すべてのフラグがすべてのファイルシステムでサポートまたは利用されるわけではありません。ファイルシステム固有の詳細については、
btrfs(5)
、ext4(5)
、xfs(5)
などのファイルシステム固有のmanページを参照してください。
そして、不変のフラグやtmpfs(5)
のchattr
についての言及はありません。
ACLまたは拡張属性はこれとは関係ありません。chattr
属性は、ext4
の inode構造のこのテーブル に見られるように、iノードに直接格納されます。
プログラムによる変更を防ぐために、他の方法を見つける必要があります。 systemd-resolved
は、ファイルをそのままにするのに十分スマートでなければなりません シンボリックリンクを静的ファイルに置き換える場合:
/etc/resolv.conf
(resolv.conf(5)
を参照)を処理する3つのモードがサポートされています。・または、
/etc/resolv.conf
は他のパッケージによって管理される場合があります。その場合、systemd-resolved
はDNS構成データを読み取るためにそれを読み取ります。この操作モードでは、systemd-resolved
はこの構成ファイルのプロバイダーではなくコンシューマーです。このファイルに対して選択された操作モードは、
/etc/resolv.conf
が/run/systemd/resolve/resolv.conf
へのシンボリックリンクであるか、127.0.0.53
をDNSサーバーとしてリストしているかに応じて、完全に自動的に検出されることに注意してください。
それを変更する可能性のある他のプログラム(DHCPクライアントなど)がある場合は、それらの再構成について確認する必要があります。または、それをシンボリックリンクではなく静的ファイルにした後のchattr +i /etc/resolv.conf
ですが、それを書き込もうとすると、結果のエラーが気に入らない場合があることに注意してください。
Sudo rm /etc/resolv.conf //remove the symlink
Sudo nano /etc/resolv.conf //create the new file and populate it as you wish
Sudo chattr +i /etc/resolv.conf //change its attributes as you wish.....
-fフラグで試してください
Sudo chattr -f +i /etc/resolv.conf