우분투 14.04 LTS를 사용하고 있습니다. 가끔 다른 사용자 계정에서 사용할 수 있도록 일부 앱(예: xxx
) 을 /opt
폴더에 복사합니다. 그런 다음 시작하려면 다음을 사용합니다.
sudo /opt/xxx_folder/xxx
(물론 링크 /usr/local/bin
등 /usr/bin
으로) 시작합니다.
문제: 내 애플리케이션의 결과/프로젝트를 내 로컬 폴더(예: /home/myuser/xxx_data
)에 저장합니다. 물론 폴더와 해당 데이터는 xxx_data
에 속합니다 root
( 에는 속하지 않습니다 myuser
). 그래서 매번 다른 애플리케이션을 사용하고 싶을 때마다( root
.
질문:루트로 시작할 필요가 없도록 xxx
응용 프로그램을 설치하는 방법이 있습니까 ?/opt
또는어쩌면 이 "근본 문제"를 해결하는 다른 방법을 찾을 수 있을까요?
답변1
에 복사만 하셔도 디렉토리와 실행파일 /opt
만 있으면 chmod 755
누구나 실행이 가능합니다. 출력의 경우, 좋은 접근 방식은 폴더를 특정 그룹이 소유하도록 만들고 xxx_data
다음과 같이 해당 그룹을 수정할 수 있어야 하는 사용자를 해당 그룹에 추가하는 것입니다(루트로 실행).
groupadd xxx_data
chown root:xxx_data /path/to/folder
chmod 770 xxx_data /path/to/folder
usermod -aG xxx_data <username> #Repeat for each user
chmod 755
또한 홈 디렉터리에서 실행하거나 xxx_data
다른 곳으로 이동 해야 합니다 .
권한을 업데이트하려면 로그아웃했다가 다시 로그인해야 할 수도 있습니다.
답변2
apt-get(또는 aptitude)을 통해 설치된 프로그램은 거의 항상 /usr에 올바르게 위치합니다. 그러나 소스에서 컴파일되어 설치된 프로그램은 일반적으로 /usr/local/bin, /usr/local/lib 등에 나타나며 Debian/Ubuntu의 사용자 설치 경로가 /usr 대신 /usr이기 때문에 문제가 발생할 수 있습니다. /현지의.
소스에서 컴파일할 때 이 스위치를 구성에 추가합니다: ./configure --prefix=/opt. 이렇게 하면 설치를 수행할 때 파일이 올바른 디렉토리에 있게 됩니다.