SETFSUID(2) | Linux Programmer's Manual | SETFSUID(2) |
名前
setfsuid -ファイルシステムのチェックに用いられるユーザ ID を設定する書式
#include <unistd.h> /* glibc では <sys/fsuid.h> */説明
setfsuid() は Linux カーネルがファイルシステムに対する全てのアクセスのチェックに使用するユーザID を設定する。通常は fsuid の値は実効 (effective) ユーザID と同じになる。実際、実効ユーザID が変更される度に fsuid もまた新しい実効ユーザID の値に変更される。返り値
成功した場合、 fsuid の以前の値を返す。エラーの場合は fsuid の現在の値を返す。バージョン
このシステムコールはバージョン 1.2 以降の Linux に存在する。準拠
setfsuid() は Linux 特有であり、移植を想定したプログラムで使用してはいけない。注意
glibc が引き数がユーザID として不正だと判断した場合は、システムコールを行わず errno に EINVAL を設定して-1 が返される。このシステムコールが導入された当時、プロセスは同じ実効ユーザIDのプロセスへシグナルを送ることができた。今日では、シグナル送信権限の扱いはかなり違うものになっている。
元々の Linux の setfsuid() システムコールは 16 ビットのグループ ID だけに対応していた。その後、Linux 2.4 で、32 ビットの ID に対応した setfsuid32() が追加された。 glibc の setfsuid() のラッパー関数はカーネルバージョンによるこの違いを吸収している。
バグ
いかなる種類のエラーメッセージも呼び出し元に返さない。失敗した場合は (呼び出し元には CAP_SETUID ケーパビリティがなかったのだから) 最低でも EPERM くらいは返すべきである。関連項目
kill(2), setfsgid(2), capabilities(7), credentials(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-11-22 | Linux |