私のオペレーティングシステム: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
答え1
-fフラグを試してください
sudo chattr -f +i /etc/resolv.conf
答え2
あなたは/etc/resolv.conf
おそらくシンボリックリンクです。バラよりこの説明より多くの情報を知りたいです。
あなたは試すことができます:
chattr +i "$(realpath /etc/resolv.conf)"
ルートマウントポイントはサポートされていますか?アクセス制御リスト(acl) または拡張属性?
確認方法:
findmnt -fn / | grep -E "acl|user_xattr" || echo "acl or user_xattr mount option not set for mountpoint /"
ルートパーティションタイプは「VFAT」ですか? 「VFAT」はサポートされていないようです。ACL。
確認方法:
findmnt -fn / | grep vfat
または、シンボリックリンクターゲットディレクトリ一時ファイルシステム? ACLで迷子になった一時ファイルシステム
テストを受けてください:
findmnt -fn $(dirname $(realpath /etc/resolv.conf)) | grep tmpfs && echo $(dirname $(realpath /etc/resolv.conf)) is tmpfs
乾杯
答え3
ご覧のとおり、chattr
シンボリックリンクにはプロパティを設定できないようです。しかも彼らはtmpfs
入っています。これはマニュアルページchattr
話す
すべてのファイルシステムですべてのフラグがサポートまたは使用されるわけではありません。ファイルシステムの詳細については、などのファイルシステムに関するマニュアルページを
btrfs(5)
参照ext4(5)
してくださいxfs(5)
。
そして不変フラグchattr
私tmpfs(5)
。
ACL または拡張属性はこれとは関係がなく、属性は次のchattr
ように inode に直接格納されます。ext4
この inode 構造テーブル。
プログラムが変更されるのを防ぐための別の方法を見つける必要があります。systemd-resolved
ファイルを無視するのに十分スマートです。シンボリックリンクを静的ファイルに置き換える場合:
3つの処理モードがサポートされています
/etc/resolv.conf
(参照):resolv.conf(5)
· または
/etc/resolv.conf
他のパッケージで管理することもできます。その場合、対応するsystemd-resolved
DNS設定データが読み込まれます。この動作モードでは、プロファイルはプロバイダではsystemd-resolved
なく消費者です。このファイルに選択されている作業モードは、
/etc/resolv.conf
DNSサーバーへのシンボリックリンクかDNSサーバー/run/systemd/resolve/resolv.conf
としてリストされているかに基づいて完全に自動検出されます。127.0.0.53
これを変更できる他のプログラム(DHCPクライアントなど)がある場合は、そのプログラムを再構成することを検討する必要があります。または、シンボリックリンクではなくchattr +i /etc/resolv.conf
静的ファイルに設定した後に書き込みを試みるたびに発生するエラーが気に入らない可能性があることに注意してください。
答え4
Chattrの標準構文は、ライブCDまたはUSB Linuxインストールで起動し、ハードドライブからresolv.confを検索することで実装できます。