![루트 액세스 없이 내 프로그램에서 구성 파일을 작성할 수 있는 곳이 있습니까?](https://linux55.com/image/178589/%EB%A3%A8%ED%8A%B8%20%EC%95%A1%EC%84%B8%EC%8A%A4%20%EC%97%86%EC%9D%B4%20%EB%82%B4%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C%20%EA%B5%AC%EC%84%B1%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9E%91%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EA%B3%B3%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
저는 작은 유틸리티를 작성 중이고 어딘가에 구성 파일을 넣어야 합니다. 연구에 따르면 이는 /etc
Linux의 표준 위치인 것 같습니다. 그러나 내가 겪고 있는 문제는 디렉토리에 쓰기 위해 기본적으로 루트 액세스가 필요한 것 같다는 것입니다.
내 프로그램을 호출하지 않고 작성할 수 있는 곳이 있나요 sudo
? 예를 들어 Mac에서는 루트 액세스 없이도 어떻게든 작성이 homebrew
가능한 것 같습니다 ./usr/local/bin
나는 거기에 물건을 넣을 수 있다는 것을 알고 있지만 /home
Linux에서 파일이 어디에 저장되어야 하는지 이해하기 위해 "올바른 방법"으로 일을 하려고 노력하고 있습니다.
답변1
올바른 방식으로 작업을 수행하려면 프로그램과 해당 구성 파일을 사용자가 편집할 수 없어야 합니다. 그렇지 않으면 표준 보안 모델이 깨집니다.
/usr/bin
이는 사용자가 소유하므로 해당 구성이 사용자의 홈 디렉터리에 저장되거나 임의의 시스템 위치(예: , /usr/local/bin
, ) 에 설치된 /opt/appname
다음 구성이 다시 일부 시스템 위치(예: /etc
, /usr/local/etc
또는 /opt/appname/etc
)에 저장됩니다.
답변2
애플리케이션에 특정한 하위 디렉터리(아마도 숨겨져 있음)를 사용해야 합니다. 예를 들어 .myApp
버전 및 설치 로그도 포함될 수 있습니다. 이렇게 하면 정리와 같은 작업이 훨씬 쉬워집니다.
구성이 사용자 간에 공유되는 경우 "공유 공간"에서 일회성 sudo mkdir을 수행하고 해당 디렉터리에 관련 권한을 부여할 수 있습니다. 위의 수준에 쓸 수 없다는 것은 중요하지 않습니다.
사용자별 구성인 경우 .myApp
설치 또는 처음 사용 시 애플리케이션이 사용자의 /home/username 아래에 생성됩니다.
Linux에는 공식 파일 시스템 계층 구조 표준이 있습니다.