이 장에서는 Sun Desktop Manager 명령줄 인터페이스에 대해 소개합니다.
CLI는 구성 프로필 만들기, 조작, 내보내기, 가져오기 및 삭제에 사용됩니다. Desktop Manager GUI와 마찬가지로 CLI를 사용하여 다음 작업을 수행할 수 있습니다.
프로필을 요소에 지정하거나 요소에서 지정 취소할 수 있습니다.
XML 형식의 프로필을 zip 파일로 내보내거나 zip 파일에서 가져올 수 있습니다. 이렇게 하면 프로필을 가져오기 전에 이 zip 파일의 프로필 설정을 만들거나 편집하거나 삭제할 수 있습니다.
CLI는 다음 기능의 경우 GUI와 동등한 기능을 제공하지 않습니다.
요소 계층 탐색
요소에 대해 병합된 프로필 설정 보기
보고서 생성
파일 기반 또는 하이브리드 백엔드에 액세스하고 LDAP 백엔드에 대해서만 액세스를 제공합니다.
CLI는 한 번에 하나씩 명령을 실행하는 한 줄로 된 명령 모드에서 작동하는 pgtool 명령으로 구성됩니다. pgtool에는 명령 요약에서 설명하는 여러 가지 하위 명령과 옵션, 피연산자가 포함되어 있습니다. 옵션은 전체 키워드 또는 짧은 키워드를 사용하여 지정할 수 있습니다. 다음 명령 설명에서는 전체 키워드가 사용되었지만, 표 3–2에서 각 명령에 해당하는 바로 가기를 참조할 수 있습니다.
요소 및 프로필이 포함된 데이터 저장소를 찾고 조회하려면 부트스트랩 정보가 있어야 합니다. 필요한 부트스트랩 정보는 서버, 포트 번호, 기본 고유 이름(DN) 및 관리자의 사용자 이름입니다. 이 정보는 명령줄 또는 부트스트랩 파일에서 지정할 수 있습니다.
등록 정보 파일에서 부트스트랩 정보를 읽을 수 있습니다. 이 파일의 위치는 명령줄에서 --file 옵션을 사용하여 지정할 수 있습니다.
--file=<bootstrap file> : 부트스트랩 파일의 정규화된 경로입니다. 기본 파일은 $HOME/pgtool.properties입니다.
예: --file=/var/opt/apoc/cli.properties
파일 형식에 대해서는 Sun Desktop Manager 1.0 설치 설명서의 부록 A, 구성 매개 변수에서 설명합니다.
부트스트랩은 명령줄에서 --url 및 --username 옵션을 사용하여 지정할 수 있습니다.
--url=<url> : 데이터 저장소를 식별하는 URL. URL 형식은 ldap://<hostname>:<port>/<base name>으로, <hostname>은 서버 이름(기본값은 localhost), <port>는 서버의 포트 번호(기본값은 389), <base name>은 기본 항목의 고유 이름입니다.
예: --url=ldap://server1.sun.com:399/o=apoc
--username=<username> : 저장소 백엔드에 사용된 형식으로 된 관리자의 사용자 이름. 그러면 관리자에게 암호를 묻는 메시지가 나타납니다. 이 옵션을 사용하지 않는 경우 관리자가 pgtool login 하위 명령을 사용하지 않으면 사용자 이름과 암호를 묻는 메시지가 나타납니다.
예: --username=“jmonroe”.
명령을 실행할 때마다 사용자 이름 및 암호가 필요합니다.
CLI는 사용자 이름/암호를 관리자 홈 디렉토리의 자격 증명 파일에 저장할 수 있도록 login 명령을 제공합니다. 이 파일의 이름은 .apocpass입니다. .apocpass 파일은 액세스가 제한됩니다.
인증에 성공하면 사용자 이름/암호 쌍 항목이 .apocpass 파일에 추가됩니다. 이 쌍의 키는 서버/포트/기본 DN과 사용자 이름으로 구성되어 있으므로 동일한 파일 내의 다른 백엔드에 대해 사용자 이름/암호 쌍을 저장할 수 있습니다.
login 명령이 성공하면 사용자 이름이나 암호를 지정하지 않고 다른 CLI 명령을 실행할 수 있습니다.
login 명령을 사용하는 방법에 대한 자세한 내용은 로그인을 참조하십시오.
다른 명령의 경우 CLI는 먼저 현재 사용자에 대해 .apocpass 파일이 있는지 확인합니다.
파일이 없으면 사용자 이름과 암호를 입력하라는 메시지가 나타납니다. 이 사용자 이름과 암호가 성공적으로 인증되면 명령이 실행됩니다.
자격 증명 파일이 있을 때 명령줄에 사용자 이름을 지정하면 CLI는 호스트, 포트, 기본 DN 및 사용자 이름에 대한 항목을 찾습니다. 항목이 있으면 저장된 사용자 DN 및 암호를 사용하여 명령이 실행되고 그렇지 않으면 암호를 입력하라는 메시지가 나타납니다.
명령줄에 사용자 이름을 지정하지 않으면 호스트/포트 및 기본 DN 조합을 사용하여 .apocpass 파일에서 키를 검색합니다. 이 조합에 대한 고유한 항목이 있으면 저장된 사용자 DN 및 암호를 사용하여 명령을 실행합니다. 항목이 고유하지 않으면 사용자 이름을 입력하라는 메시지가 나타납니다. 항목과 일치하면 저장된 사용자 DN과 암호가 명령 실행에 사용됩니다. 일치하지 않으면 암호를 입력하라는 메시지가 나타납니다.
암호를 묻는 메시지에서 이 호스트/포트/기본 DN 조합에 대한 .apocpass 파일의 항목이 사용자 이름과 암호의 인증에 사용됩니다. 이러한 항목이 없으면 익명 액세스가 인증에 사용됩니다.
명령을 사용할 때마다 데이터 저장소에 대한 연결이 만들어져서 초기화된 다음, 명령이 실행된 후 종료됩니다. 명령이 error와 함께 종료되면 구성 프로필에 변경 사항이 적용되지 않습니다.
요소는 LDAP 전체 고유 이름(DN)을 사용하여 표시됩니다.
예: uid=jmonroe,ou=People,o=apoc
이 절에서는 Desktop Manager CLI 기능의 하위 명령에 대해 설명합니다.
CLI는 이전 버전과의 호환성을 위해 --entity 옵션을 사용하여 Desktop Manager 사용자 인터페이스에서 현재 "요소"라고 부르는 항목을 지정합니다. 이 용어는 바꿀 수 있습니다. --element 옵션은 없습니다.
사용 가능한 모든 CLI 명령의 목록을 보려면 pgtool --help를 입력합니다.
버전 정보를 표시하려면 pgtool --version을 입력합니다.
요소에 프로필을 지정합니다.
구문
add [--scope=<user|host>] [--entity=<entity>] <profile name> <target entity>
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
<profile name> : 요소에 지정할 프로필의 이름입니다. 이 이름과 이 범위의 프로필이 이 레이어에 없거나 둘 이상 있는 경우 명령은 오류와 함께 종료됩니다.
<target entity> : 프로필이 지정될 요소입니다.
% pgtool add UserProfile1 cn=Role1,o=staff,o=apoc
루트 조직에 있는 “UserProfile1” 프로필이 “cn=Role1,o=staff,o=apoc” 요소에 지정되었습니다.
비어 있는 새 프로필을 만듭니다.
구문
create [--name=<profile name>] [--scope=<user|host>] [--entity=<entity>] [--priority=<priority>]
--name=<profile name> : 만들 프로필의 이름입니다. 이 이름과 이 범위의 프로필이 이미 이 레이어에 있으면 명령은 오류와 함께 종료됩니다. 지정하지 않으면 명령은 계열(예: “NewProfile”, “NewProfile2”, “NewProfile3”, ...)에서 사용 가능한 첫 번째 프로필 이름을 기본값으로 사용합니다.
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 명령은 사용자 범위를 기본값으로 사용합니다.
--entity=<entity> : 프로필이 만들어지는 요소입니다. 지정하지 않으면 명령은 --scope 옵션에 따라 루트 조직 또는 도메인 요소를 기본값으로 사용합니다.
--priority=<priority> : 프로필의 우선 순위를 지정하는 양의 정수입니다. 지정된 우선 순위가 이 레이어에서 이 범위의 기존 프로필 우선 순위와 같은 경우 priority 옵션이 무시됩니다. 지정하지 않으면 만든 프로필이 이 레이어에서 우선 순위가 가장 높습니다.
% pgtool create --scope=host --name=NewHostProfile1
도메인 루트에서 이름이 “NewHostProfile1”이고 범위가 “host”인 새 프로필을 만듭니다.
프로필을 삭제합니다.
구문
delete --name=<profile name> [--scope=<user|host>] [--entity=<entity>]
--name=<profile name> : 삭제할 프로필의 이름입니다. 이 옵션은 필수 항목입니다. 이 이름과 이 범위의 프로필이 이 레이어에 없거나 둘 이상 있는 경우 명령은 오류와 함께 종료됩니다.
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
% pgtool delete --scope=host --name=renamedNewHostProfile1
루트 도메인에 있는 “renamedNewHostProfile1” 프로필을 삭제했습니다.
프로필에 포함된 프로필을 지정된 대상에 zip 파일 형식으로 내보냅니다.
구문
export --name=<profile name> [--scope=<user|host>] [--entity=<entity>] <target>
--name=<profile name> : 내보낼 프로필의 이름입니다. 이 옵션은 필수 항목입니다. 이 이름과 이 범위의 프로필이 이 레이어에 없거나 둘 이상 있는 경우 명령은 오류와 함께 종료됩니다.
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
<target> : 프로필을 내보낼 zip 파일의 전체 경로입니다. 경로에 파일 이름을 지정하지 않으면 파일 이름 <profile name>.zip이 기본값으로 사용됩니다. 대상이 쓰기 가능한 상태가 아니면 해당 명령은 오류와 함께 종료됩니다.
% pgtool export --scope=host --name=HostProfile1 /tmp/newdir
루트 도메인에 있는 “HostProfile1”을 새 디렉토리 /tmp/newdir에서 만든 HostProfile1.zip으로 내보냈습니다.
지정된 소스에서 zip 파일 형식으로 저장된 프로필을 가져옵니다. 소스에는 프로필로 가져올 프로필이 포함되어 있습니다.
구문
import [--name=<profile name>] [--scope=<user|host>] [--entity=<entity>] [--priority=<priority>] <source>
--name=<profile name> : 가져올 프로필의 이름입니다. 지정하지 않으면 .zip 소스 파일의 이름이 기본값으로 사용됩니다. 이 이름과 범위의 프로필이 이미 이 레이어에 있으면 해당 프로필을 덮어씁니다.
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
--priority=<priority> : 프로필의 우선 순위를 지정하는 양의 정수입니다. 지정된 우선 순위가 이 레이어에서 이 범위의 기존 프로필 우선 순위와 같은 경우 이 옵션이 무시됩니다. 지정하지 않으면 가져온 프로필이 이 레이어에서 우선 순위가 가장 높습니다.
<source> : 가져올 프로필을 포함하는 zip 파일의 전체 경로입니다.
% pgtool import --scope=host --name=NewHostProfile1 --priority=7 /tmp/HostProfile1.zip
이름이 “NewHostProfile1”이고 범위가 “host”이며, 우선 순위가 “7”이고 루트 도메인에 있는 프로필을 HostProfile1.zip에서 가져왔습니다.
모든 프로필 또는 요소/프로필이 지정된 항목을 나열합니다.
--name 옵션과 --entity 옵션을 지정하지 않으면 --scope 옵션에 따라 모든 사용자 또는 호스트 프로필이 나열됩니다.
--name 옵션을 지정하면 이 프로필에 지정된 모든 요소가 나열됩니다.
--entity 옵션을 지정하면 지정된 요소에 지정된 모든 프로필이 나열됩니다.
구문
list [--scope=<user|host>] [--entity=<entity>] [--name =<profile name>]
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : --name 옵션이 지정된 경우 프로필이 있는 요소이고,그렇지 않은 경우 나열할 프로필이 지정된 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
--name=<profile name> : 지정된 요소를 나열할 프로필의 이름입니다. 이 이름과 이 범위의 프로필이 이 레이어에 없거나 둘 이상 있는 경우 명령은 오류와 함께 종료됩니다.
% pgtool list
루트 조직에 지정된 프로필을 나열합니다.
% pgtool list --scope=host --name=HostProfile1
루트 도메인에 있는 “HostProfile1” 프로필에 지정된 요소를 나열합니다.
이 데이터 저장소에 성공적으로 인증한 후 데이터 저장소 백엔드에 대한 사용자 이름과 암호를 저장합니다. 나중에 이 사용자 이름과 암호를 사용하여 pgtool을 호출할 수 있습니다.
자격 증명은 관리자 홈 디렉토리의 .apocpass라는 이름의 파일에 저장됩니다. 이 파일이 이미 있고 정확한 사용 권한을 갖고 있지 않으면 해당 명령은 오류와 함께 종료됩니다.
사용자 이름을 지정하면 관리자에게 암호를 묻는 메시지가 표시되고 그렇지 않으면 사용자 이름과 암호를 묻는 메시지가 표시됩니다. 사용자 이름과 암호는 데이터 저장소에 대한 익명 액세스를 사용하여 인증됩니다. 익명 액세스가 지원되지 않으면 인증된 사용자 이름과 암호를 입력하라는 메시지가 나타납니다. 인증된 사용자 이름을 통한 인증이 실패하면 해당 명령은 오류와 함께 종료됩니다.
인증된 후에는 호스트/포트/기본 DN 조합과 사용자 이름으로 구성된 키를 사용하여 관리자의 .apocpass 파일에 사용자 이름/암호 쌍 항목이 저장되므로 동일한 파일에 다른 백엔드에 대한 사용자 이름/암호 쌍을 저장할 수 있습니다.
부트스트랩 정보는 명령에서 --file 옵션을 사용하여 해당 정보가 있는 파일을 나타내거나 --url 옵션을 사용하여 정보를 직접 지정하는 방식으로 지정할 수 있습니다. 부트스트랩에 대한 자세한 내용은 CLI에 필요한 부트스트랩 정보를 참조하십시오.
부트스트랩 정보를 사용할 수 없거나 자격 증명 파일을 만들 수 없으면 해당 명령은 오류와 함께 종료됩니다.
자격 증명 파일이 성공적으로 생성되면 이 저장소 백엔드를 사용하여 이후의 pgtool 명령에 대한 사용자 이름과 암호를 지정할 필요가 없습니다. 즉, 자격 증명 파일에 저장된 사용자 이름과 암호 세부 정보가 사용됩니다.
구문
login [--username=<username>] [--file=<bootstrap file>] [--url=<url>]
--username=<username> : 저장소 백엔드에 사용된 형식으로 된 관리자의 사용자 이름(예: “jmonroe”)입니다.
--file=<bootstrap file> : 부트스트랩 파일의 정규화된 경로입니다. 기본 파일은 $HOME/pgtool.properties입니다. 이 옵션은 --url 옵션과 호환되지 않습니다.
--url=<url> : 데이터 저장소를 식별하는 URL. URL 형식은 ldap://<hostname>:<port>/<base name>으로, <hostname>은 서버 이름(기본값은 localhost), <port>는 서버의 포트 번호(기본값은 389), <base name>은 기본 항목의 고유 이름입니다.
% pgtool login --username=jmonroe [Enter the correct password when prompted]
“jmonroe” 및 “password” 항목을 사용하여 만든 ~/.apocpass 파일의 사용 권한은 600입니다. 연결되는 백엔드에 대한 정보는 기본 부트스트랩 파일 ~/pgtool.properties에 있습니다.
프로필의 우선 순위를 변경합니다.
구문
modify [--scope=<user|host>] [--entity=<entity>] <profile name> <priority>
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
<profile name> : 우선 순위를 변경할 프로필의 이름입니다. 이 이름과 이 범위의 프로필이 이 레이어에 없거나 둘 이상 있는 경우 명령은 오류와 함께 종료됩니다.
<priority> : 프로필의 우선 순위를 지정하는 양의 정수입니다. 지정된 우선 순위가 이 레이어에서 이 범위의 기존 프로필 우선 순위와 같은 경우 해당 명령은 오류와 함께 종료됩니다.
% pgtool modify UserProfile1 15
루트 조직에 있는 “UserProfile1”의 우선 순위를 15로 변경했습니다.
요소에서 프로필 지정을 취소합니다.
구문
remove [--scope=<user|host>] [--entity=<entity>] <profile name> <target entity>
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
<profile name> : 대상 요소에서 지정 취소할 프로필의 이름입니다.
<target entity>: 프로필 지정을 취소할 요소입니다.
% pgtool remove UserProfile1 cn=Role1,o=staff,o=apoc
“cn=Role1,o=staff,o=apoc” 요소에서 루트 조직에 있는 “UserProfile1” 프로필 지정을 취소했습니다.
프로필의 이름을 바꿉니다.
구문
rename [--scope=<user|host>] [--entity=<entity>] <profile name> <newname>
--scope=<user|host> : 프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.
--entity=<entity> : 프로필이 있는 요소입니다. 지정하지 않으면 --scope 옵션에 따라 루트 조직 또는 도메인 요소가 기본값으로 사용됩니다.
<profile name> : 이름을 바꿀 프로필의 현재 이름입니다.
<newname> : 프로필의 새 이름입니다. 이 이름과 범위의 프로필이 동일한 레이어에 이미 있으면 명령은 오류와 함께 종료됩니다.
% pgtool rename NewUserProfile2 renamedNewUserProfile2
루트 조직에 있는 “NewUserProfile2”의 이름을 “renamedNewUserProfile2”로 바꾸었습니다.
명령 |
설명 |
---|---|
add |
요소에 프로필을 지정합니다. |
create |
비어 있는 새 프로필을 만듭니다. |
delete |
프로필을 삭제합니다. |
export |
프로필에 포함된 프로필을 지정된 대상에 zip 파일 형식으로 내보냅니다. |
import |
지정된 소스에서 zip 파일 형식으로 저장된 프로필을 가져옵니다. 소스에는 프로필로 가져올 프로필이 포함되어 있습니다. |
list |
모든 프로필을 나열하거나 요소에 지정된 프로필 또는 프로필이 지정된 요소를 나열합니다. |
login |
이 데이터 저장소 백엔드의 사용자 이름과 암호를 관리자의 홈 디렉토리에 있는 파일에 저장합니다. 나중에 이 사용자 이름과 암호를 사용하여 pgtool을 호출할 수 있습니다. |
modify |
프로필의 우선 순위를 변경합니다. |
remove |
요소에서 프로필 지정을 취소합니다. |
rename |
프로필의 이름을 바꿉니다. |
표 3–2 옵션
옵션 |
설명 |
---|---|
-b <base name>, --base=<base name>, DEPRECATED |
저장소 백엔드의 루트 항목입니다. 이 기본 항목의 형식은 사용되는 저장소 백엔드에 의해 결정됩니다. 예를 들어, 루트 항목이 o=apoc인 LDAP 저장소 백엔드는 다음과 같습니다. --base o=apoc DEPRECATED: --url 옵션을 대신 사용합니다. |
-e <entity>, --entity=<entity> |
사용자, 역할, 조직, 호스트 또는 도메인 요소를 나타냅니다. 요소의 항목 형식은 사용되는 저장소 백엔드에 의해 결정됩니다. 예를 들어, 사용자가 “jmonroe”인 LDAP 저장소 백엔드는 다음과 같습니다. -e uid=jmonroe,ou=People,o=Staff,o=apoc |
-f <file>, --file=<file> |
이 명령의 실행에 사용되는 부트스트랩 정보를 상세하게 나열하는 파일의 정규화된 경로입니다. 예를 들면 다음과 같습니다. -f /var/opt/apoc/cli.properties |
-h <hostname>, --hostname=<hostname> , DEPRECATED |
저장소 백엔드에 대한 호스트의 이름입니다. 예를 들면 다음과 같습니다. --host=server1.sun.com DEPRECATED: --url 옵션을 대신 사용합니다. |
-i <priority>, --priority=<priority> |
프로필의 우선 순위를 지정하는 양의 정수입니다. 예를 들면 다음과 같습니다. -i 12 |
-l <url>, --url=<url> |
데이터 저장소를 식별하는 URL. URL 형식은 ldap://<hostname>:<port>/<base name>으로, <hostname>은 서버 이름(기본값은 localhost), <port>는 서버의 포트 번호(기본값은 389), <base name>은 기본 항목의 고유 이름입니다. 예를 들면 다음과 같습니다. --url=ldap://server1.sun.com:399/o=apoc |
-m <name>, --name=<name> |
프로필의 이름입니다. 예를 들면 다음과 같습니다. --name=UserProfile1 |
-p <port>, --port=<port>, DEPRECATED |
저장소 백엔드의 포트 번호입니다. 예를 들면 다음과 같습니다. -p 399 DEPRECATED: --url 옵션을 대신 사용합니다. |
-s <scope>, --scope=<scope> |
프로필의 범위이며, 사용자 또는 호스트가 될 수 있습니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다. 예를 들면 다음과 같습니다. --scope=host |
-t <type>, --type=<type>, DEPRECATED |
저장소 백엔드의 유형입니다. 기본값은 LDAP입니다. 예를 들면 다음과 같습니다. -t LDAP DEPRECATED: --url 옵션을 대신 사용합니다. |
-u <username>, --username=<username> |
저장소 백엔드에 사용된 형식으로 된 관리자의 사용자 이름입니다. 그러면 관리자에게 암호를 묻는 메시지가 나타납니다. 이 옵션을 사용하지 않을 때 관리자가 pgtool login 하위 명령을 사용하지 않으면 관리자에게 사용자 이름과 암호를 묻는 메시지가 나타납니다. 예를 들면 다음과 같습니다. --username=jmonroe |
-?, --help |
도움말 정보를 표시합니다. |
-V, --version |
버전 정보를 표시합니다. |