「/etc/resolv.conf」に「chattr +i」を設定するには?

「/etc/resolv.conf」に「chattr +i」を設定するには?

私のオペレーティングシステム: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

  1. /dev/sda1Windowsの場合は空です。

  2. 私の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% /
    
  3. 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   
    
  4. 次の 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)

そして不変フラグchattrtmpfs(5)

ACL または拡張属性はこれとは関係がなく、属性は次のchattrように inode に直接格納されます。ext4この inode 構造テーブル


プログラムが変更されるのを防ぐための別の方法を見つける必要があります。systemd-resolvedファイルを無視するのに十分スマートです。シンボリックリンクを静的ファイルに置き換える場合:

3つの処理モードがサポートされています/etc/resolv.conf(参照):resolv.conf(5)

· または/etc/resolv.conf他のパッケージで管理することもできます。その場合、対応するsystemd-resolvedDNS設定データが読み込まれます。この動作モードでは、プロファイルはプロバイダではsystemd-resolvedなく消費者です。

このファイルに選択されている作業モードは、/etc/resolv.confDNSサーバーへのシンボリックリンクかDNSサーバー/run/systemd/resolve/resolv.confとしてリストされているかに基づいて完全に自動検出されます。127.0.0.53

これを変更できる他のプログラム(DHCPクライアントなど)がある場合は、そのプログラムを再構成することを検討する必要があります。または、シンボリックリンクではなくchattr +i /etc/resolv.conf静的ファイルに設定した後に書き込みを試みるたびに発生するエラーが気に入らない可能性があることに注意してください。

答え4

Chattrの標準構文は、ライブCDまたはUSB Linuxインストールで起動し、ハードドライブからresolv.confを検索することで実装できます。

関連情報