루트가 쓰기 위해 파일을 열 수 없는 이유는 무엇입니까?

루트가 쓰기 위해 파일을 열 수 없는 이유는 무엇입니까?
[root@localhost ~]# vim /usr/lib64/sas12/smtpd.conf    
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level:3

:wq

에러 발생됨.

"/usr/lib64/sas12/smtpd.conf" E212: Can't open file for writing.  

루트가 쓰기 위해 파일을 열 수 없는 이유는 무엇입니까?

여기에 이미지 설명을 입력하세요.

답변1

다음 사항을 확인하세요./usr/lib64/sas12디렉토리가 이미 존재합니다:

root@host:~# ls /usr/lib64/sas12

그렇지 않은 경우 파일을 생성하기 전에 디렉터리를 생성해야 합니다.

root@host:~# mkdir -p /usr/lib64/sas12
root@host:~# vim /usr/lib64/sas12/smtpd.conf

이제 명령 vim이 예상대로 작동할 것입니다.

답변2

파일 시스템이 읽기 전용으로 마운트되었거나 이는 root권한 문제가 아니라 vim기능입니다. 다른 편집기를 사용하거나 파일 권한을 변경(예: root파일 소유자 설정)하고 파일을 편집한 다음 다시 변경하세요.

답변3

파일에 "+a" 속성이 설정된 경우 이 오류가 발생할 수 있습니다. 이 명령을 사용하면 chattr기존 파일을 추가할 수만 있고 삭제할 수는 없습니다.

server123:/tmp # chattr +a manish
server123:/tmp # lsattr manish
-----a---------- manish

답변4

동일한 위치에 스왑 파일이 존재하여 편집을 위해 잠겨 있는 경우 이러한 현상이 발생할 수 있습니다.

예를 들어 이 파일을 찾으십시오.

/usr/lib64/sas12/.smtpd.conf.swp

파일이 있으면 편집할 수 없습니다. 삭제한 다음 편집해 보세요. 제대로 작동할 것입니다.

관련 정보