"/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. 내 데비안이 설치되어 있습니다/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파일을 무시할 만큼 똑똑해야 합니다기호 링크를 정적 파일로 바꾸는 경우:

세 가지 처리 모드가 지원됩니다 /etc/resolv.conf(참조):resolv.conf(5)

· 또는 /etc/resolv.conf다른 패키지에 의해 관리될 수도 있으며, 이 경우 systemd-resolved해당 DNS 구성 데이터가 읽혀집니다. 이 작동 모드에서 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를 검색하여 구현할 수 있습니다.

관련 정보