ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qsystreu.htm

226 lines
6.3 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>qsysetreuid()--Set Real and Effective User IDs</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- file cleaned -->
<!-- QSYSTREU SCRIPT A converted by B2H R4.1 (346) (CMS) by V2DCIJB -->
<!-- at RCHVMW2 on 4 Oct 1999 at 10:32:31 -->
<!-- This file has undergone html cleanup June 2002 by JET -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>qsysetreuid()--Set Real and Effective User IDs</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
int qsysetreuid(uid_t ruid, uid_t euid);
</pre>
&nbsp;&nbsp;Service Program Name: QSYSETIDS<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>qsysetreuid()</strong> function sets the real and effective user
IDs to the values specified by <em>ruid</em> and <em>euid</em>.</p>
<p>A thread with *ALLOBJ special authority can set either ID to any value.</p>
<p>A thread without *ALLOBJ special authority can only set the effective user
ID if the <em>euid</em> argument is equal to the real, effective, or saved user
ID.</p>
<p>Job scoped locks with a lock state of *SHRRD are held on the user profiles
associated with the real user ID, effective user ID, saved user ID, real group
ID, effective group ID, saved group ID, and all of the supplemental groups.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>real uid</em></strong></dt>
<dd>(Input) User ID.
<p>This field must contain one of the following values:</p>
<dl>
<dt><strong>0 to 4294967294</strong></dt>
<dd>The user ID value for the set operation.<br>
</dd>
<dt><strong>4294967295</strong></dt>
<dd>The real user ID does not change. This value is the same as X'FFFFFFFF' or
-1 in languages that do not support unsigned integers.</dd>
</dl>
<br>
</dd>
<dt><strong><em>effective uid</em></strong></dt>
<dd>(Input) User ID.
<p>This field must contain one of the following values:</p>
<dl>
<dt><strong>0 to 4294967294</strong></dt>
<dd>The user ID value for the set operation.<br>
</dd>
<dt><strong>4294967295</strong></dt>
<dd>The effective user ID does not change. This value is the same as
X'FFFFFFFF' or -1 in languages that do not support unsigned integers.</dd>
</dl>
</dd>
</dl>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><strong>*ALLOBJ special authority</strong></dt>
<dd>*ALLOBJ special authority is required to change the real user ID. *ALLOBJ
special authorty is required to change the effective user ID if the <em>
euid</em> is not equal to the real, effective, or saved user ID.<br>
</dd>
<dt><strong>User profile associated with <em>euid</em> lock</strong></dt>
<dd>*SHRRD<br>
</dd>
<dt><strong>User profile associated with <em>ruid</em> lock</strong></dt>
<dd>*SHRRD</dd>
</dl>
<br>
<h3>Return Value</h3>
<dl>
<dt><strong>0</strong></dt>
<dd><strong>qsysetreuid()</strong> was successful.<br>
</dd>
<dt><strong>-1</strong></dt>
<dd><strong>qsysetreuid()</strong> was not successful. The <em>errno</em>
variable is set to indicate the error.</dd>
</dl>
<br>
<h3>Error Conditions</h3>
<p>If <strong>qsysetreuid()</strong> is not successful, <em>errno</em>
indicates one of the following errors.</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<th align="left" valign="bottom">Error condition</th>
<th align="left" valign="bottom">Additional information</th>
</tr>
<tr>
<td align="left" valign="top">
<em>[<a href="unix14.htm#EAGAIN">EAGAIN</a>]</em></td>
<td align="left" valign="top">
<p>User profile associated with <em>ruid</em> or <em>euid</em> is locked. Try
again.</p>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EDAMAGE">EDAMAGE</a>]</em></td>
<td align="left" valign="top">
<p>The user profile associated with <em>ruid</em> or <em>euid</em> or an
internal system object is damaged.</p>
</td></tr>
<tr>
<td align="left" valign="top">
<em>[<a href="unix14.htm#EINVAL">EINVAL</a>]</em></td>
<td align="left" valign="top">
<p>The value of the <em>ruid</em> or <em>euid</em> argument is not valid. Following are possible
reasons:</p>
<ul compact>
<li>Out of range.</li>
<li>Not associated with a user profile.</li>
</ul>
</td>
</tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#ENOTSUP">ENOTSUP</a>]</em></td>
<td align="left" valign="top">
<p>Operation not supported. The user profile associated with this <em>uid</em>
specifies OWNER(*GRPPRF), but the user profile's first group is not the current
effective group, nor is it in the list of supplemental groups.</p>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EPERM">EPERM</a>]</em></td>
<td align="left" valign="top">
<p>Operation not permitted. The current thread does not have *ALLOBJ special
authority, and either an attempt was made to change the effective user ID to a
value other than the real user ID or the saved set-user-ID or an an attempt was
made to change the real user ID.</p>
</td></tr>
<tr><td align="left" valign="top"><em>[<a href="unix14.htm#EUNKNOWN">EUNKNOWN</a>]</em></td>
<td align="left" valign="top">
<p>An unknown error has occurred. Check the joblog for error messages.</p>
</td></tr>
</table>
<br>
<hr>
API introduced: V4R5
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>