sudo
권한이 필요한 파일을 변경하기 위해 KomodoEdit을 사용하고 싶습니다 . 그러나 sudo
(어떤 이유로든) KomodoEdit을 시작할 수 없습니다 . 어떻게든 Komodo에게 이러한 파일을 편집할 수 있는 권한을 부여할 수 있습니까 /etc/hosts
? (특히 apache2 파일과 .
답변1
사용 sudoedit <file>
. 파일의 로컬 복사본을 만들고 사용자 권한으로 편집한 다음 원래 위치에 다시 복사합니다. 장점은 편집기가 일반 사용자로 실행된다는 것입니다.
기본값과 다른 편집기를 지정하려면 다음을 EDITOR
임시로 설정할 수 있습니다.
EDITOR=/usr/bin/someeditor sudoedit /etc/hosts
이를 위해서는 sudo
패키지를 설치하고 사용자를 sudo
그룹에 추가해야 합니다.
답변2
이론적으로는 komodoedit에 suid 비트를 설정하고 소유자를 루트로 변경하여 이를 수행할 수 있습니다.
sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit
할 수 있는 작업:
chown
소유자를 루트로 설정chmod u+s
파일을 실행하는 모든 사람에게 소유자(실행)와 동일한 권한을 부여합니다.
소유자를 루트로 설정했으므로 소유자를 효과적으로 실행하는 것은 루트가 됩니다.
이는 모든 사용자에게 유효한 루트 편집기를 부여하므로 원하는 답변이 아닐 수도 있습니다.
Marco가 언급했듯이 보안 측면에서는 sudoedit가 더 정확할 것입니다.
답변3
비교적 깔끔한 접근 방식은 특정 파일에 대한 사용자 ID 권한을 사용하는 것입니다.액세스 제어 목록. acl
명령 getfacl
과 를 얻으려면 패키지를 설치해야 할 수도 있습니다 setfacl
. 그런 다음 사용자 "myname"과 파일에 대해 /etc/hosts
다음 명령을 실행할 수 있습니다.
sudo setfacl -m 'u:myname:rw' /etc/hosts
그런 다음 파일을 읽고 쓸 수 있습니다. ls -l
파일을 보면 파일에 ACL이 있음을 나타내는 플래그가 표시 됩니다 +
.
-rw-r--r--+ 1 root root 221 Nov 5 16:55 /etc/hosts
getfacl
파일에 acl을 나열할 수 있습니다. 나중에 사용할 때 acl 삭제
sudo setfacl -x 'u:myname' /etc/hosts
아니면 setfacl -b
모든 ACL을 삭제하세요. (파일 시스템이 acl을 지원해야 합니다.)