권한 이 필요한 파일을 KomodoEdit으로 변경하고 싶습니다 sudo
. sudo
하지만 (어떤 이유로든) 로 KomodoEdit을 시작할 수 없습니다 . 어떻게든 Komodo에 해당 파일을 편집할 수 있는 권한을 부여할 수 있습니까? (특히 apache2 파일과 에 대해 이야기하고 있습니다. /etc/hosts
)
답변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을 지원해야 합니다.)