継承された特権を使ってコマンドを実行するプロファイルシェルスクリプトを追加する場合、プロファイルマネージャを使って適切なプロファイルを更新する必要があります。この手続きによってシェルスクリプト内で動作するコマンドが登録され、コマンドに適切な特権が割り当てられます。ある役割が、新しいプロファイルシェルスクリプトを使う必要がある場合、特権を必要とするすべてのコマンドを、そのスクリプト名とともに、役割に適用される Custom role_name またはその他のプロファイルに追加します。これは、セキュリティ管理者役割の仕事です。
プロファイルシェルスクリプトを作成するための条件は、テキストエディタを使用できることです。
スクリプトの 1 行目は /bin/pfsh (この他のシェルは使用しません) で開始します。
#!/bin/pfsh |
特権が必要なコマンドと、このコマンドに必要な特権を判断します。
次の例では、/usr/lib/fs/nfs/nfsfind は cron ジョブで、スーパーユーザーが所有しています。これを ADMIN_HIGH で正常に実行するには、特権が必要です。tfind コマンドには file_dac_search 特権と file_dac_read 特権が必要で、rm コマンドには file_dac_search、file_mac_write、file_dac_read、file_mac_write の各特権が必要です。詳細は、「アプリケーションに必要な特権を調べるには」を参照してください。
#!/bin/pfsh
# Copyright (c) 1993, 1997, 1998, 1999 by Sun Microsystems, Inc.
#ident "@(#)nfsfind.sh 1.5 97/05/21 SMI; TSOL 2.x"
#
# Check shared NFS filesystems for .nfs* files that
# are more than a week old.
#
# These files are created by NFS clients when an open file
# is removed. To preserve some semblance of Unix semantics
# the client renames the file to a unique name so that the
# file appears to have been removed from the directory, but
# is still usable by the process that has the file open.
if [ ! -s /etc/dfs/sharetab ]; then exit ; fi
for dir in `awk '$3 == "nfs" {print $1}' /etc/dfs/sharetab`
do
tfind $dir -M -name .nfs¥* -mtime +7 -mount -exec rm -f {} ¥;
done
|
セキュリティ管理者役割になり、ADMIN_LOW シェルに移動します。
詳細は、「ログイン後、特定の管理役割になるには」を参照してください。
プロファイルマネージャを使用して適切なプロファイルを更新します。シェルスクリプト内で実行するコマンドを記述し、そのコマンドに必要な特権を割り当ててください。
詳細は、「管理アプリケーションを起動するには」を参照してください。
この例の場合、スーパーユーザーが必要な特権を使用して cron スクリプトを実行するためには、セキュリティ管理者がプロファイルマネージャで Custom Root プロファイル (デフォルトでスーパーユーザーに割り当てられています) を更新します。プロファイルは、file_dac_search 特権と file_dac_read 特権を持つ tfind コマンドと file_dac_search、file_dac_write、file_dac_read、file_mac_write の各特権を持つ rm コマンドを含むように変更されます。
プロファイルにコマンドを追加し、そのコマンドに特権やその他のセキュリティ属性を付与すると、そのコマンドは、プロファイルシェルスクリプト内だけでなく、プロファイルシェルのコマンド行から呼び出された場合でも、付与された特権を使用して実行されます (呼び出し元のユーザーにコマンドが追加されたプロファイルが割り当てられている場合)。プロファイルが複数割り当てられている場合は、その順番も重要です。これは、プロファイルシェルでコマンドやアクションを実行する際、最初のプロファイルに指定されているセキュリティ属性が使用されるためです。たとえば、tfind が特権付きで Custom Root プロファイルに登録されており、このプロファイルが tfind を含む最初のプロファイルである場合、スーパーユーザー役割がプロファイルシェルのコマンド行から tfind を実行すると、tfind は Custom Rootプロファイルに指定された特権を継承します。