루트 액세스 없이 내 프로그램에서 구성 파일을 작성할 수 있는 곳이 있습니까?

루트 액세스 없이 내 프로그램에서 구성 파일을 작성할 수 있는 곳이 있습니까?

저는 작은 유틸리티를 작성 중이고 어딘가에 구성 파일을 넣어야 합니다. 연구에 따르면 이는 /etcLinux의 표준 위치인 것 같습니다. 그러나 내가 겪고 있는 문제는 디렉토리에 쓰기 위해 기본적으로 루트 액세스가 필요한 것 같다는 것입니다.

내 프로그램을 호출하지 않고 작성할 수 있는 곳이 있나요 sudo? 예를 들어 Mac에서는 루트 액세스 없이도 어떻게든 작성이 homebrew가능한 것 같습니다 ./usr/local/bin

나는 거기에 물건을 넣을 수 있다는 것을 알고 있지만 /homeLinux에서 파일이 어디에 저장되어야 하는지 이해하기 위해 "올바른 방법"으로 일을 하려고 노력하고 있습니다.

답변1

올바른 방식으로 작업을 수행하려면 프로그램과 해당 구성 파일을 사용자가 편집할 수 없어야 합니다. 그렇지 않으면 표준 보안 모델이 깨집니다.

/usr/bin이는 사용자가 소유하므로 해당 구성이 사용자의 홈 디렉터리에 저장되거나 임의의 시스템 위치(예: , /usr/local/bin, ) 에 설치된 /opt/appname다음 구성이 다시 일부 시스템 위치(예: /etc, /usr/local/etc또는 /opt/appname/etc)에 저장됩니다.

답변2

애플리케이션에 특정한 하위 디렉터리(아마도 숨겨져 있음)를 사용해야 합니다. 예를 들어 .myApp버전 및 설치 로그도 포함될 수 있습니다. 이렇게 하면 정리와 같은 작업이 훨씬 쉬워집니다.

구성이 사용자 간에 공유되는 경우 "공유 공간"에서 일회성 sudo mkdir을 수행하고 해당 디렉터리에 관련 권한을 부여할 수 있습니다. 위의 수준에 쓸 수 없다는 것은 중요하지 않습니다.

사용자별 구성인 경우 .myApp설치 또는 처음 사용 시 애플리케이션이 사용자의 /home/username 아래에 생성됩니다.

Linux에는 공식 파일 시스템 계층 구조 표준이 있습니다.

관련 정보