﻿<?xml version="1.0" encoding="utf-8"?><Type Name="UnixEnvironment" FullName="Mono.Unix.UnixEnvironment"><TypeSignature Language="C#" Value="public sealed class UnixEnvironment" /><TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit UnixEnvironment extends System.Object" /><AssemblyInfo><AssemblyName>Mono.Posix</AssemblyName><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadingSafetyStatement>This type is safe for multithreaded operations.</ThreadingSafetyStatement><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Docs><summary>Provides the current settings for, and information about, the
      execution environment.</summary><remarks><para>
        Use this class to retrieve the following information:
      </para><list type="bullet"><item><term>
          User and Group information
        </term></item><item><term>
          Session creation
        </term></item><item><term>
          Process group creation
        </term></item><item><term>
          Configuration value lookup
        </term></item><item><term>
          Supplementary group information
        </term></item></list></remarks></Docs><Members><Member MemberName="CreateSession"><MemberSignature Language="C#" Value="public static int CreateSession ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 CreateSession() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><summary>Create a new session.</summary><returns>
          A <see cref="T:System.Int32" /> containing the return value of the 
          <see cref="M:Mono.Unix.Native.Syscall.setsid" /> call.  This can be
          ignored, since it will be translated into an exception if it's an
          error anyway.
        </returns><remarks><para>
            This method creates a new session.  The calling process is the 
            session leader of the new session, is the process group leader of 
            a new process group and has no controlling terminal.  The calling 
            process is the only process in either the session or the process 
            group.
          </para></remarks><exception cref="System.InvalidOperationException"><para>
            The calling process is already a process group leader, or the 
            process group ID of a process other than the calling process 
            matches the process ID of the calling process.
            [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.setsid" /></Docs></Member><Member MemberName="CurrentDirectory"><MemberSignature Language="C#" Value="public static string CurrentDirectory { get; set; }" /><MemberSignature Language="ILAsm" Value=".property string CurrentDirectory" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><summary>Gets or sets the current directory of the process.</summary><value>
          A <see cref="T:System.String" /> containing the current directory of
          the process.
        </value><remarks><para>The <paramref name="value" /> argument is permitted to specify
          relative or absolute path information. Relative path information is 
          interpreted as relative to the current working directory. 
          <block subset="none" type="note">To obtain the current working 
          directory, see 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" qualify="true" />.
          </block></para></remarks><exception cref="T:System.UnauthorizedAccessException">
          Permission to read or search a component of the current working
          directory was denied.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception><exception cref="T:System.IO.FileNotFoundException">
          The current working directory has been unlinked.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception><altmember cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" /><altmember cref="M:Mono.Unix.UnixDirectoryInfo.SetCurrentDirectory" /></Docs></Member><Member MemberName="EffectiveGroup"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo EffectiveGroup { get; set; }" /><MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixGroupInfo EffectiveGroup" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixGroupInfo</ReturnType></ReturnValue><Docs><summary>Gets information about the effective group of the process.</summary><value>
          A <see cref="T:Mono.Unix.UnixGroupInfo" /> containing information
          about the effective group of the process.
        </value><remarks><para>
            The 
            <see cref="P:Mono.Unix.UnixEnvironment.EffectiveGroup" />
            gives the process additional permissions during the execution of 
            <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />
            mode processes.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" /><altmember cref="M:Mono.Unix.Native.Syscall.getegid" /></Docs></Member><Member MemberName="EffectiveGroupId"><MemberSignature Language="C#" Value="public static long EffectiveGroupId { get; set; }" /><MemberSignature Language="ILAsm" Value=".property int64 EffectiveGroupId" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Docs><summary>Gets the effective group ID of the process.</summary><value>
          A <see cref="T:System.Int64" /> containing nthe effective group ID
          of the process.
        </value><remarks><para>
            The 
            <see cref="P:Mono.Unix.UnixEnvironment.EffectiveGroupId" />
            gives the process additional permissions during the execution of 
            <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />
            mode processes.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" /><altmember cref="M:Mono.Unix.Native.Syscall.getegid" /></Docs></Member><Member MemberName="EffectiveUser"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixUserInfo EffectiveUser { get; set; }" /><MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixUserInfo EffectiveUser" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixUserInfo</ReturnType></ReturnValue><Docs><summary>Gets information about the effective user of the process.</summary><value>
          A <see cref="T:Mono.Unix.UnixUserInfo" /> containing information
          about the effective user of the process.
        </value><remarks><para>
            The 
            <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUser" /> gives
            the process additional permissions during execution of 
            <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />
            mode processes.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" /><altmember cref="M:Mono.Unix.Native.Syscall.geteuid" /></Docs></Member><Member MemberName="EffectiveUserId"><MemberSignature Language="C#" Value="public static long EffectiveUserId { get; set; }" /><MemberSignature Language="ILAsm" Value=".property int64 EffectiveUserId" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Docs><summary>Gets the effective user ID of the process.</summary><value>
          A <see cref="T:System.Int64" /> containing the effective user ID of
          the process.
        </value><remarks><para>
            The 
            <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" /> gives
            the process additional permissions during execution of 
            <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />
            mode processes.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" /><altmember cref="M:Mono.Unix.Native.Syscall.geteuid" /></Docs></Member><Member MemberName="GetConfigurationString"><MemberSignature Language="C#" Value="public static string GetConfigurationString (Mono.Unix.Native.ConfstrName name);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig string GetConfigurationString(valuetype Mono.Unix.Native.ConfstrName name) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters><Parameter Name="name" Type="Mono.Unix.Native.ConfstrName" /></Parameters><Docs><param name="name">
          A <see cref="T:Mono.Unix.Native.ConfstrName" /> value containing the
          configuration value to retrieve.
        </param><summary>
          Retrieve the value of the configuration value 
          <paramref name="name" />.
        </summary><returns>
          A <see cref="T:System.String" /> containing the value of the
          configuration variable <paramref name="name" />.
        </returns><remarks></remarks><exception cref="System.ArgumentException"><para>
            The value of the
            <paramref name="name" />
            argument is invalid.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.confstr" /></Docs></Member><Member MemberName="GetConfigurationValue"><MemberSignature Language="C#" Value="public static long GetConfigurationValue (Mono.Unix.Native.SysconfName name);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig int64 GetConfigurationValue(valuetype Mono.Unix.Native.SysconfName name) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Parameters><Parameter Name="name" Type="Mono.Unix.Native.SysconfName" /></Parameters><Docs><param name="name">
          A <see cref="T:Mono.Unix.Native.SysconfName" /> value containing the
          configurable system limit or option variable to lookup.
        </param><summary>
          Retrieve the value of the configurable system limit or 
          option value <paramref name="name" />.
        </summary><returns>
          A <see cref="T:System.Int64" /> containing the value of the 
          configurable system limit or option value <paramref name="name" />.
        </returns><remarks><para>
            This method provides a way for applications to determine the 
            current value of a configurable system limit or option variable.  
            The <paramref name="name" /> argument specifies the system 
            variable to be queried.  
          </para></remarks><exception cref="System.ArgumentException"><para>
            The value of the
            <paramref name="name" />
            argument is invalid.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.sysconf" /></Docs></Member><Member MemberName="GetParentProcess"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixProcess GetParentProcess ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class Mono.Unix.UnixProcess GetParentProcess() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixProcess</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets information about the parent process.</summary><returns>
          A <see cref="T:Mono.Unix.UnixProcess" /> instance containing
          information about the parent process.
        </returns><remarks></remarks></Docs></Member><Member MemberName="GetParentProcessId"><MemberSignature Language="C#" Value="public static int GetParentProcessId ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 GetParentProcessId() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets the process ID of the parent process.</summary><returns>
          A <see cref="T:System.Int32" /> containing the process ID of the
          parent process.
        </returns><remarks></remarks><altmember cref="M:Mono.Unix.Native.Syscall.getppid" /></Docs></Member><Member MemberName="GetProcessGroup"><MemberSignature Language="C#" Value="public static int GetProcessGroup ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig int32 GetProcessGroup() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets the process group ID of the current process.</summary><returns>
          A <see cref="T:System.Int32" /> containing the process group ID of
          the current process.
        </returns><remarks><para>
            Process groups are used for distribution of signals, and by 
            terminals to arbitrate requests for their input: processes that 
            have the same process group as the terminal are foreground and 
            may read, while others will block with a signal if they attempt 
            to read.
          </para><para>
            This system call is thus used by programs such as <c>csh</c>(1) 
            to create process groups in implementing job control.  The 
            <see cref="M:Mono.Unix.Native.Syscall.tcgetpgrp" />() and 
            <see cref="M:Mono.Unix.Native.Syscall.tcsetpgrp" />()
            calls are used to get/set the process group of the control terminal.
          </para></remarks><altmember cref="M:Mono.Unix.Native.Syscall.getpgrp" /></Docs></Member><Member MemberName="GetSupplementaryGroupIds"><MemberSignature Language="C#" Value="public static long[] GetSupplementaryGroupIds ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig int64[] GetSupplementaryGroupIds() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64[]</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets the current group access list.</summary><returns>
          A <see cref="T:System.Int64" /> array containing the group access
          list of the current process.
        </returns><remarks><para>
            The group access list is a list of groups which the current
            process belongs to.  These groups are used for file access checks
            when the 
            <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
            file's
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
            the supplementary groups is checked against
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
            group access applies, before using the  "other"
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
          </para></remarks><altmember cref="M:Mono.Unix.Native.Syscall.getgroups" /></Docs></Member><Member MemberName="GetSupplementaryGroups"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo[] GetSupplementaryGroups ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class Mono.Unix.UnixGroupInfo[] GetSupplementaryGroups() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixGroupInfo[]</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets the current group access list.</summary><returns>
          A <see cref="T:Mono.Unix.UnixGroupInfo" /> array containing
          information about the group access list of the current process.
        </returns><remarks><para>
            The group access list is a list of groups which the current
            process belongs to.  These groups are used for file access checks
            when the 
            <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
            file's
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
            the supplementary groups is checked against
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
            group access applies, before using the  "other"
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
          </para></remarks><altmember cref="M:Mono.Unix.Native.Syscall.getgroups" /></Docs></Member><Member MemberName="GetUserShells"><MemberSignature Language="C#" Value="public static string[] GetUserShells ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig string[] GetUserShells() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String[]</ReturnType></ReturnValue><Parameters /><Docs><summary>Gets all user shells.</summary><returns>
          A <see cref="T:System.String" /> array containing all user shells on
          the system.
        </returns><remarks><para>
            A user shell is defined by the system manager in the shells
            database as described in <c>shells</c>(5) (frequently the file
            <c>/etc/shells</c>).  If the shells database is not available,
            then this returns an array containing the elements <c>/bin/sh</c>
            and <c>/bin/csh</c>.
          </para></remarks><altmember cref="M:Mono.Unix.Native.Syscall.setusershell" /><altmember cref="M:Mono.Unix.Native.Syscall.getusershell" /><altmember cref="M:Mono.Unix.Native.Syscall.endusershell" /></Docs></Member><Member MemberName="Login"><MemberSignature Language="C#" Value="public static string Login { get; }" /><MemberSignature Language="ILAsm" Value=".property string Login" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><summary>Gets the login name.</summary><value>
          A <see cref="T:System.String" /> containing the login name of the
          user executing the process.
        </value><remarks><para>
            This is identical to 
            <see cref="P:Mono.Unix.UnixEnvironment.UserName" />.
          </para></remarks></Docs></Member><Member MemberName="MachineName"><MemberSignature Language="C#" Value="public static string MachineName { get; set; }" /><MemberSignature Language="ILAsm" Value=".property string MachineName" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><summary>Gets or sets the machine name of the machine the process is
          running on.</summary><value>
          A <see cref="T:System.String" /> containing the machine name.
        </value><remarks><para>
            Only the super-user can change the machine name.
          </para></remarks><exception cref="System.InvalidOperationException"><para>
            The caller tried to set the host name and was not the super-user.
            [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.gethostname" /><altmember cref="M:Mono.Unix.Native.Syscall.sethostname" /></Docs></Member><Member MemberName="RealGroup"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixGroupInfo RealGroup { get; }" /><MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixGroupInfo RealGroup" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixGroupInfo</ReturnType></ReturnValue><Docs><summary>Gets information about the real group of the process.</summary><value>
          A <see cref="T:Mono.Unix.UnixGroupInfo" /> containing information
          about the real group of the process.
        </value><remarks><para>
            The real group is the group of the user who invoked the program.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" /><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUser" /><altmember cref="M:Mono.Unix.Native.Syscall.getgid" /></Docs></Member><Member MemberName="RealGroupId"><MemberSignature Language="C#" Value="public static long RealGroupId { get; }" /><MemberSignature Language="ILAsm" Value=".property int64 RealGroupId" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Docs><summary>Gets the real group ID of the process.</summary><value>
          A <see cref="T:System.Int64" /> containing the real group ID of the
          process.
        </value><remarks><para>
            The real group ID is the group of the user who invoked the program.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" /><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealUserId" /><altmember cref="M:Mono.Unix.Native.Syscall.getgid" /></Docs></Member><Member MemberName="RealUser"><MemberSignature Language="C#" Value="public static Mono.Unix.UnixUserInfo RealUser { get; }" /><MemberSignature Language="ILAsm" Value=".property class Mono.Unix.UnixUserInfo RealUser" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Mono.Unix.UnixUserInfo</ReturnType></ReturnValue><Docs><summary>Gets information about the real user of the process.</summary><value>
          A <see cref="T:Mono.Unix.UnixUserInfo" /> containing information
          about the real user of the process.
        </value><remarks><para>
            The real user is the user who invoked the program.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroup" /><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUser" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroup" /><altmember cref="M:Mono.Unix.Native.Syscall.getuid" /></Docs></Member><Member MemberName="RealUserId"><MemberSignature Language="C#" Value="public static long RealUserId { get; }" /><MemberSignature Language="ILAsm" Value=".property int64 RealUserId" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Docs><summary>Gets the real user ID of the process.</summary><value>
          A <see cref="T:System.Int64" /> containing the real user ID of the
          process.
        </value><remarks><para>
            The real user ID is that of the user who invoked the program.
          </para></remarks><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveGroupId" /><altmember cref="M:Mono.Unix.UnixEnvironment.EffectiveUserId" /><altmember cref="M:Mono.Unix.UnixEnvironment.RealGroupId" /><altmember cref="M:Mono.Unix.Native.Syscall.getuid" /></Docs></Member><Member MemberName="SetNiceValue"><MemberSignature Language="C#" Value="public static void SetNiceValue (int inc);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetNiceValue(int32 inc) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="inc" Type="System.Int32" /></Parameters><Docs><param name="inc">
          A <see cref="T:System.Int32" /> containing the value to add to the
          current process' <i>nice value</i>.
        </param><summary>Subtraces <paramref name="inc" /> from the process' priority.</summary><remarks><para>
            The process' <i>nice value</i> is a value subtraced from the 
            process' priority.  The higher the value of 
            <paramref name="inc" />, the lower the priority of the process
          </para></remarks><exception cref="T:Mono.Unix.UnixIOException"><paramref name="inc" /> is negative but the caller is not the
          super-user.
          [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
        </exception><altmember cref="M:Mono.Unix.Native.Syscall.nice" /></Docs></Member><Member MemberName="SetProcessGroup"><MemberSignature Language="C#" Value="public static void SetProcessGroup ();" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetProcessGroup() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>Set the process group of the current process.</summary><remarks><para>
            If the affected process is not the invoking process, then it must 
            be a child of the invoking process, and both processes must be in 
            the same session.
          </para></remarks><exception cref="System.InvalidOperationException"><para>
            The target process is a session leader.
            [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para></exception><exception cref="Mono.Unix.UnixIOException"><para>
            The target process is not the calling process or
            a child of the calling process.
            [<see cref="F:Mono.Unix.Native.Errno.ESRCH" />]
          </para><para>-or-</para><para>
            The requested process is a child of the calling process,
            but it has performed an
            <see cref="F:Mono.Unix.Native.Syscall.exec" />(3)
            operation.
            [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
          </para></exception><altmember cref="P:Mono.Unix.UnixProcess.ProcessGroupId" /><altmember cref="M:Mono.Unix.Native.Syscall.setpgrp" /></Docs></Member><Member MemberName="SetSupplementaryGroupIds"><MemberSignature Language="C#" Value="public static void SetSupplementaryGroupIds (long[] list);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSupplementaryGroupIds(int64[] list) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="list" Type="System.Int64[]" /></Parameters><Docs><param name="list">
          A <see cref="T:System.Int64" /> array containing the
          new group access list.
        </param><summary>
          Set the group access list of the current process.
        </summary><remarks><para>
            Only the super-user may set new groups.
          </para><para>
            The group access list is a list of groups which the current
            process belongs to.  These groups are used for file access checks
            when the 
            <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
            file's
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
            the supplementary groups is checked against
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
            group access applies, before using the  "other"
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
          </para></remarks><exception cref="System.InvalidOperationException"><para>
            The caller is not the super-user.
            [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.setgroups" /></Docs></Member><Member MemberName="SetSupplementaryGroups"><MemberSignature Language="C#" Value="public static void SetSupplementaryGroups (Mono.Unix.UnixGroupInfo[] groups);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSupplementaryGroups(class Mono.Unix.UnixGroupInfo[] groups) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="groups" Type="Mono.Unix.UnixGroupInfo[]" /></Parameters><Docs><param name="groups">
          A <see cref="T:Mono.Unix.UnixGroupInfo" /> array containing the
          new group access list.
        </param><summary>
          Set the group access list of the current process.
        </summary><remarks><para>
            Only the super-user may set new groups.
          </para><para>
            The group access list is a list of groups which the current
            process belongs to.  These groups are used for file access checks
            when the 
            <see cref="P:Mono.Unix.UnixEnvironment.RealUser" /> is not the
            file's
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />; each of
            the supplementary groups is checked against
            <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" /> to see if
            group access applies, before using the  "other"
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
          </para></remarks><exception cref="System.InvalidOperationException"><para>
            The caller is not the super-user.
            [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para></exception><altmember cref="M:Mono.Unix.Native.Syscall.setgroups" /></Docs></Member><Member MemberName="UserName"><MemberSignature Language="C#" Value="public static string UserName { get; }" /><MemberSignature Language="ILAsm" Value=".property string UserName" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><summary>Gets the user name of the user executing the process.</summary><value>
          A <see cref="T:System.String" /> containing the username of the user
          executing the process.
        </value><remarks><para>
            This is the username of the <i>real</i> user id.
          </para><para>
            This is equivalent to calling
            <see cref="P:Mono.Unix.UnixEnvironment.RealUser" />.<see cref="P:Mono.Unix.UnixUserInfo.UserName" />.
          </para></remarks></Docs></Member></Members></Type>