<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tiffa.net/w/index.php?action=history&amp;feed=atom&amp;title=%2Fusr%2Fbin%2Fsu</id>
	<title>/usr/bin/su - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tiffa.net/w/index.php?action=history&amp;feed=atom&amp;title=%2Fusr%2Fbin%2Fsu"/>
	<link rel="alternate" type="text/html" href="https://wiki.tiffa.net/w/index.php?title=/usr/bin/su&amp;action=history"/>
	<updated>2026-05-20T06:41:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.tiffa.net/w/index.php?title=/usr/bin/su&amp;diff=2418&amp;oldid=prev</id>
		<title>imported&gt;Fire: /* EXIT STATUS */</title>
		<link rel="alternate" type="text/html" href="https://wiki.tiffa.net/w/index.php?title=/usr/bin/su&amp;diff=2418&amp;oldid=prev"/>
		<updated>2022-11-27T10:26:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;EXIT STATUS&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;su - ユーザID、グループIDを代替してコマンドを実行する&lt;br /&gt;
&lt;br /&gt;
== SYNOPSIS ==&lt;br /&gt;
       su [options] [-] [user [argument...]]&lt;br /&gt;
&lt;br /&gt;
== DESCRIPTION ==&lt;br /&gt;
su は，ユーザとグループ ID を代用してコマンドを実行できるようにする。&lt;br /&gt;
&lt;br /&gt;
ユーザを指定せずに呼び出すと、su はデフォルトで root として対話型シェルを実行する。 user が指定されている場合、追加の引数を与えることができ、その場合、引数はシェルに渡される。&lt;br /&gt;
&lt;br /&gt;
後方互換性のために、su はデフォルトでカレントディレクトリを変更せず、 環境変数 HOME と SHELL (ターゲットユーザが root でない場合は USER と LOGNAME) のみを設定する。 環境の混在による副作用を避けるため、常に &amp;#039;&amp;#039;&amp;#039;--login&amp;#039;&amp;#039;&amp;#039; オプション (ショートカットの &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039; の代わり) を使用することが推奨される。&lt;br /&gt;
&lt;br /&gt;
このバージョンの su は、認証、アカウント、セッションの管理に PAM を使用する。  ホイールグループのサポートなど、他の su の実装で見られるいくつかの設定オプションは、PAM を使って設定しなければならない。&lt;br /&gt;
&lt;br /&gt;
su は主に非特権ユーザのために設計されている。特権ユーザ (例えば root で実行されるスクリプト) のための推奨される解決策は、認証を必要とせず、個別の PAM 設定を提供する非設定ユーザ ID コマンド &amp;#039;&amp;#039;&amp;#039;[[/usr/bin/runuser|runuser]]&amp;#039;&amp;#039;&amp;#039; を使用することである。PAM セッションが全く必要ない場合は、&amp;#039;&amp;#039;&amp;#039;[[/usr/bin/setpriv|setpriv]]&amp;#039;&amp;#039;&amp;#039; コマンドを使用することをお勧めする。&lt;br /&gt;
&lt;br /&gt;
すべての場合において、su は PAM ([https://manpages.debian.org/bullseye/libpam0g-dev/pam_getenvlist.3.en.html pam_getenvlist](3)) を使って、最終的な環境の変更を行うことに注意。  &amp;#039;&amp;#039;&amp;#039;--login&amp;#039;&amp;#039;&amp;#039; や &amp;#039;&amp;#039;&amp;#039;--preserve-environment&amp;#039;&amp;#039;&amp;#039; のようなコマンドラインオプションは、PAM によって変更される前の環境に影響を与える。&lt;br /&gt;
&lt;br /&gt;
== OPTIONS ==&lt;br /&gt;
;-c, --command=command&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;-c&amp;#039;&amp;#039;&amp;#039;オプションでシェルにコマンドを渡す。&lt;br /&gt;
&lt;br /&gt;
;-f, --fast&lt;br /&gt;
:シェルに &amp;#039;&amp;#039;&amp;#039;-f&amp;#039;&amp;#039;&amp;#039; を渡す。これは、シェルによって役に立つ場合とそうでない場合がある。&lt;br /&gt;
&lt;br /&gt;
;-g, --group=group&lt;br /&gt;
:プライマリーグループを指定する。 このオプションはrootユーザーのみ利用可能である。&lt;br /&gt;
&lt;br /&gt;
;-G, --supp-group=group&lt;br /&gt;
:補助グループを指定する。 このオプションはrootユーザのみ使用可能である。 オプション &amp;#039;&amp;#039;&amp;#039;--group&amp;#039;&amp;#039;&amp;#039; が指定されない場合、最初に指定された補助グループはプライマリグループとしても使用される。&lt;br /&gt;
&lt;br /&gt;
;-, -l, --login&lt;br /&gt;
:実際のログインに近い環境で、ログインシェルとして起動する。&lt;br /&gt;
&lt;br /&gt;
:o      TERM と &amp;#039;&amp;#039;&amp;#039;--whitelist-envi-ronment&amp;#039;&amp;#039;&amp;#039; で指定された変数以外のすべての環境変数をクリアする。&lt;br /&gt;
&lt;br /&gt;
:o      環境変数HOME、SHELL、USER、LOGNAME、PATHを初期化する。&lt;br /&gt;
&lt;br /&gt;
:o      ターゲットユーザーのホームディレクトリの変更&lt;br /&gt;
&lt;br /&gt;
:o      シェルの argv[0] に &amp;#039;-&amp;#039; を設定し、ログインシェルにする。&lt;br /&gt;
&lt;br /&gt;
;-m, -p, --preserve-environment&lt;br /&gt;
:環境全体を保存する。つまり、HOME、SHELL、USER、LOGNAMEを設定しない。 このオプションは、&amp;#039;&amp;#039;&amp;#039;--login&amp;#039;&amp;#039;&amp;#039;オプションが指定されている場合、無視される。&lt;br /&gt;
&lt;br /&gt;
;-P, --pty&lt;br /&gt;
:セッション用の擬似端末を作成する。独立したターミナルは、ユーザーがオリジナルのセッションとターミナルを共有しないため、より良いセキュリティを提供する。 これを利用して、TIOCSTI ioctl ターミナルインジェクションや、ターミナルファイル記述子に対する他のセキュリティ攻撃を回避することができる。 また、セッション全体をバックグラウンドに移動させることもできる（例：&amp;#039;&amp;#039;&amp;#039;su --pty - username -c application &amp;amp;&amp;#039;&amp;#039;&amp;#039;）。 擬似端末が有効な場合、su はセッション間のプロキシとして動作する (stdin と stdout をコピーする)。&lt;br /&gt;
&lt;br /&gt;
:この機能は、主に対話型セッションのために設計されている。 標準入力が端末ではなく、例えばパイプである場合 (echo &amp;quot;date&amp;quot; | su --pty など)、 擬似端末の ECHO フラグは、雑な出力を避けるために無効化される。&lt;br /&gt;
&lt;br /&gt;
;-s, --shell=shell&lt;br /&gt;
:デフォルトのシェルではなく、指定したシェルを実行する。 実行するシェルは、以下の規則に従って順番に選択される。&lt;br /&gt;
&lt;br /&gt;
:o      &amp;#039;&amp;#039;&amp;#039;--shell&amp;#039;&amp;#039;&amp;#039; で指定されたシェル&lt;br /&gt;
&lt;br /&gt;
:o      &amp;#039;&amp;#039;&amp;#039;--preserve-environment&amp;#039;&amp;#039;&amp;#039; オプションを指定している場合、環境変数SHELLで指定されているシェル&lt;br /&gt;
&lt;br /&gt;
:o      ターゲットユーザの passwdエントリーにリストされたシェル&lt;br /&gt;
&lt;br /&gt;
:o      /bin/sh&lt;br /&gt;
&lt;br /&gt;
:ターゲットユーザーが制限されたシェルを持っている場合 (すなわち /etc/shells にリストされていない場合)、 呼び出しユーザーが root でない限り &amp;#039;&amp;#039;&amp;#039;--shell&amp;#039;&amp;#039;&amp;#039; オプションと SHELL 環境変数は無視される。&lt;br /&gt;
&lt;br /&gt;
;--session-command=command&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;-c&amp;#039;&amp;#039;&amp;#039;と同じであるが、新しいセッションは作られない。&lt;br /&gt;
&lt;br /&gt;
;-w, --whitelist-environment=list&lt;br /&gt;
:環境クリア時にカンマ区切りリストで指定された環境変数をリセットしない。ホワイトリストは、環境変数 HOME、SHELL、USER、LOGNAME、および PATH を無視する。&lt;br /&gt;
&lt;br /&gt;
;-V, --version&lt;br /&gt;
:バージョン情報を表示し終了する。&lt;br /&gt;
&lt;br /&gt;
;-h, --help&lt;br /&gt;
:ヘルプテキストを表示し終了する。&lt;br /&gt;
&lt;br /&gt;
== SIGNALS ==&lt;br /&gt;
SIGINT, SIGQUIT, SIGTERM のいずれかを受け取ると、 su はその子プロセスを終了させ、その後、受け取ったシグナルで自分自身を終了させる。 子プロセスは SIGTERM によって終了され、失敗して 2 秒後に SIGKILL によって終了される。&lt;br /&gt;
&lt;br /&gt;
== CONFIG FILES ==&lt;br /&gt;
su は /etc/default/su と /etc/login.defs の設定ファイルを読む。 以下の設定項目は、su に関連するものである。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;FAIL_DELAY (number)&lt;br /&gt;
:認証に失敗した場合の遅延時間（秒単位）。負でない整数である必要がある。&lt;br /&gt;
&lt;br /&gt;
;ENV_PATH (string)&lt;br /&gt;
:一般ユーザーのためのPATH環境変数を定義する。 デフォルトは、/usr/local/bin:/bin:/usr/binである。&lt;br /&gt;
&lt;br /&gt;
;ENV_ROOTPATH (string)&lt;br /&gt;
;ENV_SUPATH (string)&lt;br /&gt;
:root の PATH 環境変数を定義する。 ENV_SUPATHが優先される。 デフォルトは、/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binである。&lt;br /&gt;
&lt;br /&gt;
;ALWAYS_SET_PATH (boolean)&lt;br /&gt;
:yes に設定され、&amp;#039;&amp;#039;&amp;#039;--login&amp;#039;&amp;#039;&amp;#039; と &amp;#039;&amp;#039;&amp;#039;--preserve-environment&amp;#039;&amp;#039;&amp;#039; が指定されていない場合、su は PATH を初期化する。&lt;br /&gt;
&lt;br /&gt;
環境変数 PATH は、/bin と /sbin が /usr に統合されているシステムでは異なるかもしれない。この変数は、&amp;#039;&amp;#039;&amp;#039;--login&amp;#039;&amp;#039;&amp;#039; コマンドラインオプションと PAM システム設定 (例: &amp;#039;&amp;#039;&amp;#039;[https://manpages.debian.org/bullseye/libpam-modules/pam_env.7.en.html pam_env]&amp;#039;&amp;#039;&amp;#039;(7)) によっても影響される。&lt;br /&gt;
&lt;br /&gt;
== EXIT STATUS ==&lt;br /&gt;
su は通常、実行したコマンドの終了ステータスを返す。 コマンドがシグナルによって強制終了された場合、su はそのシグナルの番号に 128 を加えたものを返す。&lt;br /&gt;
&lt;br /&gt;
su 自身が生成した終了ステータス。&lt;br /&gt;
&lt;br /&gt;
:1      要求されたコマンドを実行する前に一般的なエラーが発生しました。&lt;br /&gt;
&lt;br /&gt;
:126 要求されたコマンドを実行できませんでした。&lt;br /&gt;
&lt;br /&gt;
:127 要求されたコマンドが見つかりません。&lt;br /&gt;
&lt;br /&gt;
== FILES ==&lt;br /&gt;
;[[/etc/pam.d/su]]&lt;br /&gt;
:default PAM configuration file&lt;br /&gt;
;[[/etc/pam.d/su-l]]&lt;br /&gt;
:PAM configuration file if --login is specified&lt;br /&gt;
;[[/etc/default/su]]&lt;br /&gt;
:command specific logindef config file&lt;br /&gt;
;[[/etc/login.defs]]&lt;br /&gt;
:global logindef config file&lt;br /&gt;
&lt;br /&gt;
== NOTES ==&lt;br /&gt;
セキュリティ上の理由から、su はログインの失敗を常に btmp ファイルに記録するが、 lastlog ファイルには全く書き込まれない。この解決策は、PAM の設定によって su の動作を制御するために使用することができる。もし、&amp;#039;&amp;#039;&amp;#039;[https://manpages.debian.org/bullseye/libpam-modules/pam_lastlog.8.en.html pam_lastlog]&amp;#039;&amp;#039;&amp;#039;(8) モジュールを使って、ログインに失敗したときの警告メッセージを表示したい場合は、 &amp;#039;&amp;#039;&amp;#039;[https://manpages.debian.org/bullseye/libpam-modules/pam_lastlog.8.en.html pam_lastlog]&amp;#039;&amp;#039;&amp;#039;(8) が lastlog ファイルも更新するように設定されていなければならない。たとえば、次のようにする。&lt;br /&gt;
&lt;br /&gt;
:session  required  pam_lastlog.so nowtmp&lt;br /&gt;
&lt;br /&gt;
== HISTORY ==&lt;br /&gt;
This su command was derived from coreutils&amp;#039; su, which was based on an implementation  by  David  MacKenzie.  The util-linux version has been refactored by Karel Zak.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SEE ALSO ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[/usr/bin/setpriv|setpriv]]&amp;#039;&amp;#039;&amp;#039;, &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[/etc/login.defs|login.defs]]&amp;#039;&amp;#039;&amp;#039;, &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[/etc/shells|shells]]&amp;#039;&amp;#039;&amp;#039;, &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[https://manpages.debian.org/bullseye/libpam-runtime/pam.7.en.html pam](7), &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[/usr/bin/runuser|runuser]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== AVAILABILITY ==&lt;br /&gt;
The  su  command  is  part  of  the  util-linux  package  and  is  available from Linux Kernel Archive ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩.&lt;br /&gt;
&lt;br /&gt;
== External link ==&lt;br /&gt;
&lt;br /&gt;
{{Linux}}&lt;br /&gt;
&lt;br /&gt;
{{Debian|https://manpages.debian.org/bullseye/util-linux/su.1.en.html}}&lt;br /&gt;
[[Category:/usr/bin|su]]&lt;br /&gt;
[[Category:システム管理|su]]&lt;br /&gt;
[[Category:util-linux|su]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Fire</name></author>
	</entry>
</feed>