svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
runat(1)
runat(1) User Commands runat(1)
NAME
runat - execute command in extended attribute name space
SYNOPSIS
/usr/bin/runat file [command]
DESCRIPTION
The runat utility is used to execute shell commands in a file's hidden
attribute directory. Effectively, this utility changes the current
working directory to be the hidden attribute directory associated with
the file argument and then executes the specified command in a new
shell process. If no command argument is provided, an interactive shell
is spawned. The environment variable $SHELL defines the shell to be
spawned. If this variable is undefined, the default shell, /bin/sh, is
used.
The file argument can be any file, including a directory, that can sup‐
port extended attributes. It is not necessary that this file have any
attributes, or be prepared in any way, before invoking the runat com‐
mand.
OPERANDS
The following operands are supported:
file Any file, including a directory, that can support extended
attributes.
command The command to be executed in an attribute directory.
ERRORS
A non-zero exit status will be returned if runat cannot access the file
argument, or the file argument does not support extended attributes.
USAGE
See fsattr(7) for a detailed description of extended file attributes.
The process context created by the runat command has its current work‐
ing directory set to the hidden directory containing the file's
extended attributes. The parent of this directory (the ".." entry)
always refers to the file provided on the command line. As such, it may
not be a directory. Therefore, commands (such as pwd) that depend upon
the parent entry being well-formed (that is, referring to a directory)
may fail.
In the absence of the command argument, runat will spawn a new interac‐
tive shell with its current working directory set to be the provided
file's hidden attribute directory. Notice that some shells (such as zsh
and tcsh) are not well behaved when the directory parent is not a
directory, as described above. These shells should not be used with
runat.
EXAMPLES
Example 1 Using runat to list extended attributes on a file
example% runat file.1 ls -l
example% runat file.1 ls
Example 2 Creating extended attributes
example% runat file.2 cp /tmp/attrdata attr.1
example% runat file.2 cat /tmp/attrdata > attr.1
Example 3 Copying an attribute from one file to another
example% runat file.2 cat attr.1 | runat file.1 "cat > attr.1"
Example 4 Using runat to spawn an interactive shell
example% runat file.3 /bin/sh
This spawns a new shell in the attribute directory for file.3. Notice
that the shell will not be able to determine what your current direc‐
tory is. To leave the attribute directory, either exit the spawned
shell or change directory (cd) using an absolute path.
Recommended methods for performing basic attribute operations:
display runat file ls [options]
read runat file cat attribute
create/modify runat file cp absolute-file-path attribute
delete runat file rm attribute
permission changes
runat file chmod mode attribute
runat file chgrp group attribute
runat file chown owner attribute
interactive shell
runat file /bin/sh
or set your $SHELL to /bin/sh and
runat file
The above list includes commands that are known to work with runat.
While many other commands may work, there is no guarantee that any
beyond this list will work. Any command that relies on being able to
determine its current working directory is likely to fail. Examples of
such commands follow:
Example 5 Using man in an attribute directory
example% runat file.1 man runat
>getcwd: Not a directory
Example 6 Spawning a tcsh shell in an attribute directory
example% runat file.3 /usr/bin/tcsh
tcsh: Not a directory
tcsh: Trying to start from "/home/user"
A new tcsh shell has been spawned with the current working directory
set to the user's home directory.
Example 7 Spawning a zsh shell in an attribute directory
example% runat file.3 /usr/bin/zsh
example%
While the command appears to have worked, zsh has actually just changed
the current working directory to '/'. This can be seen by using
/bin/pwd:
example% /bin/pwd
/
ENVIRONMENT VARIABLES
SHELL Specifies the command shell to be invoked by runat.
EXIT STATUS
The following exit values are returned:
125 The attribute directory of the file referenced by the file argu‐
ment cannot be accessed.
126 The exec of the provided command argument failed.
Otherwise, the exit status returned is the exit status of the shell
invoked to execute the provided command.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Availabilitysystem/core-os _ CSIEnabled _ Interface
StabilityCommitted
SEE ALSO
open(2), attributes(7), fsattr(7)
NOTES
It is not always obvious why a command fails in runat when it is unable
to determine the current working directory. The errors resulting can be
confusing and ambiguous (see the tcsh and zsh examples above).
Oracle Solaris 11.4 11 May 2021 runat(1)