관리 안내서


uss 명령 집합을 사용한 사용자 계정 작성 및 삭제

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 명령 집합 개요

uss 집합의 명령을 사용하면 AFS 사용자 계정의 작성과 삭제 작업을 자동화할 수 있습니다.

AFS 사용자 계정의 구성요소

AFS 사용자 계정에는 여러 구성요소가 있습니다. 필요한 두 구성요소는 보호 데이터베이스와 인증 데이터베이스에 있는 항목이지만 다른 구성요소는 기능과 가용성을 더해줍니다. 다음 정보는 사용자 계정 관리의 해당 절에도 있지만 편의를 위해 여기서 반복합니다.

uss 명령의 특권 요구조건

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 명령이 이미 삭제된 계정 구성요소를 참조하는 경우 어떤 일이 일어나는지를 설명합니다.


uss를 사용한 로컬 암호 파일 항목 작성

셀의 AFS 파일 공간에 대해 인증된 액세스를 확보하려면 사용자는 유효한 AFS 토큰뿐만 아니라 AFS 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 이와 동등한 것)에 있는 항목도 있어야 합니다. 이 절에서는 사용자 AFS UID가 로컬 암호 파일에 표시된 UNIX UID와 일치해야 하는 중요한 이유, 파일의 암호 필드에 들어가는 적합한 값을 설명하고 단일 원본 암호 파일을 작성하는 방법을 간단히 설명합니다.

템플릿 파일의 E 명령을 사용하여 계정 작성의 일부로 로컬 암호 파일 항목을 자동으로 생성하는 방법은 공통 원본 암호 파일 작성을 참조하십시오.

다음 정보는 사용자 계정 관리의 해당 절에도 있지만 편의를 위해 여기서 반복합니다.

일치하는 AFS와 UNIX UID 지정

사용자 계정은 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 명령을 사용하여 사용자 계정을 작성할 때 로컬 암호 파일의 공통 원본 버전을 작성하는 방법을 설명합니다. 단계 순서는 다음과 같습니다.

  1. 템플릿 파일에 E 명령을 포함하여 로컬 암호 파일 항목의 형식을 사용하는 1-행 파일을 작성합니다.
  2. 1-행 파일을 로컬 암호 파일의 공통 원본 버전에 통합합니다. 이 파일을 AFS에 저장하는 것이 좋습니다. 다음 두 스크립트 예를 참조하여 이 단계를 자동하는 방법을 알아보십시오.
  3. package 프로그램을 사용한 클라이언트 시스템 구성의 설명대로 AFS package 유틸리티를 사용하여 각 클라이언트 시스템에 공동 암호 파일을 분배합니다.

예로서, 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

uss를 사용한 기존 UNIX 계정 변환

이 절에서는 AFS 계정으로 변환되어야 하는 기존 UNIX 계정이 있는 경우 고려해야 하는 3가지 주요 문제를 설명합니다.

UNIX와 AFS UID 일치시키기

앞에서 설명했듯이 AFS 사용자는 인증된 사용자로 모든 클라이언트 시스템에서 AFS 파일 공간을 액세스할 수 있도록 로컬 암호 파일에 항목이 있어야 합니다. 관리와 사용 모두 UNIX UID와 AFS UID가 일치할 때 훨씬 쉬워집니다. 기존 UNIX 계정을 변환할 때 다음과 같이 두 가지 대안이 있습니다.

제대로 암호 필드 설정하기

기존 UNIX 계정에는 이미 암호 필드에 (섞인) 암호가 있는 로컬 암호 파일의 항목이 있습니다. 아마도 사용하는 로그인 유틸리티의 유형에 따라 필드의 값을 변경해야 합니다.

로컬 암호 파일 항목에 실제 암호를 배치하도록 선택하면 E 명령어를 사용하여 한 행 파일 작성에서 설명하는 것처럼 템플릿 파일 E 명령어(instruction)를 사용할 때 더미 암호를 정의할 수 있습니다. 사용자가 UNIX 암호 설정 명령(passwd 또는 동급)을 실행하여 이 더미 암호를 실제의 비밀 암호로 바꾸게 하십시오.

AFS로 로컬 파일 이동

기존 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 명령을 실행하기 전에 템플릿을 구성하게 되므로 구성 세부사항을 주의해서 고려해 보고 구문 오류를 수정할 시간을 갖게 됩니다. 다음 목록은 템플릿 사용의 추가적인 이점을 요약해서 설명합니다.

다음 목록은 템플릿 파일에 나타날 수 있는 지침을 설명하고 좀더 자세한 정보를 제공하는 후속 절을 알려 줍니다. 이 목록은 다른 유형의 명령어간의 종속성을 제대로 처리하는 데 있어서 최적이 될 수 있는 순서로 후속 절을 나열하고 있습니다.

G
uss 명령 인터프리터가 새로 작성한 홈 디렉토리를 공평하게 분배하는 상위 디렉토리의 집합 중 하나에 해당하는 디렉토리를 정의합니다. V 명령어(instruction)의 mount_point 필드에 해당 템플릿 파일 변수 $AUTO를 입력하십시오. G 명령어를 사용하여 사용자 홈 디렉토리의 공평한 분배 및 V 명령어를 사용한 볼륨 작성을 참조하십시오.

V
볼륨을 작성하고, 이를 사용자 홈 디렉토리로서 AFS 파일 공간의 지정된 위치에 마운트하고, 볼륨의 할당량을 설정하고, 디렉토리에 대한 소유자와 ACL을 정의합니다. 이 명령어는 비어 있지 않은 (0길이가 아닌) 템플릿에 나타나야 합니다. V 명령어를 사용한 볼륨 작성을 참조하십시오.

D
보통 새로운 홈 디렉토리의 하위 디렉토리에 해당하는 디렉토리를 작성하고 그 모드 비트, 소유자 및 ACL을 설정합니다. D 명령어를 사용하여 디렉토리 작성을 참조하십시오.

F
프로토타입을 복사하여 파일을 작성하고 그 모드 비트와 소유자를 설정합니다. F 명령어를 사용하여 프로토타입에서 파일 작성을 참조하십시오.

E
명령어 자체의 내용에 복사하여 단일 행 파일을 작성하고 이 파일의 모드 비트와 소유자를 설정합니다. E 명령어를 사용하여 한 행 파일 작성을 참조하십시오.

L
하드 연결을 작성합니다. L 및 S 명령어를 사용한 연결 작성을 참조하십시오.

S
기호 연결을 작성합니다. L 및 S 명령어를 사용한 연결 작성을 참조하십시오.

A
암호 및 인증 시도에 대한 제한을 부여하여 계정 보안을 향상시킵니다. A 명령어로 계정 보안 높이기를 참조하십시오.

X
명령을 실행합니다. X 명령어를 사용하여 명령 실행을 참조하십시오.

세 가지 유형의 사용자 계정 작성

uss add 및 uss bulk 명령을 사용하면 기능 레벨에서 다른 위치를 차지하는 세 가지 유형의 계정을 작성할 수 있습니다. 유형에 대한 설명은 AFS 사용자 계정 구성을 참조하십시오. 다음 목록은 각 유형에 대한 템플릿을 구성하는 방법을 설명합니다.

템플릿 파일에서 상수 및 변수 사용

uss 템플릿 파일의 각 명령어는 작성하는 요소의 특성을 정의하는 몇몇 필드를 가집니다. 예를 들어 D 명령어의 필드는 디렉토리의 경로명, 소유자, 모드 비트 및 ACL을 정의합니다.

변수, 상수 또는 두 가지의 조합에 해당하는 세 가지 유형의 값을 필드에 삽입할 수 있습니다. 해당 값은 원하는 구성에 따라 달라지며 사용자가 uss add 명령에 제공하는 인수 또는 사용자가 벌크 입력 파일 add 명령어에 포함시키는 필드를 결정합니다.

계정 구성의 한 측면이 모든 사용자에게 동일하면 문자 스트링을 삽입하여 해당 필드에 상수 값을 정의하십시오. 예를 들어, 모든 사용자 볼륨에 10,000 KB의 공간 할당량을 지정하려면 V 명령어의 quota 필드에 문자열 10000을 추가하십시오.

한편 계정 구성의 한 측면이 사용자마다 다른 경우 해당 필드에 변수를 추가하십시오. 각 계정을 작성할 때 uss add 명령에 해당 인수를 제공하거나 벌크 입력 파일의 add 명령어의 해당 필드에 값을 제공하여 변수에 값을 제공하십시오.

uss 명령 집합은 각각이 표 3에서 요약된 것처럼 그 값의 해당 원본을 가지고 있는 템플릿 변수의 집합을 정의합니다. 어떤 목적을 가지고 있는지에 대한 설명을 보려면 각 템플릿(V 명령어를 사용한 볼륨 작성에서 X 명령어를 사용하여 명령 실행)에 대해 다음 절을 참조하십시오.

표 3. uss 템플릿 변수 값의 원본
변수 값 원본
$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이라는 템플릿 파일을 검색합니다.

  1. 현재 작업 디렉토리
  2. /afs/cellname/common/uss, 여기서 cellname은 로컬 셀입니다.
  3. /etc

다른 이름을 가지거나 다른 디렉토리에 저장되어 있는 템플릿 파일을 사용하려면 uss add 또는 uss bulk 명령에 -template 인수를 포함시키십시오. 파일 이름만 제공하는 경우 명령 인터프리터는 바로 전에 나열된 디렉토리에서 해당 파일을 찾습니다. 경로 이름과 파일 이름을 제공하면 지정된 디렉토리만 검색하며 현재 작업 디렉토리에 상대적으로 부분 경로 이름을 해석합니다.

템플릿 구성을 위한 몇몇 일반 규칙

이 절에서는 템플릿 파일을 구성할 때 따라야 할 몇몇 일반 규칙을 요약해서 설명합니다. 각 명령어 구문 정의를 보려면 다음 절(G 명령어를 사용하여 사용자 홈 디렉토리의 공평한 분배에서 X 명령어를 사용하여 명령 실행)을 참조하십시오.

로컬 디스크 디렉토리 및 파일 작성에 대하여

D, E 및 F 명령어를 사용하여 uss 명령을 실행하고 있는 시스템의 로컬 파일 시스템에서 디렉토리나 파일을 작성할 수 있으나 이런 디렉토리나 파일을 사용하는 것은 권장되지 않습니다. 이렇게 하면 다음과 같은 두 가지 잠재적인 문제가 발생할 수 있습니다.

시스템의 로컬 디스크 구성에 대해 권장되는 방법은 그 대신 AFS package 유틸리티를 사용하는 것입니다. package 프로그램을 사용한 클라이언트 시스템 구성을 참조하십시오.

예제 uss 템플릿

이 절에서는 기본 및 전체 계정 유형에 대한 예제 템플릿(인증 전용 계정에 대한 템플릿은 비어 있음)을 설명합니다.

첫 번째 예제는 기본 계정을 작성하는 것입니다. 여기에는 두 개의 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

G 명령어를 사용하여 사용자 홈 디렉토리의 공평한 분배

수천 개의 사용자 계정이 있는 셀에서 사용자 볼륨에 대한 마운트 포인트를 모두 한 디렉토리에 배치할 경우 사용자 홈 디렉토리가 액세스될 때 디렉토리 조회 속도가 상당히 느려지므로 이들 마운트 포인트를 여러 상위 디렉토리에 분배하는 것이 바람직한 경우가 종종 있습니다. 가능한 해결 방법은 사용자 홈 디렉토리를 알파벳 순서대로 그룹화하거나 학술 또는 기업 부문과 같은 부서를 나타내는 상위 디렉토리를 작성하는 것입니다. 그러나 실제로 대규모 셀에서는 이러한 몇몇 그룹이 여전히 너무 커서 디렉토리 조회 속도를 떨어뜨릴 수 있으므로 이러한 그룹에 속하는 사용자들은 자신의 홈 디렉토리를 액세스할 때마다 부당하게 불리한 조건에 처하게 됩니다. 작업장 부서를 나타내는 그룹화의 또 다른 맹점은 사용자가 부서 관계를 변경할 때 마운트 포인트를 옮겨야 한다는 것입니다.

한 가지 대안은 작업장 부서를 나타내지 않는 여러 개의 상위 디렉토리로 사용자 홈 디렉토리를 공평하게 분배하는 것입니다. 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와 같은 완전한 경로 이름을 지정하십시오.

V 명령어를 사용한 볼륨 작성

템플릿 파일이 비어 있지 (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

여기서,

V
볼륨 작성 명령어를 나타냅니다.

volume_name
VLDB에 기록된 것처럼 볼륨의 이름을 지정합니다.

사용자 이름을 볼륨 이름의 일부로 포함시키는 규칙을 따르려면 이 필드에 $USER 변수를 포함시키십시오. 이 변수는 uss add 명령에 대한 -user 인수에서 또는 벌크 입력 파일 add 명령어의 username 필드에서 그 값을 취합니다.

ABC Corporation 예제에서는 값 user.$USER를 사용하여 일반적인 볼륨 이름, user.username을 지정합니다. 예를 들어 사용자 smith에 대한 계정을 작성할 때는 -user smith를 uss add 명령에 대한 인수로 포함시키거나 벌크 입력 파일 add 명령어의 username 필드에 값 smith를 추가하십시오.

server
새 볼륨을 작성할 파일 서버 시스템을 명명합니다. 완전 규정화된 호스트 이름(예: fs1.abc.com)을 제공하는 것이 가장 바람직하지만 셀의 명명 서비스를 사용하여 볼륨이 작성될 때 약어 형태를 해석할 수 있으면 약어 형태도 허용됩니다.

다른 파일 서버 시스템에 다른 사용자의 볼륨을 배치하려면 이 필드에 $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을 추가하십시오.

partition
사용자 볼륨을 작성할 파티션을 지정합니다. 이 파티션은 server 필드에 명명된 파일 서버 시스템에 있어야 합니다. 그 완전한 이름(예: /vicepa)으로 파티션을 식별하거나 약어 및 별명 사용 규칙에 나열된 약어 중 하나를 사용하십시오.

다른 파티션에 다른 사용자의 볼륨을 배치하려면 이 필드에 $PART 변수를 사용하고 uss add 명령의 -partition 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 partition 필드에서 $PART 변수의 값을 제공하십시오. 모든 파티션 이름이 /vicep 문자열로 시작되므로 이 문자열을 상수로서 $PART 변수와 함께 조합하는 것이 편리한 방법입니다.

ABC Corporation 예제 템플릿은 /vicep$PART와 같이 상수 문자열 /vicep를 $PART 변수와 조합합니다.

quota
블록이 파일 서버 시스템의 디스크에서 차지할 수 있는 킬로바이트 블록의 최대 수를 설정합니다. 이것은 정수여야 합니다. 모든 사용자 볼륨에 동일한 할당량을 지정하려면 상수 값을 지정하십시오. 다른 볼륨에 다른 할당량을 지정하려면 이 필드에 숫자 변수($1 - $9) 중 하나를 입력하고 uss add 명령에 대한 -var 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 해당 필드에 그 값을 제공하십시오.

ABC Corporation 예제는 새로운 모든 사용자에게 5000 KB의 초기 할당량을 부여합니다.

mount_point
볼륨의 루트 디렉토리 및 사용자의 홈 디렉토리로 작동하는 볼륨에 대한 마운트 포인트를 작성합니다. 일반적으로 사용자 홈 디렉토리 이름에는 이 필드에 $USER 변수를 포함시켜 읽을 수 있는 사용자 이름이 포함됩니다.

읽기 전용 볼륨에서 새 마운트 포인트를 작성하려고 할 때 실패하지 않도록 마운트 포인트까지의 읽기/쓰기 경로를 지정하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $AUTO 변수를 사용하는 경우 각 G 명령어에서 명명하는 디렉토리는 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

마운트 포인트 이름의 다른 부분도 사용자마다 다른 경우 이 필드에 $MTPT 변수를 사용하고 uss add 명령의 -mount 인수를 사용해서 또는 벌크 입력 파일 add 명령어의 mount_point 필드에 값을 제공할 수 있습니다. 그러나 템플릿의 다음 명령어에 $MTPT 변수가 나타나면 (보통 D, E 또는 F 명령어에서) 이 변수는 이 필드의 전체 내용을 그 값으로 취합니다.

하나 이상의 상위 디렉토리에 홈 디렉토리를 함께 그룹화하는 것에 대해 내린 결정에 따라 상수와 변수를 조합하십시오. 템플릿을 참조하는 uss add 또는 uss bulk 명령을 실행하기 전에 이 상위 디렉토리가 이미 있어야 합니다. 홈 디렉토리 그룹화의 다양한 방법은 다음과 같습니다.

owner
UNIX ls -ld 명령의 출력에 사용자의 사용자 이름 또는 UID가 마운트 포인트의 소유자로 지정되도록 지정합니다. 홈 디렉토리 소유권에 대한 표준 규칙을 따르려면 ABC Corporation 예제 템플릿에서처럼 이 필드에서 $UID 변수를 사용하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).

ACL
새 홈 디렉토리에 ACL을 설정합니다. 각각이 AFS 사용자 이름이나 그룹 이름으로 구성되고 해당 순서대로 권한이 부여된 하나 이상의 쌍을 이룬 값을 제공하십시오(그룹 이름은 사용될 보호 데이터베이스에 이미 있어야 함). 쌍 내의 두 값과 쌍들간은 공백으로 분리하십시오. 사용할 수 있는 권한에 대한 설명은 AFS ACL 권한을 참조하십시오.

최소한 이 필드에 값 $USER all을 포함시켜 새 사용자에게 모든 권한을 부여하십시오. 파일 서버는 system:administrators 그룹에도 모든 권한을 자동으로 부여합니다. 계정 작성의 마지막 단계에서 uss 명령 인터프리터는 작성 프로세스중에 설정된 ACL에서 uss 명령의 실행자를 자동으로 삭제하므로 이 사용자에게 권한을 부여할 수 없습니다.

ABC Corporation 예제에서는 다음 값을 사용하여 새로운 사용자에게 모든 권한을 부여하고 abc:staff 그룹의 구성원에게 r(읽기) 및 l(조회) 권한을 부여합니다.

$USER all abc:staff rl

D 명령어를 사용하여 디렉토리 작성

템플릿 파일의 각 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

여기서,

D
디렉토리 작성 명령어를 나타냅니다.

pathname
디렉토리의 전체 경로 이름을 지정합니다. 이것이 사용자 홈 디렉토리의 하위 디렉토리이면 $MTPT 변수를 사용하여 홈 디렉토리 경로 이름을 지정하는 것이 가장 간단합니다. $MTPT 변수는 D 명령어에 나타나면 이전 V 명령어의 mount_point 필드에서 그 값을 취합니다(이러한 종속성을 보면 D 명령어가 V 명령어 다음에 나와야 하는 이유를 알 수 있습니다).

디렉토리로의 읽기/쓰기 경로 이름을 지정하여 읽기 전용 볼륨에서 새 디렉토리를 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

ABC Corporation 예제에서는 값 $MTPT/Mailbox를 사용하여 사용자의 홈 디렉토리에 Mailbox 하위 디렉토리를 배치합니다.

mode_bits
디렉토리의 UNIX 모드 비트를 정의합니다. 허용되는 값은 권한 조합에 따라 표준 3자리 또는 4자리 숫자입니다. 예제: 0755는 rwxr-xr-x에 해당하고 0644는 rw-r--r--에 해당합니다. 첫째(소유자) x 비트는 액세스로의 액세스를 허용하기 위해 설정되어 있어야 합니다.

ABC Corporation 예제는 값 0700을 사용하여 Mailbox 하위 디렉토리의 모드 비트를 rwxr-----로 설정합니다.

owner
UNIX ls -ld 명령의 출력에서 사용자의 사용자 이름이나 UID가 디렉토리의 소유자로 지정되도록 지정합니다.

이 디렉토리가 AFS에 위치하는 경우 ABC Corporation 예제 템플릿에서 처럼 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).

디렉토리가 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하는 것이 가장 쉬운 방법입니다. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.

ACL
새 디렉토리에 ACL을 설정합니다. 각각이 AFS 사용자 이름이나 그룹 이름으로 구성되고 해당 순서대로 권한이 부여된 하나 이상의 쌍을 이룬 값을 제공하십시오(그룹 이름은 사용될 보호 데이터베이스에 이미 있어야 함). 쌍 내의 두 값과 쌍들간은 공백으로 분리하십시오. 사용할 수 있는 권한에 대한 설명은 AFS ACL 권한을 참조하십시오.

최소한 값 $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 명령어는 기존의 프로토타입 파일 내용을 복사하여 파일을 작성합니다. 템플릿에서 이 명령어의 수에는 제한이 없으며 각 명령어가 다른 프로토타입을 참조할 수 있습니다. 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

여기서,

F
파일 작성 명령어를 나타냅니다.

pathname
파일 이름을 포함하여 작성할 파일의 전체 경로 이름을 지정합니다. 이것이 사용자 홈 디렉토리나 그 하위 디렉토리에 있으면 $MTPT 변수를 사용하여 홈 디렉토리 경로 이름을 지정하는 것이 가장 간단합니다. $MTPT 변수는 F 명령어에 나타나면 이전 V 명령어의 mount_point 필드에서 그 값을 취합니다(이러한 종속성을 보면 F 명령어가 V 명령어 다음에 나와야 하는 이유를 알 수 있습니다).

파일로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 파일을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

ABC Corporation 예제에서는 값 $MTPT/.login을 사용하여 사용자의 홈 디렉토리에 .login이라는 파일을 배치합니다.

mode_bits
파일의 UNIX 모드 비트를 정의합니다. 허용되는 값은 권한 조합에 따라 표준 3자리 또는 4자리 숫자입니다. 예제: 0755는 rwxr-xr-x에 해당하고 0644는 rw-r--r--에 해당합니다.

ABC Corporation 예제는 값 0755를 사용하여 .login 파일에 대한 모드 비트를 rwxr-xr-x로 설정합니다.

owner
UNIX ls -l 명령의 출력에서 사용자의 사용자 이름이나 UID가 파일의 소유자로 지정되도록 지정합니다.

이 파일이 AFS에 위치하는 경우 ABC Corporation 예제 템플릿에서 처럼 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).

파일이 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하는 것이 가장 쉬운 방법입니다. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.

prototype_file
복사할 프로토타입 파일이 있는 AFS 또는 로컬 디렉토리를 명명합니다. 프로토타입 파일의 이름은 pathname 필드의 마지막 요소와 일치해야 합니다.

ABC Corporation 예제는 디렉토리 /afs/abc.com/admin/user/proto에 있는 .login이라는 프로토타입 파일을 참조합니다.

E 명령어를 사용하여 한 행 파일 작성

템플릿 파일의 각 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"

여기서,

E
파일 작성 명령어를 나타냅니다.

pathname
파일 이름을 포함하여 작성할 파일의 전체 경로 이름을 지정합니다. 여기에는 변수가 포함될 수 있습니다. 이것이 사용자 홈 디렉토리나 그 하위 디렉토리에 있으면 $MTPT 변수를 사용하여 홈 디렉토리 경로 이름을 지정하는 것이 가장 간단합니다. $MTPT 변수는 E 명령어에 나타나면 이전 V 명령어의 mount_point 필드에서 그 값을 취합니다(이러한 종속성을 보면 E 명령어가 V 명령어 다음에 나와야 하는 이유를 알 수 있습니다).

파일로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 파일을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

ABC Corporation 예제는 E 명령어에 의해 작성된 파일을 /afs/.abc.com/common/etc/newaccts 디렉토리에 쓰고 새로운 사용자 이름 다음에 이를 명명합니다.

   /afs/.abc.com/common/etc/newaccts/passwd_$USER

mode_bits
파일의 UNIX 모드 비트를 정의합니다. 허용되는 값은 권한 조합에 따라 표준 3자리 또는 4자리 숫자입니다. 예제: 0755는 rwxr-xr-x에 해당하고 0644는 rw-r--r--에 해당합니다.

ABC Corporation 예제는 값 0644를 사용하여 passwd_user 파일에 대한 모드 비트를 r-xr--r--로 설정합니다.

owner
UNIX ls -l 명령의 출력에서 사용자의 사용자 이름이나 UID가 파일의 소유자로 지정되도록 지정합니다.

이 파일이 AFS에 위치하고 해당 사용자가 소유하는 경우 이 필드에 $UID 변수를 추가하십시오. 그러면 보호 서버는 사용자가 -uid 인수를 uss add 명령에 제공하거나 벌크 입력 파일 add 명령어에서 uid 필드를 채우지 않는 한 자동으로 AFS UID를 지정합니다(기존의 UNIX 계정을 변환하는 경우 uss를 사용한 기존 UNIX 계정 변환의 추가 고려사항에 대한 설명을 참조하십시오).

파일이 로컬 디스크에 있으면 uss 명령을 실행하고 있는 사용자 이름이나 UNIX UID를 지정하십시오. 다른 사용자를 지정할 때 발생하는 문제에 대해서는 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.

ABC Corporation 예제는 새로운 사용자가 직접 사용하기 보다는 공통 암호 파일에 통합하기 위해 AFS 파일을 작성합니다. 따라서 로컬 수퍼유저 루트를 새 파일의 소유자로 지정합니다. AFS 파일에 대체 소유자를 지정하면 다음과 같은 복잡한 문제가 발생합니다. AFS 파일에 대해 chown 명령을 실행하면 system:administrators 그룹에서 멤버쉽이 필요하지만 uss 명령의 실행자는 이 그룹의 구성원으로 반드시 인증을 받아야 합니다.

contents
새 파일에 기록할 단일 행 문자 스트링을 지정합니다. 하나 이상의 공백이 포함되어 있는 경우 큰 따옴표(")로 묶으십시오. 개행 문자를 포함할 수 없으나 명령 인터프리터가 파일을 작성할 때 확인하는 표준 변수는 포함할 수 있습니다.

ABC Corporation 예제는 암호 파일 항목을 작성하기 위해 contents 필드에 다음 값을 포함하고 있습니다.

   $USER:X:$UID:10:$NAME:$MTPT:/bin/csh

L 및 S 명령어를 사용한 연결 작성

템플릿 파일의 각 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

여기서,

L
하드 연결 작성 명령어를 나타냅니다.

S
기호 연결 작성 명령어를 나타냅니다.

existing_file
기존 파일의 완전한 경로 이름을 지정합니다. 이것이 사용자 홈 디렉토리나 그 하위 디렉토리에 있으면 $MTPT 변수를 사용하여 홈 디렉토리 경로 이름을 지정하는 것이 가장 간단합니다. $MTPT 변수는 L 또는 S 명령어에 나타나면 이전 V 명령의 mount_point 필드에서 그 값을 취합니다(이러한 종속성을 보면 V 명령어 다음에 나와야 하는 이유를 알 수 있습니다).

이름이 숫자 기호(#)나 퍼센트 기호(%)로 시작하는 파일에 심볼릭 링크를 작성하지 마십시오. 캐쉬 관리 프로그램은 그 내용이 이들 문자 중 하나로 시작되는 기호 연결을 작성할 때 각각 일반 또는 읽기/쓰기 마운트 포인트로 해석합니다.

ABC Corporation 예제는 그 마운트 포인트로의 경로를 지정하여 선행하는 X 명령어에 의해 작성되어 마운트된 공개적으로 읽을 수 있는 볼륨으로의 연결을 작성합니다.

   /afs/abc.com/public/$USER

link
파일에 대한 두 번째 이름의 완전한 경로 이름을 지정합니다. 이것이 사용자 홈 디렉토리나 그 하위 디렉토리에 있으면 $MTPT 변수를 사용하여 홈 디렉토리 경로 이름을 지정하는 것이 가장 간단합니다.

연결로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 새 연결을 작성하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 이 필드에 $MTPT 변수를 사용하는 경우 각 V 명령어의 mount_point 필드의 값은 이미 읽기/쓰기 경로를 나타내고 있을 것입니다. 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

ABC Corporation 예제는 사용자의 홈 디렉토리에 public이라는 연결을 작성합니다.

   $MTPT/public

A 명령어로 계정 보안 높이기

템플릿 파일의 A 명령어는 사용자 암호 선택 및 인증 시도에 대해 다음 제한을 부여하여 셀 보안을 강화합니다.

A 명령어의 필드에 대한 다음 설명은 예제 uss 템플릿의 전체 계정 템플릿에 나오는 예제를 참조하며 암호 수명을 250일로 설정하고, 암호의 재사용을 금지하고, 실패한 인증 시도 수를 9로 제한하고, 인증 제한이 초과된 경우 25분의 잠금 시간을 생성합니다.

   A $USER 250 noreuse 9 25

A 명령어의 구문은 다음과 같습니다.

   A  username  password_lifetime  password_reuse  failures  locktime

여기서,

A
보안 강화 명령어를 나타냅니다.

username
보안 제한을 부여할 인증 데이터베이스 항목을 명명합니다. $USER 변수를 사용하여 uss add 명령의 -user 인수로부터 또는 벌크 입력 파일의 add 명령어의 username 필드로부터 사용자 이름을 읽습니다. ABC Corporation 예제는 이 값을 사용합니다.

password_lifetime
사용자 암호가 변경된 후에 암호가 유효한 상태로 남아 있는 일 수를 설정합니다. 암호가 유효하지 않게 되면(만기) 사용자는 인증을 받을 수 없게 되지만 30일 내에 kpasswd 명령을 실행하여 암호를 변경할 수 있습니다(그 이후에는 관리자가 이를 변경해야 함).

범위 1 - 254의 정수를 지정하여 만기가 될 때까지의 일 수를 지정하는 데 여기서 값 0은 암호가 절대 만기되지 않음을 나타내고 값 $PWEXPIRES는 uss add 또는 uss bulk 명령의 -pwexpires 인수로부터 일 수를 읽어오게 됩니다. A 명령어가 템플릿 파일에 나타나지 않으면 기본적으로 사용자 암호는 만기되지 않습니다.

ABC Corporation 예제는 250일의 암호 수명을 설정합니다.

password_reuse
사용자가 마지막 20개의 암호 중 하나와 유사한 암호로 암호를 변경할 수 있는지 여부를 결정합니다(kpasswd 또는 kas setpassword 명령 사용). 허용되는 값은 재사용을 허용하는 reuse와 재사용을 금지하는 noreuse입니다. A 명령어가 템플릿 파일에 나타나지 않으면 기본값은 암호 재사용을 허용하는 것입니다.

ABC Corporation 예제는 암호 재사용을 금지합니다.

failures
사용자가 인증 동안 잘못된 암호를 제공해도 문제가 되지 않는 연속 횟수를 설정합니다(klog 명령이나 AFS 토큰을 부여하는 로그인 유틸리티 사용). 사용자가 제한을 초과하면 인증 서버는 locktime 필드에 지정된 시간 동안 추가적인 인증 시도를 거부합니다.

범위 1 - 254의 정수를 지정하여 허용되는 실패 횟수를 지정하거나 실패한 시도 수를 제한하지 않도록 하는 0 값을 지정하십시오. A 명령어가 템플릿 파일에 나타나지 않으면 기본값은 제한 없는 실패를 허용하는 것입니다.

ABC Corporation 예제는 실패한 시도 횟수를 9회로 제한합니다.

locktime
인증 서버가 failures 필드에 설정된 실패 제한을 초과한 사용자로부터의 인증 시도를 거부하는 기간을 지정합니다.

범위 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 명령어를 사용하여 명령 실행

템플릿 파일의 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 add 명령(템플릿 작성에 대해서는 uss 템플릿 파일 구성 참고)을 실행하여 개별 계정을 작성할 수 있습니다. 이 명령을 실행할 때 uss 명령 인터프리터는 다양한 AFS 서버에 접속하여 다음 작업을 수행합니다.

다른 파일 시스템 오브젝트를 작성하기 위해 템플릿에 포함시켜야 하는 명령어 유형을 검토하려면 uss 템플릿 파일 구성을 참조하십시오. 템플릿이 비어 있으면 uss add 명령은 보호 데이터베이스 및 인증 데이터베이스 항목으로 구성된 인증 전용 계정을 작성합니다.

uss add 명령을 실행할 때는 해당 명령 인수를 포함시켜 템플릿 파일의 각 변수에 대해 값을 제공하십시오. 변수 값을 제공하지 못하면 uss 명령 인터프리터는 계정 작성의 실패를 유발하는 널 문자열을 대체합니다. 해당 변수가 템플릿에 나타나지 않는 명령행 인수를 포함시키는 경우 이 인수는 무시됩니다.

표 4에서는 uss add 명령과 변수 및 인수간의 맵핑을 요약해서 보여줍니다. 이 테이블은 표 3에서 발췌한 것이지만 그 값을 명령행 인수에서 취하는 변수만 포함되어 있습니다.

표 4. uss 템플릿 변수에 대한 명령행 인수 원본
변수 명령행 인수
$MTPT -mount (V 명령어에서 사용)
$NAME 제공되는 경우 -realname, 그렇지 않은 경우 -user
$PART -partition
$PWEXPIRES -pwexpires
$SERVER -server
$UID 제공되는 경우 -uid, 그렇지 않은 경우 보호 서버에 의해 할당
$USER -user
$1에서 $9 -var

uss add 명령을 사용하여 AFS 계정을 작성하려면

  1. 다음 특권을 전부 사용하여 AFS ID를 인증하십시오. 전형적인 구성에서 admin 사용자 계정에는 이것이 들어 있거나 사용자에게 개인 관리 계정이 있을 수 있습니다(셀 보안을 증가하려면 관리 프로시듀어를 수행하는 중에만 사용할 수 있도록 특별 권한 계정을 작성하는 것이 가장 좋습니다. 더 자세한 내용은 관리 특권 개요를 참조하십시오). 필요한 경우 klog 명령을 실행하여 인증하십시오.

       % klog admin_user
       Password: admin_password
    

    다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.

  2. (선택적) 로컬 수퍼유저 루트로서 로그인하십시오. 이것은 로컬 파일 시스템에 새 파일이나 디렉토리를 작성하며 오브젝트가 작성될 때 대체 소유자를 지정하려는 경우에만 필요합니다. 관련 문제점에 대한 설명을 보려면 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.
  3. 사용중인 템플릿 파일의 위치와 기능을 확인하십시오. uss 명령 인터프리터가 해당 템플릿을 어디에서 찾을지에 대한 설명을 보려면 템플릿 파일을 저장할 위치를 참조하십시오. 원하는 경우 항상 대체 경로 이름을 제공할 수 있습니다. 또한 템플릿에서 사용되는 변수를 확인하여 uss 명령행에 올바른 인수를 제공했는지 확인하십시오.
  4. (선택적) 템플릿이 있는 디렉토리로 변경하십시오. 이것은 단계 6에서 입력해야 하는 경로 이름의 유형을 반영합니다.

       % cd template_directory
    
  5. (선택적) -dryrun 플래그와 함께 uss add 명령을 실행하여 계정 작성을 미리 검토하십시오. -dryrun 플래그를 사용하지 않고 명령을 다시 실행하기 전에 오류 메시지를 살펴 보고 원인을 수정하십시오. 다음 단계에서는 uss add 명령의 구문을 설명합니다. -dryrun 플래그에 대한 자세한 정보를 보려면 오류 및 인터럽트된 조작 피하기 및 복구를 참조하십시오.
  6. uss add 명령을 실행하여 계정을 작성하십시오. 단일 행에 명령을 입력하십시오. 여기에서는 이해하기 편리하도록 여러 행으로 나타낸 것입니다.

    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
    

    여기서,

    ad
    허용되는 add의 가장 짧은 축약형입니다.

    -user
    사용자의 인증 데이터베이스 및 보호 데이터베이스 항목을 명명합니다. 이것이 사용자 이름이 되므로(사용자가 로그인할 때 사용하는 이름), 여러 운영 체제에서 사용자 이름에 대해 부여하는 제한을 준수해야 합니다(보통 8자까지만 포함). 다음과 같은 문자를 피하십시오. 콜론(:), 세미콜론(;), 쉼표(,), at 기호(@), 공백, 새 행 그리고 마침표(.)입니다. 이런 문자는 특별 관리 이름에만 주로 사용됩니다.

    이 인수는 템플릿 파일의 $USER 변수에 대한 값을 제공합니다. 사용자 이름 표준화에 대한 제안을 보려면 사용자 이름 선택 및 다른 계정 구성요소 명명을 참조하십시오.

    -admin
    admin 플래그와 같은 그 인증 데이터베이스 항목에 ADMIN 플래그가 있는 관리 계정을 명명합니다. 암호 프롬프트는 이를 admin_user로 표시합니다. 적합한 암호를 admin_password로 입력합니다.

    -realname
    사용자의 실제 이름을 지정합니다. 공백이나 마침표가 포함된 경우 큰 따옴표(")로 묶으십시오. 이 이름을 제공하지 않으면 기본적으로 -user 인수와 함께 제공되는 사용자 이름이 됩니다.

    이 인수는 템플릿 파일의 $NAME 변수에 대한 값을 제공합니다. 이 인수와 변수를 /etc/passwd와 같은 로컬 암호 파일에 항목을 작성하기 위한 자동 프로세스의 일부로 사용하는 것에 대한 정보를 보려면 공통 원본 암호 파일 작성을 참조하십시오.

    -pass
    사용자의 초기 암호를 지정합니다. 암호를 처리하는 AFS 명령들이 가상으로는 전혀 제한이 없는 길이의 문자열을 허용한다고 해도 많은 응용프로그램과 유틸리티에서 허용하는 최대 길이인 8자 이하의 암호를 사용하는 것이 좋습니다.

    초기 암호로 선택할 수 있는 것 중에는 사용자 이름, 사회 보장 번호와 같은 개인 ID 번호 또는 changeme와 같은 표준 문자열이 있습니다. 템플릿 파일에서는 해당 변수에 대한 제한이 없습니다.

    사용자에게 처음으로 AFS에 대해 인증을 받자마자 비밀 문자열로 암호를 변경하도록 지시하십시오. AFS 사용자 안내서에서는 kpasswd 명령을 사용하여 AFS 암호를 변경하는 방법을 설명합니다.

    -pwexpires
    사용자 암호가 변경된 후에 유효한 상태로 남아 있는 일 수를 설정합니다. 범위 1 - 254의 정수를 지정하여 만기가 될 때까지의 일 수를 지정하거나 값 0을 지정하여 암호가 절대 만기되지 않도록 지정하십시오(이 인수를 제공하지 않는 경우 0이 기본값임). 암호가 유효하지 않게 되면(만기) 사용자는 인증을 받을 수 없게 되지만 30일 내에 kpasswd 명령을 실행하여 암호를 변경할 수 있습니다. 그 이후에는 관리자만 암호를 변경할 수 있습니다.

    이 인수는 템플릿 파일의 $PWEXPIRES 변수에 대한 값을 제공합니다.

    -server
    새 사용자의 홈 볼륨을 작성할 파일 서버 시스템을 명명합니다. 완전 규정화된 호스트 이름(예: fs1.abc.com)을 제공하는 것이 가장 바람직하지만 셀의 명명 서비스를 사용하여 uss add 명령을 실행할 때 약어 형태를 해석할 수 있으면 약어 형태도 허용됩니다.

    이 인수는 템플릿 파일의 $SERVER 변수에 대한 값을 제공합니다. 명령행에 완전 규정화된 호스트 이름을 입력하지 않아도 되게 하려면 템플릿 파일에서 V 명령어의 server 필드에서 상수(예: 셀의 도메인 이름)를 $SERVER 변수와 조합해서 사용하십시오. 예를 들면 V 명령어를 사용한 볼륨 작성을 참조하십시오.

    -partition
    사용자 홈 볼륨을 작성할 파티션을 지정합니다. 이 파티션은 -server 인수에서 명명한 파일 서버 시스템에 있어야 합니다. 그 완전한 이름(예: /vicepa)으로 파티션을 식별하거나 약어 및 별명 사용 규칙에 나열된 약어 중 하나를 사용하십시오.

    이 인수는 템플릿 파일의 $PART 변수에 대한 값을 제공합니다.

    -mount
    셀의 읽기/쓰기 파일 공간에 있는 사용자의 홈 디렉토리에 대한 경로 이름을 지정합니다. 부분적 경로 이름은 현재 작업 디렉토리와의 관계에 따라 해석됩니다.

    이 인수는 템플릿 파일의 $MTPT 변수에 대한 값을 제공하지만 V 명령어의 mount_point 필드에 나타날 때만 해당됩니다. $MTPT 변수는 후속 명령어에 나타나면 이 인수로부터 직업이 아니라 V 명령어의 mount_point 필드에서 그 값을 취합니다. 세부사항과 이 인수 및 $MTPT 변수를 사용하는 방법에 대한 제안을 보려면 V 명령어를 사용한 볼륨 작성을 참조하십시오.

    -uid
    사용자의 AFS UID로 지정할 0이 아닌 양의 정수를 지정합니다. 이 인수를 생략하고 보호 서버가 현재 max user id 카운트 값보다 더 큰 AFS UID를 지정하게 하는 것이 좋습니다(카운트를 표시하려면 AFS ID 카운터를 표시하려면에서 설명하는 것처럼 pts listmax 명령을 사용하십시오).

    이 인수를 사용해야 하는 경우에는(사용자가 이미 UNIX UID를 가지는 경우) 먼저 pts examine 명령을 사용하여 원하는 AFS UID를 가진 기존의 계정이 없는지 확인하십시오. 기존 계정이 있으면 계정 작성 프로세스를 오류를 나타내며 종료됩니다.

    이 인수는 템플릿 파일의 $UID 변수에 대한 값을 제공합니다.

    -template
    템플릿 파일의 경로 이름을 지정합니다. 이 인수를 생략하면 명령 인터프리터는 각 디렉토리에서 차례대로 uss.template라는 템플릿 파일을 탐색합니다.

    1. 현재 작업 디렉토리
    2. /afs/cellname/common/uss, 여기서 cellname은 로컬 셀을 명명합니다.
    3. /etc

    경로 이름을 가지지 않는 uss.template 이외의 파일 이름을 지정하는 경우 명령 인터프리터는 지정된 디렉토리에서 이를 탐색합니다. 전체 경로 이름이나 부분 경로 이름을 제공하면 명령 인터프린터는 지정된 파일만 확인합니다. 현재 작업 디렉토리에 상대적으로 부분 경로 이름을 해석합니다.

    지정된 템플릿 파일이 비어 있으면(0길이), 명령은 보호 및 인증 데이터베이스 항목만 작성합니다.

    템플릿 파일을 구성하는 방법을 알려면 uss 템플릿 파일 구성을 참조하십시오.

    -var
    템플릿 파일에 나타날 수 있는 $1 - $9 범위의 숫자 변수 각각에 대한 값을 지정합니다. 이 숫자 변수를 사용하여 표준 집합의 일부가 아닌 변수에 대한 값을 uss 템플릿 파일에 지정할 수 있습니다.

    이 인수의 각 인스턴스에 대해 지정된 순서로 두 부분을 공백으로 구분하여 제공하십시오.

    • 템플릿 파일의 변수에 해당하는 범위 1 - 9의 정수. 앞에 달러 기호를 사용하지 마십시오.
    • 변수의 값으로 지정할 영숫자 문자열.

    숫자 변수의 제안된 사용 방식에 대한 설명을 보려면 V 명령어를 사용한 볼륨 작성에서 V 명령어의 quota 필드에 대한 설명을 참조하십시오.

    -dryrun
    명령 인터프리터가 실제로 명령을 수행하지는 않으면서 명령을 수행하기 위해 필요로 하는 조치를 기록합니다.

    -overwrite
    파일 시스템에 존재하고 -template 인수에 의해 명명된 템플릿 파일의 D, E, F, L 또는 S 명령어에 그 정의가 있는 디렉토리, 파일 및 연결을 덮어씁니다. 이 플래그를 생략하면 명령 인터프리터는 이러한 모든 요소를 덮어쓸지 확인하는 메시지를 한 번 표시합니다.
  7. 새 사용자 홈 디렉토리가 복제된 볼륨에 상주하면 vos release 명령을 사용하여 읽기/쓰기 볼륨을 복제하려면 (읽기 전용 볼륨 작성)의 설명 대로 볼륨을 해제하십시오.

       
       % vos release <volume name or ID>
       
    

    주:이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 새 마운트 포인트를 작성하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다.

  8. 사용자가 로그온할 수 있는 각 AFS 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 동급)에 새 사용자에 대한 항목을 작성하십시오. 이 단계를 자동화하는 방법에 대해서는 공통 원본 암호 파일 작성을 참조하십시오.

    자동화 방법을 사용하지 않는 경우에도 사용자의 UNIX UID가 보호 서버에서 자동으로 지정했거나 -uid 인수를 사용하여 지정한 AFS UID에 일치하도록 설정하십시오. 새로운 사용자의 AFS UID가 uss add 출력에서 생성한 추적에 나타납니다. 그렇지 않은 경우에는 보호 데이터베이스 항목을 표시하려면에서 설명하는 것처럼 pts examine 명령을 사용하여 표시할 수 있습니다.


uss delete 명령을 사용한 개별 계정 삭제

uss delete 명령은 사용자가 명령행에 제공하는 인수에 따라 AFS 사용자 계정을 삭제합니다. 이 명령은 uss add 명령과는 달리 템플릿 파일을 사용하지 않습니다. 이 명령을 실행할 때 uss 명령 인터프리터는 다양한 AFS 서버에 접속하여 다음 작업을 수행합니다.

uss delete 명령을 실행하기 전에 다음의 선택적 타스크를 수행할 수 있습니다.

벌크 입력 파일에 exec 명령어를 포함시키고 uss bulk 명령을 사용하여 계정을 삭제함으로써 이들 타스크를 자동화할 수 있습니다. uss bulk 명령을 사용하여 복수의 계정 작성 및 삭제를 참조하십시오.

AFS 계정을 삭제하려면

  1. 다음 특권을 전부 사용하여 AFS ID를 인증하십시오. 전형적인 구성에서 admin 사용자 계정에는 이것이 들어 있거나 사용자에게 개인 관리 계정이 있을 수 있습니다(셀 보안을 증가하려면 관리 프로시듀어를 수행하는 중에만 사용할 수 있도록 특별 권한 계정을 작성하는 것이 가장 좋습니다. 더 자세한 내용은 관리 특권 개요를 참조하십시오). 필요한 경우 klog 명령을 실행하여 인증하십시오.

       % klog admin_user
       Password: admin_password
    

    다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.

  2. 삭제된 사용자 계정 정보, 소유된 그룹 및 볼륨의 계속적인 유지와 관련되어 이 절의 개요 부분에서 설명하는 문제점을 고려하고 해결하십시오.
  3. (선택적) -dryrun 플래그와 함께 uss delete 명령을 실행하여 계정 삭제를 미리 검토하십시오. -dryrun 플래그를 사용하지 않고 명령을 다시 실행하기 전에 오류 메시지를 살펴 보고 원인을 수정하십시오. 다음 단계에서는 uss delete 명령의 구문을 설명합니다.
  4. uss delete 명령을 실행하여 계정을 삭제하십시오. 단일 행에 명령을 입력하십시오. 여기에서는 이해하기 편리하도록 여러 행으로 나타낸 것입니다.

    삭제 조작을 수행하면 항상 인증 데이터베이스에서 사용자 항목이 제거됩니다. 인증 서버는 기존 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
    

    여기서,

    d
    사용할 수 있는 delete의 가장 짧은 축약형입니다.

    -user
    보호 및 인증 데이터베이스에서 삭제할 항목을 명명합니다.

    -mountpoint
    삭제할 마운트 포인트(사용자의 홈 디렉토리)의 경로 이름을 지정합니다. -savevolume 인수를 포함하지 않는 한 이 지점에 마운트된 볼륨도 VLDB에서 레코드가 삭제되는 것처럼 파일 서버 시스템에서 삭제됩니다. 부분적 경로 이름은 현재 작업 디렉토리와의 관계에 따라 해석됩니다.

    마운트 포인트로의 읽기/쓰기 경로를 지정하여 읽기 전용 볼륨에서 마운트 포인트를 삭제하려고 할 때 발생할 수 있는 장애를 피하십시오. 일반적으로, 경로 이름의 두 번째 레벨에서 셀 이름 앞에 점을 찍어 읽기/쓰기 경로를 표시합니다(예를 들어, /afs/.abc.com). 파일 공간을 통한 읽기/쓰기와 읽기 전용 경로의 개념에 대한 내용은 볼륨 마운트를 참조하십시오.

    -savevolume
    사용자의 볼륨과 VLDB 항목을 보유합니다.

    -admin
    admin 플래그와 같은 그 인증 데이터베이스 항목에 ADMIN 플래그가 있는 관리 계정을 명명합니다. 암호 프롬프트는 이를 admin_user로 표시합니다. 적합한 암호를 admin_password로 입력합니다.

    -dryrun
    명령 인터프리터가 실제로 명령을 수행하지는 않으면서 명령을 수행하기 위해 필요로 하는 조치를 기록합니다.
  5. 삭제된 사용자 홈 디렉토리가 복제된 볼륨에 상주하면 읽기/쓰기 볼륨을 복제하려면 (읽기 전용 볼륨 작성)의 설명대로 vos release 명령을 사용하여 볼륨을 해제하십시오.

       
       % vos release <volume name or ID>
       
    

    주:이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 마운트 포인트를 삭제하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다.

  6. 각 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 동급)에서 사용자 항목을 삭제하십시오. AFS package 유틸리티를 사용하는 경우 파일의 공통 원본 버전에서 해당 항목을 제거하기만 하면 됩니다. 앞으로 사용자의 계정을 재활성화하려는 경우에는 항목을 주석 처리하거나 암호 필드에 별표(*)를 입력하는 것이 더 쉬운 방법입니다.

uss bulk 명령을 사용하여 복수의 계정 작성 및 삭제

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..."

복수의 AFS 사용자 계정을 작성 및 삭제하려면

  1. 다음 특권을 전부 사용하여 AFS ID를 인증하십시오. 전형적인 구성에서 admin 사용자 계정에는 이것이 들어 있거나 사용자에게 개인 관리 계정이 있을 수 있습니다(셀 보안을 증가하려면 관리 프로시듀어를 수행하는 중에만 사용할 수 있도록 특별 권한 계정을 작성하는 것이 가장 좋습니다. 더 자세한 내용은 관리 특권 개요를 참조하십시오). 필요한 경우 klog 명령을 실행하여 인증하십시오.

       % klog admin_user
       Password: admin_password
    

    다음 목록은 필요한 특권을 지정하고 이를 가지고 있는지 확인하는 방법을 나타냅니다.

  2. (선택적) 로컬 수퍼유저 루트로서 로그인하십시오. 이것은 로컬 파일 시스템에 새 파일이나 디렉토리를 작성하며 오브젝트가 작성될 때 대체 소유자를 지정하려는 경우에만 필요합니다. 관련 문제점에 대한 설명을 보려면 로컬 디스크 디렉토리 및 파일 작성에 대하여를 참조하십시오.
  3. 벌크 입력 파일에 add 명령어가 포함된 경우 사용중인 템플릿의 위치와 기능을 확인하십시오. uss 명령 인터프리터가 해당 템플릿을 어디에서 찾을지에 대한 설명을 보려면 템플릿 파일을 저장할 위치를 참조하십시오. 원하는 경우 항상 대체 경로 이름을 제공할 수 있습니다. 또한 템플릿에 나타나는 변수를 확인하여 add 명령문이나 uss bulk 명령행에 올바른 인수를 제공했는지 확인하십시오.
  4. 벌크 입력 파일 구성에 나열된 규칙을 따르는 벌크 입력 파일을 작성하십시오. 사용중인 템플릿 파일과 동일한 디렉토리에 파일을 추가하는 것이 가장 간단합니다.
  5. (선택적) 벌크 입력 파일과 템플릿 파일이 있는 디렉토리로 변경하십시오.

       % cd template_directory
    
  6. uss bulk 명령을 실행하여 계정을 작성 또는 삭제하십시오. 단일 행에 명령을 입력하십시오. 여기에서는 이해하기 편리하도록 여러 행으로 나타낸 것입니다.

    벌크 조작은 항상 인증 데이터베이스의 사용자 항목을 처리합니다. 인증 서버는 기존 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
    

    여기서,

    b
    허용되는 bulk의 가장 짧은 축약형입니다.

    bulk input file
    벌크 입력 파일의 경로 이름을 지정합니다. 부분적 경로 이름은 현재 작업 디렉토리와의 관계에 따라 해석됩니다. 필요한 파일 형식에 대한 설명을 보려면 벌크 입력 파일 구성을 참조하십시오.

    -template
    벌크 입력 파일에 나타나는 uss add 명령에 대한 템플릿 파일의 경로 이름을 지정합니다. 부분적 경로 이름은 현재 작업 디렉토리와의 관계에 따라 해석됩니다. 필요한 파일 형식에 대한 설명을 보려면 uss 템플릿 파일 구성을 참조하십시오.

    -admin
    admin 플래그와 같은 그 인증 데이터베이스 항목에 ADMIN 플래그가 있는 관리 계정을 명명합니다. 암호 프롬프트는 이를 admin_user로 표시합니다. 적합한 암호를 admin_password로 입력합니다.

    -dryrun
    명령 인터프리터가 실제로 명령을 수행하지는 않으면서 명령을 수행하기 위해 필요로 하는 조치를 기록합니다.

    -overwrite
    파일 시스템에 존재하고 -template 인수에 의해 명명된 템플릿 파일의 D, E, F, L 또는 S 명령어에 그 정의가 있는 디렉토리, 파일 및 연결을 덮어씁니다. 이 플래그를 생략하면 명령 인터프리터는 벌크 입력 파일에서 각 add 명령어가 나올 때마다 한 번씩 이러한 요소를 덮어쓸지 확인하는 메시지를 표시합니다. 벌크 입력 파일에 add 명령어가 없을 때는 이 플래그를 포함시키지 마십시오.

    -pwexpires
    벌크 입력 파일에서 add 명령어에 의해 명명된 각 사용자에 대해 암호가 변경된 이후에 유효한 상태로 남아 있는 일 수를 설정합니다. 범위 1 - 254의 정수를 지정하여 만기가 될 때까지의 일 수를 지정하거나 값 0을 지정하여 암호가 절대 만기되지 않도록(기본값) 지정하십시오.

    암호가 유효하지 않게 되면(만기) 사용자는 인증을 받을 수 없게 되지만 30일 내에 kpasswd 명령을 실행하여 암호를 변경할 수 있습니다(그 이후에는 관리자가 이를 변경해야 함).

    -pipe
    인증 서버가 -admin 인수에서 명명한 실행자나 사용자의 암호를 묻는 메시지를 출력하지 않게 합니다(인증 서버는 항상 인증 데이터베이스에서 항목을 작성하거나 삭제하고 있는 사용자를 별도로 인증합니다). 대신 명령 인터프리터는 다른 프로그램으로부터의 파이프된 입력으로서 암호를 허용하여 사용자가 무인 일괄 작업으로 uss bulk 명령을 실행할 수 있게 합니다.
  7. 새로 작성했거나 삭제된 사용자 홈 디렉토리가 복제된 볼륨에 상주하면 읽기/쓰기 볼륨을 복제하려면 (읽기 전용 볼륨 작성)의 설명대로 vos release 명령을 사용하여 볼륨을 해제하십시오.

       
       % vos release <volume name or ID>
       
    

    주:이 단계는 홈 디렉토리의 상위 디렉토리 그 자체가 복제된 볼륨의 마운트 포인트가 아니어도 필요합니다(그리고 이런 경우 더 쉽게 지나침). 예를 들어 ABC Corporation 템플릿은 /afs/abc.com/usr 디렉토리에 사용자 볼륨에 대한 마운트 포인트를 추가합니다. 이는 마운트 포인트이기 보다 일반 디렉토리이므로 /afs/abc.com 디렉토리에 마운트된 root.cell 볼륨에 상주합니다. 그 볼륨은 복제되므로 마운트 포인트를 작성 또는 삭제하여 이를 변경한 후 관리자는 vos release 명령을 실행해야 합니다.

  8. 계정을 작성하는 경우 사용자가 로그온할 수 있는 각 AFS 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 동급)에 새 사용자에 대한 항목을 작성하십시오. 이 단계를 자동화하는 방법에 대해서는 공통 원본 암호 파일 작성을 참조하십시오.

    자동화 방법을 사용하지 않는 경우에도 사용자의 UNIX UID가 보호 서버에서 자동으로 지정했거나 -uid 인수를 사용하여 지정한 AFS UID에 일치하도록 설정하십시오. 새로운 사용자의 AFS UID가 uss add 출력에서 생성한 추적에 나타나거나 보호 데이터베이스 항목을 표시하려면에서 설명하는 것처럼 pts examine 명령을 사용하여 표시할 수 있습니다.

  9. 계정을 삭제하는 경우 각 클라이언트 시스템의 로컬 암호 파일(/etc/passwd 또는 동급)에서 사용자 항목을 삭제하십시오. AFS package 유틸리티를 사용하는 경우 파일의 공통 원본 버전에서 해당 항목을 제거하기만 하면 됩니다. 앞으로 사용자의 계정을 재활성화하려는 경우에는 항목을 주석 처리하거나 암호 필드에 별표(*)를 입력하는 것이 더 쉬운 방법입니다.


[ 페이지의 맨 위 | 이전 페이지 | 다음 페이지 | 목차 | 색인 ]



© IBM Corporation 2000. All Rights Reserved