Unix/Linux Go Back    

OpenSolaris 2009.06 - man page for runat (opensolaris section 1)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

runat(1)				  User Commands 				 runat(1)

       runat - execute command in extended attribute name space

       /usr/bin/runat file [command]

       The  runat  utility  is used to execute shell commands in a file's hidden attribute direc-
       tory. Effectively, this utility changes the current working directory  to  be  the  hidden
       attribute directory associated with the file argument and then executes the specified com-
       mand in the bourne shell (/bin/sh). 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	support  extended
       attributes.  It is not necessary that this file have any attributes, or be prepared in any
       way, before invoking the runat command.

       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.

       A non-zero exit status will be returned if runat cannot access the file argument,  or  the
       file argument does not support extended attributes.

       See fsattr(5) for a detailed description of extended file attributes.

       The  process context created by the runat command has its current working directory set to
       the hidden directory containing the file's extended attributes. The parent of this  direc-
       tory  (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 interactive 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.

       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 directory 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  com-
       mands  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

       While the command appears to have worked, zsh has actually just changed the current  work-
       ing directory to '/'. This can be seen by using /bin/pwd:

	 example% /bin/pwd

       SHELL	Specifies the command shell to be invoked by runat.

       The following exit values are returned:

       125     The  attribute  directory  of  the  file referenced by the file argument cannot be

       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.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |CSI			     |Enabled			   |
       |Interface Stability	     |Evolving			   |

       open(2), attributes(5), fsattr(5)

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

SunOS 5.11				   22 Jun 2001					 runat(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 06:29 PM.