SetUIDの利用例[画像のクリックで拡大表示]Linuxでは,ユーザーを「UID」と呼ぶID番号で管理しています。「SetUID」とは,アクセスしているユーザーを,一時的に別のUIDのユーザーに変更できる機能です。Linuxを含むUNIX系OSでは,管理者のrootにしかできないことがいくつもあります。SetUIDは,一般ユーザーがrootにしかできない作業を行うときに,rootのパスワードを教えることなく,利用できるようにした便利な機能です。Linuxではよく使われています。起動しているプロセスには,UIDとGID(グループのID)が設定されています。シェル・プログラムのプロセスは,ログインした際のユーザーのUIDとGIDになっているはずです。シェル上で新たにプロセスを生成すると,そのプロセスのUIDとGIDは,シェルのUIDとGIDを引き継ぎます。このUIDとGIDは,ファイルのアクセス権限に影響します。パスワードを格納している/etc/shadowファイルのパーミッションは,管理者であるrootユーザーにのみ,読み出しを許可しています。そのため,一般ユーザーがcatコマンドを使って/etc/shadowにアクセスしようとしても,エラーになります。ところが,/usr/bin/passwdプログラムを使うと,一般ユーザーでもパスワードを変更できます。これは,/usr/bin/passwdにSetUIDが設定されているためです。/usr/bin/passwdのパーミッションを確認すると,所有者は「root」,所有者の実行権限が「s」になっています。この「s」が,SetUIDを設定していることを表します。SetUIDを設定していると,そのプログラムのプロセスのUIDは,所有者になります。,/usr/bin/passwdプログラムの所有者はrootなので,passwdプロセスのUIDはrootになり,本来rootしかアクセスできない/etc/shadowファイルに書き込めるのです(図1)。SetUIDを付与するには,chmodコマンドを使います。samplepgmと実行します。農家が実感した自動飛行ドローンのすごさクラウド現場の負担軽減を!医療界でのAWS活用法SaaSを加速するソリューションとは?クラウドの新形態「aPaaS」のメリットDXを阻むコミュニケーションの壁とは?AWSとSAPの連携強化がもたらす利点は500万社が導入。価値創造型の社内コミュニケーションとは発想を豊かにする有機的な会議ツールとは働き方が変わる。Reserved.このページに掲載されている記事・写真・図表などの無断転載を禁じます。掲載している情報は、記事執筆時点のものです。