uss 명령 집합을 사용하면 AFS 사용자 계정을 빠르고 쉽게 작성하고 삭제할 수 있습니다. uss add 명령으로 단일 계정을 작성하고 uss delete 명령으로 단일 계정을 삭제하면 uss bulk 명령으로 여러 계정을 작성하고 삭제할 수 있습니다.
uss 명령 인터프리터는 여러 계정 구성요소의 구성을 사전에 정의하는 템플릿 파일을 참조하므로 단일 uss add나 uss bulk 명령은 완전한 AFS 사용자 계정을 작성할 수 있습니다. uss delete 명령은 사용자 계정에서 대부분의 구성요소를 삭제하지만 템플릿 파일을 사용하지 않습니다.
uss 집합 또한 사용자 사이트에 해당하는 계정 작성과 삭제 작업의 일부를 수행하기 위해 작성하는 쉘 스크립트나 기타 프로그램을 쉽게 통합합니다. 스크립트나 프로그램을 uss 명령이 실행할 때 자동으로 호출하려면 템플릿 파일에서 적합한 명령이나 벌크 입력 파일을 사용하십시오. 이 장의 다양한 절은 여러 가지 가능한 스크립트 사용에 대해 설명합니다.
uss 명령을 사용하여 계정을 작성하고 삭제하는 것은 필요한 대부분의 단계를 자동화하고 순서를 올바로 정하므로 권장되는 방법입니다. 이에 대한 대안으로는 다양한 AFS 서버마다 일련의 명령을 실행하는 것으로 좀 더 신중히 관리해야 합니다. 명령은 사용자 계정 관리를 참조하십시오.
이 장에서는 지정된 명령을 사용하여 다음 타스크를 수행하는 방법을 설명합니다.
| 단일 사용자 계정 추가 | uss add |
| 단일 사용자 계정 삭제 | uss delete |
| 여러 계정 추가 및 삭제 | uss bulk |
uss 집합의 명령을 사용하면 AFS 사용자 계정의 작성과 삭제 작업을 자동화할 수 있습니다.
AFS 사용자 계정에는 여러 구성요소가 있습니다. 필요한 두 구성요소는 보호 데이터베이스와 인증 데이터베이스에 있는 항목이지만 다른 구성요소는 기능과 가용성을 더해줍니다. 다음 정보는 사용자 계정 관리의 해당 절에도 있지만 편의를 위해 여기서 반복합니다.
uss 명령을 성공적으로 실행하려면 일반적으로 표준 AFS 관리 특권이 전부 필요합니다. 즉, system:administrators 그룹의 멤버쉽, 모든 관련 서버 시스템의 /usr/afs/etc/UserList 파일에 대한 포함 그리고 인증 데이터베이스 항목에서의 ADMIN 플래그입니다. 관리 특권에 대한 자세한 내용은 관리 특권 관리를 참조하십시오.
복잡한 모든 조작에는 계적 작성이나 삭제 조작이 완료하기 전에 정지될 수 있는 몇 가지 가능한 이유가 있습니다. uss 명령을 실행하기 전에 다음 사항을 확인하여 여러 가지 공동 이유를 쉽게 피할 수 있습니다.
조작을 정지시키는 오류를 피하는 또 다른 방법은 -dryrun 플래그를 실제 명령에서 사용될 기타 인수와 결합하여 uss 명령을 미리보는 것입니다. uss 명령 인터프리터는 실제 명령을 실행하지 않은 상태에서 이 명령으로 수행될 작업의 화면 추적을 생성합니다.
-dryrun 플래그를 사용하면 조작을 정지시킬 수 있는 특히 명령행, 템플릿 파일 또는 벌크 입력 파일의 잘못된 구문에 의한 기본 오류를 보여줍니다. 그러나 명령 인터프리터는 실제로 추적중인 작업을 수행하려고 하지 않으므로 가능한 모든 오류를 발견하지는 않습니다. 예를 들어, 명령 인터프리터는 실제로 서버에 접속하지 않으므로 볼륨 서버 정지는 -dryrun 플래그가 포함될 때 볼륨 작성 단계를 정지시키지 않습니다. 이런 정지는 실제 작성 조작을 정지시킵니다.
uss 명령 인터프리터는 조작을 정지시킬 만큼 중요하지 않은 오류 조건을 만나면 일반적으로 uss: Warning:으로 시작하는 문자열을 생성하고 정지를 피하기 위해 수행하는 작업을 설명합니다. 예를 들어, 사용자의 보호 데이터베이스 항목이 이미 있으면 다음 메시지가 표준 출력 스트림에 나타납니다.
uss: Warning: User 'user' already in the protection database The uid for user 'user' is AFS UID
오류가 더 심각하면 Warning라는 단어가 메시지에 나타나지 않고 그 대신 명령 인터프리터가 요청한 작없을 수행하지 못하는 이유를 설명합니다. 이런 오류가 전부 uss 조작을 정지시키는 것은 아니지만 정정 작업이 이루어져야 합니다. 예를 들어, 상위 디렉토리의 ACL에 필요한 권한이 부족하거나 V 명령의 mount_point 필드에 있는 마운트 포인트 경로 이름이 잘못되었으면 마운트 포인트 작성 작업이 실패합니다. 그러나, 이 오류는 나중에 템플릿 명령이 없는 마운트 포인트 밑에 하위 디렉토리나 파일을 설치하려고할 때까지 작업 조작을 정지시키지는 않습니다.
명령 쉘 프롬프트가 오류 메시지 다음에 바로 리턴하면 오류는 일반적으로 조작을 정지시킬 만큼 심각한 것이었습니다. 오류가 계정 작성이나 삭제 작업을 정지시키면 복구할 수 있는 최상의 방법은 원인을 찾아 고친 후 같은 uss 명령을 다시 실행하는 것입니다.
다음 목록은 계정 작성 명령(벌크 입력 파일에 add 명령이 있는 경우 uss add 명령이나 uss bulk 명령)을 다시 실행할 때 이미 사용자 계정 구성요소가 있으면 어떤 일어 일어나는지 설명합니다.
다음은 uss delete 명령이 이미 삭제된 계정 구성요소를 참조하는 경우 어떤 일이 일어나는지를 설명합니다.
셀의 AFS 파일 공간에 대해 인증된 액세스를 확보하려면 사용자는 유효한 AFS 토큰뿐만 아니라 AFS 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 이와 동등한 것)에 있는 항목도 있어야 합니다. 이 절에서는 사용자 AFS UID가 로컬 암호 파일에 표시된 UNIX UID와 일치해야 하는 중요한 이유, 파일의 암호 필드에 들어가는 적합한 값을 설명하고 단일 원본 암호 파일을 작성하는 방법을 간단히 설명합니다.
템플릿 파일의 E 명령을 사용하여 계정 작성의 일부로 로컬 암호 파일 항목을 자동으로 생성하는 방법은 공통 원본 암호 파일 작성을 참조하십시오.
다음 정보는 사용자 계정 관리의 해당 절에도 있지만 편의를 위해 여기서 반복합니다.
사용자 계정은 AFS 사용자 ID 번호(AFS UID)와 UNIX UID가 일치하는 경우 관리하고 사용하기에 가장 쉽습니다. AFS 문서의 모든 명령은 이렇게 일치한다고 간주합니다.
UNIX ls -l과 ls -ld 명령으로 보고된 소유자 이름이 AFS 파일과 디렉토리에 적합하도록 AFS와 UNIX UID를 동일하게 만드는 것이 가장 기본적인 이유입니다. 다음 표준 UNIX 실습에서 파일 서버는 AFS 파일이나 디렉토리의 소유자 필드인 소유자의 AFS UID에 사용자 이름 대신 번호를 기록합니다. ls -l 명령을 실행하면 이는 AFS 보호 데이터베이스가 아닌 로컬 암호 파일의 맵핑에 따라 UID를 사용자 이름으로 변환합니다. AFS와 UNIX UID가 일치하지 않으면 ls -l 명령은 예상하지 못한(그리고 틀린) 소유자를 보고합니다. 출력은 로컬 암호 파일이 같은 UNIX UID를 다른 이름에 맵하는 경우 다른 클라이언트 시스템에서도 달라질 수 있습니다.
표시된 절에 있는 권장사항에 따라 다양한 사용자 유형에 대해 계정을 작성할 때 AFS와 UNIX UID가 일치하도록 만듭니다.
AFS를 사용하여 인증하는 것이 사용자를 로컬 파일 시스템에 로그하고 원스텝으로 AFS 토큰을 확보하는 AFS-수정 로그인 유틸리티를 설치하고 구성하는 경우 사용자에게 가장 쉬운 방법입니다. 이런 경우 로컬 암호 파일은 더 이상 대부분의 상황에서 로그인할 수 있는 사용자의 능력을 제어하지 않습니다. 왜냐하면 사용자가 올바른 AFS 암호를 제공하면 AFS-수정 로그인 유틸리티가 로컬 암호 파일을 참조하지 않기 때문입니다. 그럼에도 불구하고 다음과 같은 방법으로 암호 파일 항목의 암호 필드(일반적으로, 두번째 필드)를 사용하여 로그인과 인증을 제어할 수 있습니다.
AFS-수정 로그인 유틸리티를 사용하지 않으면 표준 UNIX 암호를 사용자가 사용하는 모든 클라이언트 기계의 로컬 암호 파일에 입력해야 합니다. 사용자는 로컬 파일 시스템에만 로그인한 후 klog 명령을 실행하여 AFS를 통해 인증해야 합니다. 로컬 암호 파일에 있는 암호와 인증 데이터베이스가 같으면 가장 간단하지만 이를 권하지는 않습니다.
이 절에서는 uss 명령을 사용하여 사용자 계정을 작성할 때 로컬 암호 파일의 공통 원본 버전을 작성하는 방법을 설명합니다. 단계 순서는 다음과 같습니다.
예로서, ABC사에서 사용하는 템플릿 파일에는 /afs/.abc.com/common/etc/newaccts 디렉토리에 passwd_username라고 하는 파일을 작성하기 위한 다음 E 명령이 들어 있습니다(템플릿 파일의 전체 내용은 예제 uss 템플릿에 있고 E 명령의 전체 설명은 E 명령어를 사용하여 한 행 파일 작성에 있음).
E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \
"$USER:X:$UID:11:$NAME:$MTPT:/bin/csh"
사용자 이름 smith를 사용하는 사용자 Joe L. Smith에게 이 명령은 다음과 같은 행이 들어 있는 passwd_smith라는 파일을 작성합니다.
smith:X:1205:11:Joe L. Smith:/afs/abc.com/usr/usr1/smith:/bin/csh
쉘 스크립트는 아마도 이 방법으로 작성된 파일 집합을 공통 원본 암호 파일에 통합하는 가장 쉬운 방법일 것입니다. 다음과 같이 두 예제 쉘 스크립트가 있습니다. 프로세스를 더욱 자동화하려면 파일 서버 시스템의 /usr/afs/local/BosConfig 디렉토리에 cron 프로세스를 작성하여 매일 지정된 시간에 쉘 스크립트를 실행할 수 있습니다. 자세한 내용은 새 프로세스를 작성 및 시작하려면을 참조하십시오.
| 주: | 다음 예제 스크립트는 제안일뿐입니다. 이를 사용하거나 이와 비슷한 스크립트를 만들려면 스크립트를 검사하여 원하는 결과가 나오는지 알아봐야 합니다. 가능하면 검사 환경에서 하는 것이 좋습니다. |
예제 C 쉘 스크립트
첫 예제는 ABC사 셀에 적합한 간단한 C 쉘 스크립트입니다. 이는 /afs/.abc.com/common/uss/newaccts 디렉토리에 있는 각각의 파일을 /afs/.abc.com/common/etc 디렉토리에 있는 전역 암호 파일의 새 버전에 통합하며 파일을 알파벳순으로 정렬합니다. 현재 버전을 .old 확장자로 저정한 후 개별적인 파일을 제거하는 작업은 신중히 이루어져야 합니다.
set dir = /afs/.abc.com/common cat $dir/uss/newaccts/passwd_* $dir/etc/passwd >! $dir/etc/passwd.new mv $dir/etc/passwd $dir/etc/passwd.old sort $dir/etc/passwd.new > $dir/etc/passwd rm $dir/etc/passwd.new $dir/uss/newaccts/passwd_*
예제 Bourne 쉘 스크립트
두번째의 좀 더 세련된 예제는 Bourne 쉘 스크립트로서 전역 암호 파일에 통합될 새 passwd_username 파일이 있다는 것을 먼저 확인합니다. 실행하는 중에 각 새 항목이 아직 없는지 점검합니다. 짧은 C 쉘 예제처럼 이는 /afs/.abc.com/common/uss/newaccts 디렉토리에 있는 개별적인 파일을 /afs/.abc.com/common/etc 디렉토리의 전역 passwd 파일의 새 버전에 통합합니다.
#!/bin/sh
DESTDIR=/afs/.abc.com/common/uss/newaccts
cd $DESTDIR
DEST=/afs/.abc.com/common/etc
cp /afs/.abc.com/common/etc/passwd /afs/.abc.com/common/uss/newaccts/passwd
echo "copied in passwd file."
PASSWD=/afs/.abc.com/common/uss/newaccts/passwd
ENTRIES=`ls passwd_*`
case $ENTRIES in
"")
echo No new entry found to be added to passwd file
;;
*)
echo "Adding new users to passwd file."
for i in $ENTRIES
do
cat $i | awk -F: '{print $1 > "foo"}'
USER=`cat foo`
case `egrep -e \^$USER\: $PASSWD` in
"")
echo adding $USER
cat $i >> $PASSWD
;;
*)
echo $USER already in passwd file
;;
esac
mv $i ../old.passdir/done_${i}
done
cd /afs/.abc.com/common/uss/newaccts
echo "sorting password file"
sort ${PASSWD} > ${PASSWD}.sorted
echo "installing files"
install ${PASSWD}.sorted ${DEST}/passwd
echo "Password file is built, sorted and installed."
;;
esac
이 절에서는 AFS 계정으로 변환되어야 하는 기존 UNIX 계정이 있는 경우 고려해야 하는 3가지 주요 문제를 설명합니다.
앞에서 설명했듯이 AFS 사용자는 인증된 사용자로 모든 클라이언트 시스템에서 AFS 파일 공간을 액세스할 수 있도록 로컬 암호 파일에 항목이 있어야 합니다. 관리와 사용 모두 UNIX UID와 AFS UID가 일치할 때 훨씬 쉬워집니다. 기존 UNIX 계정을 변환할 때 다음과 같이 두 가지 대안이 있습니다.
사용자 UNIX UID를 유지하고 있으므로 로컬 암호 파일 항목에서 UID를 변경하지 않아도 됩니다. 그러나, AFS-수정 로그인 유틸리티를 사용하는 경우 아마도 항목에서 암호 필드를 변경해야 합니다. 암호 필드에 있는 값이 AFS-수정 로그인 유틸리티를 사용한 로그인에 어떻게 영향을 주는지에 대해서는 uss를 사용한 로컬 암호 파일 항목 작성을 참조하십시오.
현재 또는 앞으로 기존 UNIX UID가 없는 사용자를 위해 AFS 계정을 작성해야 하는 경우 새 AFS UID가 기존 UNIX UID와 충돌하지 않아야 합니다. 보호 데이터베이스에서 max user id 카운터를 가장 큰 기존 UNIX UID보다 큰 값으로 설정하는 것이 가장 쉬운 방법입니다. AFS UID와 GID 카운터 표시 및 설정을 참조하십시오.
보호 서버가 AFS 계정을 작성할 때 AFS UID를 자동으로 할당하도록 합니다. 게정 작성중에 로컬 암호 파일에 대해 새 항목을 작성하는 방법은 uss를 사용한 로컬 암호 파일 항목 작성을 참조하십시오.
UNIX UID 변경에는 한 가지 장애가 있습니다. 사용자가 AFS 사용자가 되기 전에 로컬 파일 시스템에서 소유한 모든 파일과 디렉토리는 계속 소유자 필드에 이전 UID를 가지고 있습니다. ls -l과 ls -ld 명령으로 올바른 소유자를 표시하려면 파일을 로컬 파일 시스템에 남겨 놓거나 AFS로 옮기던지 간에 chown 명령을 사용하여 값을 사용자의 새 UID로 변경해야 합니다. AFS로 로컬 파일 이동을 참조하십시오.
기존 UNIX 계정에는 이미 암호 필드에 (섞인) 암호가 있는 로컬 암호 파일의 항목이 있습니다. 아마도 사용하는 로그인 유틸리티의 유형에 따라 필드의 값을 변경해야 합니다.
로컬 암호 파일 항목에 실제 암호를 배치하도록 선택하면 E 명령어를 사용하여 한 행 파일 작성에서 설명하는 것처럼 템플릿 파일 E 명령어(instruction)를 사용할 때 더미 암호를 정의할 수 있습니다. 사용자가 UNIX 암호 설정 명령(passwd 또는 동급)을 실행하여 이 더미 암호를 실제의 비밀 암호로 바꾸게 하십시오.
기존 UNIX 계정이 있는 새 AFS 사용자는 기계의 로컬 파일 시스템에 이미 저장된 파일과 디렉토리가 있을 것으므로 이를 새 홈 볼륨으로 전송하는 것이 좋습니다. 가장 쉬운 방법은 이를 AFS 클라이언트 기계의 로컬 디스크로 이동한 다음 UNIX mv 명령을 사용하여 이를 사용자의 새 AFS 홈 디렉토리로 전송하는 것입니다.
파일과 디렉토리를 AFS로 옮기면서 그 모드 비트 변경의 의미를 염두에 두십시오. AFS는 모드 비트의 두번째와 세번째 세트(그룹 및 기타)를 무시하고 첫번째 세트(소유자 비트)를 직접 사용하지 않지만 ACL의 항목과 함께만 사용합니다(자세한 내용은 AFS가 UNIX 모드 비트를 해석하는 방법 참조). ACL이 최소한 모드 비트만큼만 파일이나 디렉토리를 보호하도록 하십시오.
사용자의 UNIX UID가 새 AFS UID와 일치하도록 변경하기로 한 경우 UNIX 파일과 디렉토리의 소유권도 변경해야 합니다. system:administrators 그룹의 구성원이 일단 AFS에 상주하면 파일과 디렉토리에서 chown 명령을 실행할 수 있습니다.
uss 명령을 사용하여 사용자 계정을 작성하는 것은 보통 개별 명령을 사용하는 것보다 더 편리합니다. 사용자가 면밀하게 계정 작성 프로세스를 제어하게 되지만 uss 템플릿 파일을 사용하면 계정 구성의 다양한 측면을 미리 정의할 수 있습니다. uss 명령을 실행하기 전에 템플릿을 구성하게 되므로 구성 세부사항을 주의해서 고려해 보고 구문 오류를 수정할 시간을 갖게 됩니다. 다음 목록은 템플릿 사용의 추가적인 이점을 요약해서 설명합니다.
다음 목록은 템플릿 파일에 나타날 수 있는 지침을 설명하고 좀더 자세한 정보를 제공하는 후속 절을 알려 줍니다. 이 목록은 다른 유형의 명령어간의 종속성을 제대로 처리하는 데 있어서 최적이 될 수 있는 순서로 후속 절을 나열하고 있습니다.
uss add 및 uss bulk 명령을 사용하면 기능 레벨에서 다른 위치를 차지하는 세 가지 유형의 계정을 작성할 수 있습니다. 유형에 대한 설명은 AFS 사용자 계정 구성을 참조하십시오. 다음 목록은 각 유형에 대한 템플릿을 구성하는 방법을 설명합니다.
uss 템플릿 파일의 각 명령어는 작성하는 요소의 특성을 정의하는 몇몇 필드를 가집니다. 예를 들어 D 명령어의 필드는 디렉토리의 경로명, 소유자, 모드 비트 및 ACL을 정의합니다.
변수, 상수 또는 두 가지의 조합에 해당하는 세 가지 유형의 값을 필드에 삽입할 수 있습니다. 해당 값은 원하는 구성에 따라 달라지며 사용자가 uss add 명령에 제공하는 인수 또는 사용자가 벌크 입력 파일 add 명령어에 포함시키는 필드를 결정합니다.
계정 구성의 한 측면이 모든 사용자에게 동일하면 문자 스트링을 삽입하여 해당 필드에 상수 값을 정의하십시오. 예를 들어, 모든 사용자 볼륨에 10,000 KB의 공간 할당량을 지정하려면 V 명령어의 quota 필드에 문자열 10000을 추가하십시오.
한편 계정 구성의 한 측면이 사용자마다 다른 경우 해당 필드에 변수를 추가하십시오. 각 계정을 작성할 때 uss add 명령에 해당 인수를 제공하거나 벌크 입력 파일의 add 명령어의 해당 필드에 값을 제공하여 변수에 값을 제공하십시오.
uss 명령 집합은 각각이
표 3에서 요약된 것처럼 그 값의
해당 원본을 가지고 있는 템플릿 변수의 집합을 정의합니다.
어떤 목적을 가지고 있는지에 대한 설명을 보려면 각
템플릿(V 명령어를 사용한 볼륨 작성에서 X 명령어를 사용하여 명령 실행)에
대해 다음 절을 참조하십시오.
| 변수 | 값 원본 |
| $AUTO | 템플릿에서 이전 G 명령어 |
| $MTPT | uss add 명령에 대한 -mount 인수 또는 벌크 입력 파일 add 명령어의 mount_point 필드, V 명령어에서, 후속 명령어에서 mount_point 필드의 V 명령어 |
| $NAME | 제공되는 경우 uss add 명령에 대한 -realname 인수 또는 벌크 입력 파일 add 명령어의 mount_point 필드, 그렇지 않은 경우 uss add 명령에 대한 -user 인수 또는 벌크 입력 파일 add 명령어의 username 필드 |
| $PART | uss add 명령에 대한 -partition 인수 또는 벌크 입력 파일 add 명령어의 partition 필드 |
| $PWEXPIRES | uss add 명령에 대한 -pwexpires 인수 또는 벌크 입력 파일 add 명령어의 password_expires 필드 |
| $SERVER | uss add 명령에 대한 -server 인수 또는 벌크 입력 파일 add 명령어의 file_server 필드 |
| $UID | 제공되는 경우 uss add 명령에 대한 -uid 인수 또는 벌크 입력 add 명령어의 uid 필드, 그렇지 않은 경우 보호 서버에 의해 자동으로 할당됨 |
| $USER | uss add 명령에 대한 -user 인수 또는 벌크 입력 파일 add 명령어의 username 필드 |
| $1에서 $9 | uss add 명령에 대한 -var 인수 또는 벌크 입력 파일 add 명령어의 var1에서 var9 필드 |
변수의 일반적인 사용 방식은 사용자마다 다를 수 있는 사용자 볼륨을 포함하는 파일 서버 시스템 및 파티션을 정의하는 것입니다. V 명령어의 server 필드에 $SERVER 변수를 입력하고 그 partition 필드에 $PART 변수를 입력하십시오. uss add 명령을 사용하는 경우 -server 및 -partition 인수를 사용하여 원하는 값을 제공하십시오. uss bulk 명령을 사용하는 경우 벌크 입력 파일에 있는 각 사용자의 add 명령어의 file_server 및 partition 필드에 원하는 값을 제공하십시오.
변수 $1 - $9은 계정의 다른 측면을 사용자 정의하는 데 사용할 수 있습니다. uss add 명령에 대한 -var 인수를 사용하거나 벌크 입력 파일 add 명령어의 해당 필드에 이들 변수에 대한 값을 제공하십시오. -var 인수는 각 인스턴스가 공백으로 구분된 두 부분인 숫자 색인과 값을 가진다는 면에서 특이합니다. 숫자 변수의 사용 예를 보려면 V 명령어를 사용한 볼륨 작성에서 mount_point 및 quota 필드에 대한 설명을 참조하십시오.
계정 구성의 일부 측면이 부분적으로 상수이고 부분적으로 변수인 경우 명령어 필드에서 변수와 상수를 조합할 수 있습니다. 예를 들어 ABC Corporation에서 /afs/abc.com/usr 디렉토리에 사용자 볼륨을 마운트한다고 가정해 봅시다. 이 경로 이름 부분은 상수이지만 마운트 포인트와 홈 디렉토리의 이름은 $USER 변수에 해당하는 사용자의 사용자 이름입니다. 이러한 방식으로 계정을 구성하려면 다음과 같이 V 명령어의 mount_point 필드에서 상수 문자열과 변수를 조합해서 사용하십시오.
/afs/abc.com/usr/$USER
그런 다음 uss add 명령에 대한 -user 인수를 사용하거나 벌크 입력 파일에 있는 각 사용자의 add 명령어의 username 필드에 $USER 변수에 대한 값을 제공하십시오.
템플릿은 이 템플릿이 인증 전용 계정을 작성하기에 적절한 0길이 파일인 경우에도 uss 명령 인터프리터가 uss add 또는 uss bulk 명령을 실행할 때 사용할 수 있어야 합니다.
uss add 또는 uss bulk 명령에 대해 -template 인수를 제공하지 않으면 명령 인터프리터는 다음의 각 디렉토리에서 uss.template이라는 템플릿 파일을 검색합니다.
다른 이름을 가지거나 다른 디렉토리에 저장되어 있는 템플릿 파일을 사용하려면 uss add 또는 uss bulk 명령에 -template 인수를 포함시키십시오. 파일 이름만 제공하는 경우 명령 인터프리터는 바로 전에 나열된 디렉토리에서 해당 파일을 찾습니다. 경로 이름과 파일 이름을 제공하면 지정된 디렉토리만 검색하며 현재 작업 디렉토리에 상대적으로 부분 경로 이름을 해석합니다.
이 절에서는 템플릿 파일을 구성할 때 따라야 할 몇몇 일반 규칙을 요약해서 설명합니다. 각 명령어 구문 정의를 보려면 다음 절(G 명령어를 사용하여 사용자 홈 디렉토리의 공평한 분배에서 X 명령어를 사용하여 명령 실행)을 참조하십시오.
G V D F E L S A X
D, E 및 F 명령어를 사용하여 uss 명령을 실행하고 있는 시스템의 로컬 파일 시스템에서 디렉토리나 파일을 작성할 수 있으나 이런 디렉토리나 파일을 사용하는 것은 권장되지 않습니다. 이렇게 하면 다음과 같은 두 가지 잠재적인 문제가 발생할 수 있습니다.
대안은 uss 조작이 완료된 후에 로컬 수퍼유저 루트가 된 다음 필요한 chown 명령을 실행하는 것입니다. 그러나 이런 방법은 자동으로 수행할 수 있는 계정 작성 프로세스가 상당히 복잡해지는 결과를 낳습니다.
시스템의 로컬 디스크 구성에 대해 권장되는 방법은 그 대신 AFS package 유틸리티를 사용하는 것입니다. package 프로그램을 사용한 클라이언트 시스템 구성을 참조하십시오.
이 절에서는 기본 및 전체 계정 유형에 대한 예제 템플릿(인증 전용 계정에 대한 템플릿은 비어 있음)을 설명합니다.
첫 번째 예제는 기본 계정을 작성하는 것입니다. 여기에는 두 개의 G 명령어와 볼륨 이름, 파일 서버 시스템, 파티션 및 킬로바이트 단위의 할당량, 마운트 포인트, 홈 디렉토리 사용자 및 홈 디렉토리 액세스 제어 목록을 정의하는 V 명령어가 포함됩니다. ABC Corporation 셀에서 적절한 템플릿은 다음과 같습니다.
G /afs/.abc.com/usr1
G /afs/.abc.com/usr2
V user.$USER $SERVER.abc.com /vicep$PART 5000 $AUTO/$USER $UID \
$USER all staff rl
이러한 유형의 템플릿에서 uss add 명령을 실행할 때는 다음 인수를 제공하십시오.
보호 서버는 자동으로 $UID 변수에 대해 AFS UID를 지정하고 G 명령어는 $AUTO 변수의 값을 제공합니다.
다음 예제 템플릿 파일은 ABC Corporation 셀에 전체 계정을 작성합니다. 각 명령어 유형에 대한 다음 섹션은 예제의 결과를 설명합니다. V 및 E 명령어는 쉽게 이해할 수 있게 하기 위해 두 개의 행에 표시되었다는 점을 알아 두십시오.
#
# Specify the available grouping directories
#
G /afs/.abc.com/usr1
G /afs/.abc.com/usr2
#
# Create the user's home volume
#
V user.$USER $SERVER.abc.com /vicep$PART 5000 /afs/.abc.com/$AUTO/$USER \
$UID $USER all abc:staff rl
#
# Create directories and files for mail
#
D $MTPT/.MESSAGES 0700 $UID $USER all abc:staff none
D $MTPT/.Outgoing 0700 $UID $USER rlidwk postman rlidwk
D $MTPT/Mailbox 0700 $UID $USER all abc:staff none system:anyuser lik
#
# Here are some useful scripts for login etc.
#
F $MTPT/.Xbiff 0755 $UID /afs/abc.com/admin/user/proto
F $MTPT/.Xresources 0644 $UID /afs/abc.com/admin/user/proto
F $MTPT/.Xsession 0755 $UID /afs/abc.com/admin/user/proto
F $MTPT/.cshrc 0755 $UID /afs/abc.com/admin/user/proto
F $MTPT/.login 0755 $UID /afs/abc.com/admin/user/proto
F $MTPT/.logout 0755 $UID /afs/abc.com/admin/user/proto
F $MTPT/.twmrc 0644 $UID /afs/abc.com/admin/user/proto
F $MTPT/preferences 0644 $UID /afs/abc.com/admin/user/proto
#
# Make a passwd entry
#
E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \
"$USER:X:$UID:11:$NAME:$MTPT:/bin/csh"
#
# Put in the standard password/authentication checks
#
A $USER 250 noreuse 9 25
#
# Create and mount a public volume for the user
#
X "create_public_vol $USER $1 $2"
#
# Here we set up the symbolic link to public directory
#
S /afs/abc.com/public/$USER $MTPT/public
수천 개의 사용자 계정이 있는 셀에서 사용자 볼륨에 대한 마운트 포인트를 모두 한 디렉토리에 배치할 경우 사용자 홈 디렉토리가 액세스될 때 디렉토리 조회 속도가 상당히 느려지므로 이들 마운트 포인트를 여러 상위 디렉토리에 분배하는 것이 바람직한 경우가 종종 있습니다. 가능한 해결 방법은 사용자 홈 디렉토리를 알파벳 순서대로 그룹화하거나 학술 또는 기업 부문과 같은 부서를 나타내는 상위 디렉토리를 작성하는 것입니다. 그러나 실제로 대규모 셀에서는 이러한 몇몇 그룹이 여전히 너무 커서 디렉토리 조회 속도를 떨어뜨릴 수 있으므로 이러한 그룹에 속하는 사용자들은 자신의 홈 디렉토리를 액세스할 때마다 부당하게 불리한 조건에 처하게 됩니다. 작업장 부서를 나타내는 그룹화의 또 다른 맹점은 사용자가 부서 관계를 변경할 때 마운트 포인트를 옮겨야 한다는 것입니다.
한 가지 대안은 작업장 부서를 나타내지 않는 여러 개의 상위 디렉토리로 사용자 홈 디렉토리를 공평하게 분배하는 것입니다. uss 명령 집합을 사용하면 템플릿 파일의 맨 위에서 각각에 대해 G 명령어를 배치한 다음 V 명령어의 mount_point 필드에 $AUTO 변수를 사용하여 디렉토리 목록을 정의할 수 있습니다. uss 명령 인터프리터는 $AUTO 변수를 만나면 현재 가장 적은 수의 항목을 가지는 G 명령어에 의해 명명된 디렉토리를 대체합니다(실제로 $AUTO 변수는 명령어 유형에 관계없이 경로 이름을 포함하는 어떠한 필드에서도 나타날 수 있습니다. 모든 경우에서 명령 인터프리터는 현재 가장 적은 수의 항목을 가지고 있는 디렉토리를 대체합니다).
G 명령어 구문은 다음과 같습니다.
G directory
여기서 directory는 완전한 디렉토리 경로 이름이나 마지막 요소(디렉토리 자체)를 지정합니다. 이에 따라 V 명령어의 mount_point 필드에 배치할 적절한 값이 결정됩니다.
각 디렉토리로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 마운트 포인트를 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
예를 들어 예제 uss 템플릿의 전체 계정에 대한 ABC Corporation 예제 템플릿은 다음의 두 디렉토리를 정의합니다.
G /afs/.abc.com/usr1 G /afs/.abc.com/usr2
또한 V 명령어의 mount_point 필드에 $AUTO/$USER 값을 추가합니다. 동일한 결과를 얻을 수 있는 또 다른 방법은 다음과 같이 디렉토리를 정의하는 것입니다.
G usr1 G usr2
그리고 V 명령어의 mount_point 필드에 /afs/.abc.com/$AUTO/$USER와 같은 완전한 경로 이름을 지정하십시오.
템플릿 파일이 비어 있지 (0길이) 않은 한 이 파일 안에는 하나의 V 명령어만 나타나야 합니다(uss 계정 작성 조작의 일부로 사용자에 대해 다른 볼륨을 작성하려면 X 명령어를 사용하여 vos create 명령 또는 fs mkmount 명령과 같이 다른 명령과 함께 이 vos create 명령을 호출하는 스크립트를 호출하십시오. 예를 들어 X 명령어를 사용하여 명령 실행을 참조하십시오).
V 명령어는 다음 AFS 엔티티를 정의합니다.
V 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿에 나오는 예제를 참조합니다(여기에서는 읽기 편리하도록 명령어를 두 행으로 나타난 것에 불과함).
V user.$USER $SERVER.abc.com /vicep$PART 5000 \
/afs/.abc.com/$AUTO/$USER $UID $USER all abc:staff rl
V 명령어의 구문은 다음과 같습니다.
V volume_name server partition quota mount_point owner ACL
여기서,
사용자 이름을 볼륨 이름의 일부로 포함시키는 규칙을 따르려면 이 필드에 $USER 변수를 포함시키십시오. 이 변수는 uss add 명령에 대한 -user 인수에서 또는 벌크 입력 파일 add 명령어의 username 필드에서 그 값을 취합니다.
ABC Corporation 예제에서는 값 user.$USER를 사용하여 일반적인 볼륨 이름, user.username을 지정합니다. 예를 들어 사용자 smith에 대한 계정을 작성할 때는 -user smith를 uss add 명령에 대한 인수로 포함시키거나 벌크 입력 파일 add 명령어의 username 필드에 값 smith를 추가하십시오.
다른 파일 서버 시스템에 다른 사용자의 볼륨을 배치하려면 이 필드에 $SERVER 변수를 사용하고 uss add 명령의 -server 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 server 필드에서 $SERVER 변수의 값을 제공하십시오. 명령행에 완전 규정화된 호스트 이름을 그대로 입력하지 않고도 이 이름을 지정하는 쉬운 방법은 상수 및 $SERVER 변수를 조합해서 사용하는 것입니다. 특히 상수는 모든 파일 서버 시스템에 공통적으로 적용되는 도메인 이름 접미어를 지정합니다.
ABC Corporation 예제에서 셀의 모든 파일 서버 시스템은 abc.com 도메인 이름 접미어를 공유하므로 server 필드는 $SERVER.abc.com와 같이 변수와 상수를 조합합니다. 시스템 fs1.abc.com에 새 볼륨을 배치하려면 -server fs1을 uss add 명령에 대한 인수로 포함시키거나 벌크 입력 파일 add 명령어의 server 필드에 값 fs1을 추가하십시오.
다른 파티션에 다른 사용자의 볼륨을 배치하려면 이 필드에 $PART 변수를 사용하고 uss add 명령의 -partition 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 partition 필드에서 $PART 변수의 값을 제공하십시오. 모든 파티션 이름이 /vicep 문자열로 시작되므로 이 문자열을 상수로서 $PART 변수와 함께 조합하는 것이 편리한 방법입니다.
ABC Corporation 예제 템플릿은 /vicep$PART와 같이 상수 문자열 /vicep를 $PART 변수와 조합합니다.
읽기 전용 볼륨에서 새 마운트 포인트를 작성하려고 할 때 실패하지 않도록 마운트 포인트까지의 읽기/쓰기 경로를 지정하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $AUTO 변수를 사용하는 경우 각 G 명령어에서 명명하는 디렉토리는 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
마운트 포인트 이름의 다른 부분도 사용자마다 다른 경우 이 필드에 $MTPT 변수를 사용하고 uss add 명령의 -mount 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 mount_point 필드에 값을 제공할 수 있습니다. 그러나 템플릿의 다음 명령어에 $MTPT 변수가 나타나면 (보통 D, E 또는 F 명령어에서) 이 변수는 이 필드의 전체 내용을 그 값으로 취합니다.
하나 이상의 상위 디렉토리에 홈 디렉토리를 함께 그룹화하는 것에 대해 내린 결정에 따라 상수와 변수를 조합하십시오. 템플릿을 참조하는 uss add 또는 uss bulk 명령을 실행하기 전에 이 상위 디렉토리가 이미 있어야 합니다. 홈 디렉토리 그룹화의 다양한 방법은 다음과 같습니다.
$AUTO 변수는 이 방식으로 공평하게 홈 디렉토리를 분배할 수 있도록 설계되었습니다. G 명령어를 사용하여 사용자 홈 디렉토리의 공평한 분배에서 설명하는 것처럼 uss 명령 인터프리터는 G 템플릿 명령어를 앞에 사용함으로써 정의되었으며 현재 가장 적은 수의 항목을 가지고 있는 디렉토리를 대체합니다. 예제 ABC Corporation 템플릿은 값 /afs/.abc.com/$AUTO/$USER를 사용하여 이 방법을 보여줍니다.
이 설계 방식을 구현하는 가장 쉬운 방법은 /afs/.jkl.com/usr/$MTPT/$USER에서처럼 $MTPT 변수를 사용하여 문자 또는 여러 문자를 나타내는 것입니다. 그런 다음 -user smith 및 -mount s/m 인수를 uss add 명령에 제공하여 마운트 포인트 /afs/.jkl.com/usr/s/m/smith를 작성하는 것입니다.
최소한 이 필드에 값 $USER all을 포함시켜 새 사용자에게 모든 권한을 부여하십시오. 파일 서버는 system:administrators 그룹에도 모든 권한을 자동으로 부여합니다. 계정 작성의 마지막 단계에서 uss 명령 인터프리터는 작성 프로세스중에 설정된 ACL에서 uss 명령의 실행자를 자동으로 삭제하므로 이 사용자에게 권한을 부여할 수 없습니다.
ABC Corporation 예제에서는 다음 값을 사용하여 새로운 사용자에게 모든 권한을 부여하고 abc:staff 그룹의 구성원에게 r(읽기) 및 l(조회) 권한을 부여합니다.
$USER all abc:staff rl
템플릿 파일의 각 D 명령어는 디렉토리를 작성합니다. 템플릿에서 이 명령어의 수에는 제한이 없습니다. D 명령어가 새로운 사용자 홈 디렉토리에 하위 디렉토리를 작성하는 경우 V 명령어 뒤에 사용되어야 합니다. uss 명령이 실행되는 시스템의 로컬 디스크에 디렉토리를 작성하는 것은 로컬 디스크 디렉토리 및 파일 작성에 대하여에서 설명하는 여러 가지 이유로 인해 권장되지 않습니다.
D 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿의 예제 중 하나를 참조합니다.
D $MTPT/Mailbox 0700 $UID $USER all abc:staff none system:anyuser lik
D 명령어 구문은 다음과 같습니다.
D pathname mode_bits owner ACL
여기서,
디렉토리로의 읽기/쓰기 경로 이름을 지정하여 읽기 전용 볼륨에서 새 디렉토리를 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
ABC Corporation 예제에서는 값 $MTPT/Mailbox를 사용하여 사용자의 홈 디렉토리에 Mailbox 하위 디렉토리를 배치합니다.
ABC Corporation 예제는 값 0700을 사용하여 Mailbox 하위 디렉토리의 모드 비트를 rwxr-----로 설정합니다.
이 디렉토리가 AFS에 위치하는 경우 ABC Corporation 예제 템플릿에서 처럼 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).
디렉토리가 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하는 것이 가장 쉬운 방법입니다. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.
최소한 값 $USER all을 포함시켜 새 사용자에게 모든 권한을 부여하십시오. 계정 작성의 마지막 단계에서 uss 명령 인터프리터는 작성 프로세스중에 설정된 ACL에서 uss 명령의 실행자를 자동으로 삭제하므로 이 사용자에게 권한을 부여할 수 없습니다. 디렉토리가 로컬 디스크에 있는 경우 로컬 디스크 디렉토리 및 파일 작성에 대하여에서 자세히 설명하는 것처럼 항상 오류 메시지가 발생합니다.
ABC Corporation 예제에서는 다음 값을 사용하여 새로운 사용자에게 모든 권한을 부여하고 abc:staff 그룹의 구성원에게 어떠한 권한도 부여하지 않고 system:anyuser의 구성원에게 l(조회), i(삽입) 및 k(잠금) 권한을 부여합니다.
$USER all abc:staff none system:anyuser lik
이러한 확장된 권한을 system:anyuser 그룹에 부여하여 시스템 사용자(메일 전달 디먼)가 Mailbox 디렉토리에 메일을 삽입할 수 있게 합니다. r(읽기) 권한이 없으면 system:anyuser 그룹의 구성원은 메일 파일을 읽을 수 없습니다.
템플릿 파일의 각 F 명령어는 기존의 프로토타입 파일 내용을 복사하여 파일을 작성합니다. 템플릿에서 이 명령어의 수에는 제한이 없으며 각 명령어가 다른 프로토타입을 참조할 수 있습니다. F 명령어가 새 사용자의 디렉토리나 하위 디렉토리를 작성하는 경우 이 명령어는 상위 디렉토리를 작성하는 V 또는 D 명령어 다음에 나와야 합니다. uss 명령이 실행되는 시스템의 로컬 디스크에서 파일을 작성하는 것은 로컬 디스크 디렉토리 및 파일 작성에 대하여에서 설명하는 여러 가지 이유로 인해 권장되지 않습니다.
E 명령어도 파일을 작성하지만 두 가지 유형의 명령어는 상호 보완적인 이점을 제공합니다. E 명령어로 작성한 파일은 파일을 내용을 지정하는 필드에 나타날 수 있으므로 각 사용자에 맞게 사용자 정의할 수 있습니다. 반대로 F 명령어를 사용하여 작성된 파일의 내용은 모든 사용자에게 동일합니다. 그러나 E 파일은 단일 행에만 사용할 수 있고 F 파일은 길이 제한이 없습니다.
F 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿의 예제 중 하나를 참조합니다.
F $MTPT/.login 0755 $UID /afs/abc.com/admin/user/proto
F 명령어의 구문은 다음과 같습니다.
F pathname mode_bits owner prototype_file
여기서,
파일로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 파일을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
ABC Corporation 예제에서는 값 $MTPT/.login을 사용하여 사용자의 홈 디렉토리에 .login이라는 파일을 배치합니다.
ABC Corporation 예제는 값 0755를 사용하여 .login 파일에 대한 모드 비트를 rwxr-xr-x로 설정합니다.
이 파일이 AFS에 위치하는 경우 ABC Corporation 예제 템플릿에서 처럼 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).
파일이 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하는 것이 가장 쉬운 방법입니다. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.
ABC Corporation 예제는 디렉토리 /afs/abc.com/admin/user/proto에 있는 .login이라는 프로토타입 파일을 참조합니다.
템플릿 파일의 각 E 명령어는 지정된 단일 행을 에코하여 파일을 작성합니다. 템플릿에서 이 명령어의 수에는 제한이 없습니다. E 명령어가 새 사용자의 디렉토리나 하위 디렉토리에 파일을 작성하는 경우 이 명령어는 상위 디렉토리를 작성하는 D 명령어 다음에 나와야 합니다. uss 명령이 실행되는 시스템의 로컬 디스크에서 파일을 작성하는 것은 로컬 디스크 디렉토리 및 파일 작성에 대하여에서 설명하는 여러 가지 이유로 인해 권장되지 않습니다.
F 명령어도 파일을 작성하지만 두 가지 유형의 명령어는 상호 보완적인 이점을 제공합니다. E 명령어로 작성한 파일은 파일을 내용을 지정하는 필드에 나타날 수 있으므로 각 사용자에 맞게 사용자 정의할 수 있습니다. 이 명령 인터프리터는 파일을 작성하기 전에 변수를 적절한 값으로 바꿉니다. 반대로 F 명령어를 사용하여 작성된 파일의 내용은 모든 사용자에게 동일합니다. 그러나 E 파일은 단일 행에만 사용할 수 있고 F 파일은 길이 제한이 없습니다.
E 명령어는 셀의 공통 원본 암호 파일에서 새 사용자에 대한 항목을 작성하는 데 특히 적절하며 이 항목은 클라이언트 시스템에 복사되어 로컬 암호 파일(/etc/passwd 또는 동급)로 사용됩니다. 필드에 대한 다음 설명은 예제 uss 템플릿에 나오는 ABC Corporation의 전체 계정 템플릿에서 사용된 이러한 유형의 방식을 참조합니다. 이러한 방식으로 작성된 파일을 공통 원본 암호 파일에 통합하는 방법에 대한 자세한 설명을 보려면 공통 원본 암호 파일 작성을 참조하십시오.
E /afs/.abc.com/common/etc/newaccts/passwd_$USER 0644 root \
"$USER:X:$UID:11:$NAME:$MTPT:/bin/csh"
E 명령어의 구문은 다음과 같습니다.
E pathname mode_bits owner "contents"
여기서,
파일로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 파일을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
ABC Corporation 예제는 E 명령어에 의해 작성된 파일을 /afs/.abc.com/common/etc/newaccts 디렉토리에 쓰고 새로운 사용자 이름 다음에 이를 명명합니다.
/afs/.abc.com/common/etc/newaccts/passwd_$USER
ABC Corporation 예제는 값 0644를 사용하여 passwd_user 파일에 대한 모드 비트를 r-xr--r--로 설정합니다.
이 파일이 AFS에 위치하고 해당 사용자가 소유하는 경우 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).
파일이 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하십시오. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.
ABC Corporation 예제는 새로운 사용자가 직접 사용하기 보다는 공통 암호 파일에 통합하기 위해 AFS 파일을 작성합니다. 따라서 로컬 수퍼유저 루트를 새 파일의 소유자로 지정합니다. AFS 파일에 대체 소유자를 지정하면 다음과 같은 복잡한 문제가 발생합니다. AFS 파일에 대해 chown 명령을 실행하면 system:administrators 그룹에서 멤버쉽이 필요하지만 uss 명령의 실행자는 이 그룹의 구성원으로 반드시 인증을 받아야 합니다.
ABC Corporation 예제는 암호 파일 항목을 작성하기 위해 contents 필드에 다음 값을 포함하고 있습니다.
$USER:X:$UID:10:$NAME:$MTPT:/bin/csh
템플릿 파일의 각 L 명령어는 표준 UNIX ln 명령을 사용하여 수행할 수 있는 것처럼 두 개의 파일간의 하드 연결을 작성합니다. S 명령어는 UNIX ln -s 명령을 사용하여 수행할 수 있는 것처럼 두 개의 파일간의 기호 연결을 작성합니다. 연결에 대한 설명은 이 문서에서 다루고 있지 않으나 두 가지 경우에 나타나는 기본적인 효과는 기존 파일에 대해 또 다른 이름을 작성하는 것과 같으므로 이름을 통해 액세스할 수 있습니다. 연결을 작성한다고 해서 파일의 또 다른 사본이 작성되는 것은 아닙니다.
템플릿 파일에서 L 또는 S 명령어 수에는 제한이 없습니다. 링크가 새로운 사용자의 홈 디렉토리나 하위 디렉토리에 있으면 상위 디렉토리를 작성하는 V 또는 D 명령어와 연결될 파일을 작성하는 F, E 또는 X 명령어 다음에 나와야 합니다. uss 명령이 실행되는 시스템의 로컬 디스크에서 파일을 작성하는 것은 로컬 디스크 디렉토리 및 파일 작성에 대하여에서 설명하는 여러 가지 이유로 인해 권장되지 않습니다.
AFS에서는 동일한 디렉토리에 위치하는 파일간의 하드 연결만 허용한다는 사실을 알아 두십시오. 이러한 제한은 다른 ACL(두 디렉토리의 ACL)를 동일한 파일에 연관지음으로써 발생하는 혼란을 피하기 위해 필요합니다. 기호 연결은 다른 디렉토리, 심지어는 다른 볼륨에 위치하는 두 파일간에서 사용됩니다. 실제 파일에 대한 ACL도 연결에 적용됩니다.
디렉토리나 파일에 대해 수행하는 것처럼 L 또는 S 명령어로 작성한 연결에 대해 소유자 또는 모드 비트를 설정할 필요가 없습니다. uss 명령 인터프리터는 uss 명령 실행자의 UNIX UID를 소유자로서 자동으로 기록하고 모드 비트를 lrwxrwxrwx(777)로 설정합니다.
L 또는 S 명령어의 필드에 대한 설명은 다음과 같이 예제 uss 템플릿의 전체 계정 템플릿에 나오는 예제를 참조합니다.
S /afs/abc.com/public/$USER $MTPT/public
L 및 S 명령어의 구문은 다음과 같습니다.
L existing_file link S existing_file link
여기서,
이름이 숫자 기호(#)나 퍼센트 기호(%)로 시작하는 파일에 심볼릭 링크를 작성하지 마십시오. 캐쉬 관리 프로그램은 그 내용이 이들 문자 중 하나로 시작되는 기호 연결을 작성할 때 각각 일반 또는 읽기/쓰기 마운트 포인트로 해석합니다.
ABC Corporation 예제는 그 마운트 포인트로의 경로를 지정하여 선행하는 X 명령어에 의해 작성되어 마운트된 공개적으로 읽을 수 있는 볼륨으로의 연결을 작성합니다.
/afs/abc.com/public/$USER
연결로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 연결을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
ABC Corporation 예제는 사용자의 홈 디렉토리에 public이라는 연결을 작성합니다.
$MTPT/public
템플릿 파일의 A 명령어는 사용자 암호 선택 및 인증 시도에 대해 다음 제한을 부여하여 셀 보안을 강화합니다.
A 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿에 나오는 예제를 참조하며 암호 수명을 250일로 설정하고, 암호의 재사용을 금지하고, 실패한 인증 시도 수를 9로 제한하고, 인증 제한이 초과된 경우 25분의 잠금 시간을 생성합니다.
A $USER 250 noreuse 9 25
A 명령어의 구문은 다음과 같습니다.
A username password_lifetime password_reuse failures locktime
여기서,
범위 1 - 254의 정수를 지정하여 만기가 될 때까지의 일 수를 지정하는 데 여기서 값 0은 암호가 절대 만기되지 않음을 나타내고 값 $PWEXPIRES는 uss add 또는 uss bulk 명령의 -pwexpires 인수로부터 일 수를 읽어오게 됩니다. A 명령어가 템플릿 파일에 나타나지 않으면 기본적으로 사용자 암호는 만기되지 않습니다.
ABC Corporation 예제는 250일의 암호 수명을 설정합니다.
ABC Corporation 예제는 암호 재사용을 금지합니다.
범위 1 - 254의 정수를 지정하여 허용되는 실패 횟수를 지정하거나 실패한 시도 수를 제한하지 않도록 하는 0 값을 지정하십시오. A 명령어가 템플릿 파일에 나타나지 않으면 기본값은 제한 없는 실패를 허용하는 것입니다.
ABC Corporation 예제는 실패한 시도 횟수를 9회로 제한합니다.
범위 01(1분) - 36:00(36시간)에서 시간과 분(hh:mm) 또는 분(mm)만을 지정하십시오. 인증 서버는 더 큰 값은 36:00으로 자동으로 줄이고 8.5분의 배수 중 해당 시간에서 가장 가까운 값으로 0이 아닌 값을 올림합니다. 값 0은 무한 잠금 시간을 설정하며 이 경우 관리자는 kas unlock 명령을 실행하여 계정을 잠금 해제해야 합니다.
ABC Corporation 예제는 잠금 시간을 25분으로 설정하고 이 시간은 25분 30초(8.5분의 배수 중 25분에서 가장 가까운 시간)로 올림됩니다.
템플릿 파일의 X 명령어는 표준 UNIX 명령, 쉘 스크립트나 프로그램 또는 AFS 명령을 실행합니다. 명령 문자열에는 표준 템플릿 변수가 포함될 수 있으며 템플릿 파일에 나타날 수 있는 X 명령어의 수에는 제한이 없습니다. 명령어가 다른 명령어에 의해 작성된 요소를 처리하는 경우 해당 명령어 다음에 나타나야 합니다.
X 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿에 나오는 예제를 참조합니다.
X "create_public_vol $USER $1 $2"
X 명령어의 구문은 다음과 같습니다.
X "command"
여기서 command는 실행할 명령을 지정합니다. 공백이 포함된 경우에는 큰 따옴표(")로 묶으십시오. 명령 문자열에는 어떠한 표준 변수도 포함될 수 있으며 uss 명령은 적절한 다른 명령 인터프리터에 이 명령을 제공하기 전에 이 변수를 해석하지만 개행 문자를 포함할 수 없습니다.
ABC Corporation 예제는 create_public_vol이라는 스크립트를 호출합니다. 이 스크립트는 새 사용자와 연관된 다른 볼륨을 작성하고 이 볼륨을 ABC Corporation의 파일 공간에서 공개적으로 읽을 수 있는 부분에 마운트합니다.
"create_public_vol $USER $1 $2"
이 예제는 $USER 변수를 사용하여 사용자 이름을 읽고 이를 볼륨 이름과 마운트 포인트 이름 둘다의 일부로 만듭니다. uss 명령은 $1 변수에 대해서는 파일 서버 시스템 이름을 제공하고 $2 변수에 대해서는 파티션 이름을 제공하여 새 볼륨에 대한 사이트를 지정합니다.
템플릿 파일을 작성한 후에 uss add 명령(템플릿 작성에 대해서는 uss 템플릿 파일 구성 참고)을 실행하여 개별 계정을 작성할 수 있습니다. 이 명령을 실행할 때 uss 명령 인터프리터는 다양한 AFS 서버에 접속하여 다음 작업을 수행합니다.
다른 파일 시스템 오브젝트를 작성하기 위해 템플릿에 포함시켜야 하는 명령어 유형을 검토하려면 uss 템플릿 파일 구성을 참조하십시오. 템플릿이 비어 있으면 uss add 명령은 보호 데이터베이스 및 인증 데이터베이스 항목으로 구성된 인증 전용 계정을 작성합니다.
uss add 명령을 실행할 때는 해당 명령 인수를 포함시켜 템플릿 파일의 각 변수에 대해 값을 제공하십시오. 변수 값을 제공하지 못하면 uss 명령 인터프리터는 계정 작성의 실패를 유발하는 널 문자열을 대체합니다. 해당 변수가 템플릿에 나타나지 않는 명령행 인수를 포함시키는 경우 이 인수는 무시됩니다.
표 4에서는 uss add
명령과 변수 및 인수간의 맵핑을 요약해서 보여줍니다. 이 테이블은
표 3에서 발췌한 것이지만 그 값을 명령행
인수에서 취하는 변수만 포함되어 있습니다.
| 변수 | 명령행 인수 |
| $MTPT | -mount (V 명령어에서 사용) |
| $NAME | 제공되는 경우 -realname, 그렇지 않은 경우 -user |
| $PART | -partition |
| $PWEXPIRES | -pwexpires |
| $SERVER | -server |
| $UID | 제공되는 경우 -uid, 그렇지 않은 경우 보호 서버에 의해 할당 |
| $USER | -user |
| $1에서 $9 | -var |
% klog admin_user Password: admin_password
다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.
% cd template_directory
uss add 조작은 인증 데이터베이스 항목을 작성합니다. 인증 서버는 기존 AFS 토큰을 사용하지 않고 자신의 인증 프로세스를 수행합니다. 기본적으로 이것은 로컬(UNIX) ID를 인증하며, AFS가 특권을 부여한 관리자에 해당되지 않을 수 있습니다. -admin 인수를 삽입하여 인증 데이터베이스 항목에 ADMIN 플래그가 있는 ID의 이름을 지정하십시오. 항목에 플래그가 있는 지 확인하려면, ADMIN 플래그가 설정되어 있는지 확인하려면에서 설명한 것처럼 kas examine 명령을 실행하십시오.
% uss add -user <login name>
-admin <administrator to authenticate> \
[-realname <full name in quotes>] [-pass <initial passwd>] \
[-pwexpires <password expires in [0..254] days (0 => never)>] \
[-server <FileServer for home volume>] \
[-partition <FileServer's disk partition for home volume>] \
[-mount <home directory mount point>] \
[-uid <uid to assign the user>] \
[-template <pathname of template file>] \
[-var <auxiliary argument pairs (Numval)>+] [-dryrun] \
[-overwrite]
Administrator's (admin_user) password: admin_password
여기서,
이 인수는 템플릿 파일의 $USER 변수에 대한 값을 제공합니다. 사용자 이름 표준화에 대한 제안을 보려면 사용자 이름 선택 및 다른 계정 구성요소 명명을 참조하십시오.
이 인수는 템플릿 파일의 $NAME 변수에 대한 값을 제공합니다. 이 인수와 변수를 /etc/passwd와 같은 로컬 암호 파일에 항목을 작성하기 위한 자동 프로세스의 일부로 사용하는 것에 대한 정보를 보려면 공통 원본 암호 파일 작성을 참조하십시오.
초기 암호로 선택할 수 있는 것 중에는 사용자 이름, 사회 보장 번호와 같은 개인 ID 번호 또는 changeme와 같은 표준 문자열이 있습니다. 템플릿 파일에서는 해당 변수에 대한 제한이 없습니다.
사용자에게 처음으로 AFS에 대해 인증을 받자마자 비밀 문자열로 암호를 변경하도록 지시하십시오. AFS 사용자 안내서에서는 kpasswd 명령을 사용하여 AFS 암호를 변경하는 방법을 설명합니다.
이 인수는 템플릿 파일의 $PWEXPIRES 변수에 대한 값을 제공합니다.
이 인수는 템플릿 파일의 $SERVER 변수에 대한 값을 제공합니다. 명령행에 완전 규정화된 호스트 이름을 입력하지 않아도 되게 하려면 템플릿 파일에서 V 명령어의 server 필드에서 상수(예: 셀의 도메인 이름)를 $SERVER 변수와 조합해서 사용하십시오. 예를 들면 V 명령어를 사용한 볼륨 작성을 참조하십시오.
이 인수는 템플릿 파일의 $PART 변수에 대한 값을 제공합니다.
이 인수는 템플릿 파일의 $MTPT 변수에 대한 값을 제공하지만 V 명령어의 mount_point 필드에 나타날 때만 해당됩니다. $MTPT 변수는 후속 명령어에 나타나면 이 인수로부터 직업이 아니라 V 명령어의 mount_point 필드에서 그 값을 취합니다. 세부사항과 이 인수 및 $MTPT 변수를 사용하는 방법에 대한 제안을 보려면 V 명령어를 사용한 볼륨 작성을 참조하십시오.
이 인수를 사용해야 하는 경우에는(사용자가 이미 UNIX UID를 가지는 경우) 먼저 pts examine 명령을 사용하여 원하는 AFS UID를 가진 기존의 계정이 없는지 확인하십시오. 기존 계정이 있으면 계정 작성 프로세스를 오류를 나타내며 종료됩니다.
이 인수는 템플릿 파일의 $UID 변수에 대한 값을 제공합니다.
경로 이름을 가지지 않는 uss.template 이외의 파일 이름을 지정하는 경우 명령 인터프리터는 지정된 디렉토리에서 이를 탐색합니다. 전체 경로 이름이나 부분 경로 이름을 제공하면 명령 인터프린터는 지정된 파일만 확인합니다. 현재 작업 디렉토리에 상대적으로 부분 경로 이름을 해석합니다.
지정된 템플릿 파일이 비어 있으면(0길이), 명령은 보호 및 인증 데이터베이스 항목만 작성합니다.
템플릿 파일을 구성하는 방법을 알려면 uss 템플릿 파일 구성을 참조하십시오.
이 인수의 각 인스턴스에 대해 지정된 순서로 두 부분을 공백으로 구분하여 제공하십시오.
숫자 변수의 제안된 사용 방식에 대한 설명을 보려면 V 명령어를 사용한 볼륨 작성에서 V 명령어의 quota 필드에 대한 설명을 참조하십시오.
% vos release <volume name or ID>
| 주: | 이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 새 마운트 포인트를 작성하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다. |
자동화 방법을 사용하지 않는 경우에도 사용자의 UNIX UID가 보호 서버에서 자동으로 지정했거나 -uid 인수를 사용하여 지정한 AFS UID에 일치하도록 설정하십시오. 새로운 사용자의 AFS UID가 uss add 출력에서 생성한 추적에 나타납니다. 그렇지 않은 경우에는 보호 데이터베이스 항목을 표시하려면에서 설명하는 것처럼 pts examine 명령을 사용하여 표시할 수 있습니다.
uss delete 명령은 사용자가 명령행에 제공하는 인수에 따라 AFS 사용자 계정을 삭제합니다. 이 명령은 uss add 명령과는 달리 템플릿 파일을 사용하지 않습니다. 이 명령을 실행할 때 uss 명령 인터프리터는 다양한 AFS 서버에 접속하여 다음 작업을 수행합니다.
uss delete 명령을 실행하기 전에 다음의 선택적 타스크를 수행할 수 있습니다.
벌크 입력 파일에 exec 명령어를 포함시키고 uss bulk 명령을 사용하여 계정을 삭제함으로써 이들 타스크를 자동화할 수 있습니다. uss bulk 명령을 사용하여 복수의 계정 작성 및 삭제를 참조하십시오.
% klog admin_user Password: admin_password
다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.
삭제 조작을 수행하면 항상 인증 데이터베이스에서 사용자 항목이 제거됩니다. 인증 서버는 기존 AFS 토큰을 사용하지 않고 자신의 인증 프로세스를 수행합니다. 기본적으로 이것은 로컬(UNIX) ID를 인증하며, AFS가 특권을 부여한 관리자에 해당되지 않을 수 있습니다. -admin 인수를 삽입하여 인증 데이터베이스 항목에 ADMIN 플래그가 있는 ID의 이름을 지정하십시오. 항목에 플래그가 있는 지 확인하려면, ADMIN 플래그가 설정되어 있는지 확인하려면에서 설명한 것처럼 kas examine 명령을 실행하십시오.
% uss delete -user <login name> \
-mountpoint <mountpoint for user's volume> \
[-savevolume] -admin <administrator to authenticate> \
[-dryrun]
Administrator's (admin_user) password: admin_password
여기서,
마운트 포인트로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 마운트 포인트를 삭제하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.
% vos release <volume name or ID>
| 주: | 이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 마운트 포인트를 삭제하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다. |
uss bulk 명령을 사용하면 한 번에 여러 계정을 작성 및 삭제할 수 있습니다. 이 명령을 실행하기 전에 다음을 수행해야 합니다.
벌크 입력 파일에 add, delete, exec, savevolume 및 delvolume의 다섯 가지 유형의 명령어를 포함시킬 수 있습니다. 다음 절은 그 사용에 대해 설명합니다.
add 명령어를 사용한 사용자 계정 작성
각 add 명령어는 단일 사용자 계정을 작성하므로 기본적으로 하나의 uss add 명령을 실행하는 것과 동일합니다. 벌크 입력 파일에서 add 명령어의 수에는 제한이 없습니다.
다음의 명령 구문에 나타난 것처럼 명령문 필드의 순서는 uss add 명령문에 대한 인수의 순서와 일치해야 합니다(명령문 인수의 일부에는 해당 필드가 없음). uss add 명령의 인수와 같이 많은 필드가 uss 템플릿 파일에 변수 값을 제공합니다. 각 명령어는 파일에서 단일 행으로 지정되어야 하며(맨 끝에만 개행 문자가 있음), 여기에서는 이해를 돕기 위해 여러 행으로 표시한 것입니다.
add username[:full_name][:initial_password][:password_expires] [:file_server][:partition][:mount_point][:uid] [:var1][:var2][:var3][:var4][:var5][:var6][:var7][:var8][:var9][:]
각 필드에서 허용되는 값에 대한 자세한 설명을 보려면 AFS Administration Reference의 uss 벌크 입력 파일 참조 페이지나 uss add 명령을 사용하여 AFS 계정을 작성하려면에서 uss add 명령에 대한 해당 인수의 설명을 참조하십시오. 다음은 몇 가지 기본 참고사항입니다.
delete 명령어를 사용한 사용자 계정 삭제
각 delete 명령어는 단일 사용자 계정을 삭제하므로 기본적으로 하나의 uss delete 명령을 실행하는 것과 동일합니다. 벌크 입력 파일에서 delete 명령어의 수에는 제한이 없습니다.
벌크 입력 파일의 모든 명령어와 마찬가지로 각 delete 명령어는 파일에서 단일 행으로 지정되어야 하며(맨 끝에만 개행 문자가 있음), 출력 화면에서는 이해를 돕기 위해 여러 행으로 표시된 것입니다. 중괄호({ })는 함께 사용할 수 없는 두 개의 명령어를 나타내는 데 사용됩니다.
delete username:mount_point_path[:{ savevolume | delvolume }][:]
각 필드에서 허용되는 값에 대한 자세한 설명을 보려면 AFS Administration Reference의 uss 벌크 입력 파일 참조 페이지나 AFS 계정을 삭제하려면에서 uss delete 명령에 대한 해당 인수의 설명을 참조하십시오. 다음은 몇 가지 기본 참고사항입니다.
exec 명령어를 사용하여 명령 또는 스크립트 실행
exec 명령어는 지정된 AFS 명령, 컴파일된 프로그램 또는 UNIX 쉘 스크립트 또는 명령을 실행합니다. 명령 프로세서는 uss bulk 명령의 실행자가 AFS 및 로컬 ID를 가지고 있다고 가정하며 이 사람은 명령을 실행하는 데 필요한 권한을 가지고 있어야 합니다.
명령어 구문은 다음과 같습니다.
exec command
command 문자열을 반드시 큰 따옴표(")나 다른 구분 문자로 묶을 필요는 없습니다.
delvolume 및 savevolume 명령어를 사용하여 볼륨의 기본 처리 방식 설정
savevolume 및 delvolume 명령어는 벌크 입력 파일에서 볼륨 다음에 나오는 delete 명령어에서 참조하는 볼륨의 기본 처리 방식을 설정합니다. 그 구문은 다음과 같습니다.
savevolume delvolume
두 명령어는 선택적이며 인수를 취하지 않습니다. 이 두 명령어 모두 벌크 입력 파일에 나타나지 않으면 기본적으로 delete 명령어가 참조하는 모든 볼륨 및 VLDB 항목이 제거됩니다. savevolume 명령어가 파일에 나타나면 파일의 모든 후속 delete 명령어에서 참조하는 볼륨 및 VLDB 항목의 제거가 수행되지 않습니다. delvolume 명령어는 후속 delete 명령어의 기본 작동 방식(삭제)을 명시적으로 설정합니다.
두 명령어의 효과는 벌크 입력 파일이 끝날 때까지 또는 상대 명령어가 나타날 때까지 지속됩니다. 특정 delete 명령어에 대한 기본 작동 방식을 덮어쓰려면 명령어의 세 번째 필드에 savevolume 또는 delvolume 문자열을 추가하십시오(또는 savevolume 및 delvolume 명령어의 여러 인스턴스를 사용하여 볼륨의 기본 유지 및 삭제간에 토글할 수 있습니다).
인증 전용 계정을 작성하려면 다음 예제에서처럼 첫째 (username) 인수만 포함하여 add 명령어를 사용하십시오. 사용자의 실제 이름은 사용자 이름(anderson)과 일치하도록 설정되며 초기 암호는 문자열 changeme으로 설정됩니다.
add anderson
다음 예제에서도 인증 전용 계정을 작성하지만 실제 이름과 초기 암호에 대해 비기본 값을 설정합니다.
add smith:John Smith:js_pswd
다음 두 가지 예제 add 명령어는 ABC Corporation 셀(abc.com)의 관리자가 다음의 V 명령어와 함께 uss 템플릿 파일을 작성하도록 요구합니다.
V user.$USER $SERVER.abc.com /vicep$PART 10000 /afs/.abc.com/usr/$3/$USER \
$UID $USER all
마켓팅 부서에서 John Smith라는 사용자와 재무 부서에서 Pat Jones라는 사용자의 계정을 작성하려면 벌크 입력 파일에서 적절한 add 명령어는 다음과 같습니다.
add smith:John Smith:::fs1:a:::::marketing add jones:Pat Jones:::fs3:c:::::finance
Smith의 새로운 계정은 smith라는 보호 및 인증 데이터베이스로 구성됩니다. 초기 암호는 기본 문자열인 changeme이고 보호 서버는 이 사용자의 AFS UID를 생성합니다. user.smith라는 홈 볼륨은 10,000 KB의 할당량을 가지며 파일 서버 시스템 fs1.abc.com의 파티션 /vicepa에 위치하며 /afs/.abc.com/usr/marketing/smith에 마운트됩니다. V 명령어의 마지막 $UID $USER all 부분은 이 사용자에게 홈 디렉토리에 대한 소유권과 그 ACL에 대한 모든 권한을 부여합니다. jones의 계정은 파일 서버 시스템 fs3.abc.com의 /vicepc 파티션에 위치하고 /afs/.abc.com/usr/finance/jones에 마운트된다는 점을 제외하고는 동일합니다.
mount_point, uid, var1 및 var2에 해당하는 필드는 해당 변수가 템플릿 파일의 V 명령어에 나타나지 않으므로 비어 있다는 사실(첫째 예제 행의 값 a와 marketing)을 알아 두십시오. initial_passwd 및 password_expires 필드 역시 비어 있습니다.
원하는 경우 add 명령어에서 9개의 모든 변수에 대해 값을 지정하거나 필드를 비워 둘 수 있습니다. 이 경우 벌크 입력 파일 명령어는 다음과 같습니다.
add smith:John Smith:::fs1:a:::::marketing:::::: add jones:Pat Jones:::fs3:c:::::finance::::::
다음 예제는 많은 delete 명령어 및 savevolume 명령어가 사용된 벌크 입력 파일 섹션입니다. 처음 세 개의 명령어가 savevolume 명령어 앞에 나오고 셋째 필드가 비어 있으므로 해당 볼륨 및 VLDB 항목은 제거됩니다. 사용자 terry에 대한 delete 명령어는 savevolume 명령어 뒤에 나오므로 이 사용자에 대한 볼륨은 제거되지 않으나 사용자 johnson에 대한 볼륨은 delete 명령어의 셋째 필드에 있는 delvolume 문자열이 현재 기본값을 덮어쓰므로 제거됩니다.
delete smith:/afs/abc.com/usr/smith delete pat:/afs/abc.com/usr/pat delete rogers:/afs/abc.com/usr/rogers savevolume delete terry:/afs/abc.com/usr/terry delete johnson:/afs/abc.com/usr/johnson:delvolume
다음의 예제 exec 명령어는 add 명령어 집합과 delete 명령어 집합간의 분리자로서 유용하게 사용됩니다. 이 명령어는 사용자에게 uss bulk 명령의 진행 과정을 알려주는 표준 출력 스트림에 메시지를 생성합니다.
exec echo "Additions completed; beginning deletions..."
% klog admin_user Password: admin_password
다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.
% pts membership system:administrators
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators 그룹의 구성원은 항상 모든 ACL에 대해 암시적으로 a(administer) 권한을 가지며, 기본적으로는 l(lookup) 권한을 가지며 필요한 경우 fs setacl 명령을 사용하여 다른 권한을 부여할 수 있습니다.
% cd template_directory
벌크 조작은 항상 인증 데이터베이스의 사용자 항목을 처리합니다. 인증 서버는 기존 AFS 토큰을 사용하지 않고 자신의 인증 프로세스를 수행합니다. 기본적으로 이것은 로컬(UNIX) ID를 인증하며, AFS가 특권을 부여한 관리자에 해당되지 않을 수 있습니다. -admin 인수를 삽입하여 인증 데이터베이스 항목에 ADMIN 플래그가 있는 ID의 이름을 지정하십시오. 항목에 플래그가 있는 지 확인하려면, ADMIN 플래그가 설정되어 있는지 확인하려면에서 설명한 것처럼 kas examine 명령을 실행하십시오.
%
uss bulk <bulk input file> \
[-template <pathname of template file>] \
-admin <administrator to authenticate> \
[-dryrun] [-overwrite] \
[-pwexpires <password expires in [0..254] days (0 => never)>] \
[-pipe]
Administrator's (admin_user) password: admin_password
여기서,
암호가 유효하지 않게 되면(만기) 사용자는 인증을 받을 수 없게 되지만 30일 내에 kpasswd 명령을 실행하여 암호를 변경할 수 있습니다(그 이후에는 관리자가 이를 변경해야 함).
% vos release <volume name or ID>
| 주: | 이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 마운트 포인트를 작성 또는 삭제하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다. |
자동화 방법을 사용하지 않는 경우에도 사용자의 UNIX UID가 보호 서버에서 자동으로 지정했거나 -uid 인수를 사용하여 지정한 AFS UID에 일치하도록 설정하십시오. 새로운 사용자의 AFS UID가 uss add 출력에서 생성한 추적에 나타나거나 보호 데이터베이스 항목을 표시하려면에서 설명하는 것처럼 pts examine 명령을 사용하여 표시할 수 있습니다.