ログインウィンドウで特定のユーザだけ表示させないようにするには?

Postgresをインストールしました。
インストール後、ログインウィンドウに『PostgreSQL Database Server』という、
ユーザが表示されるようになりました。
このユーザだけをログインウィンドウに表示させない方法はあるのでしょうか?
よろしくお願いします。

投稿日 2006/07/17 15:31

返信: 9

2006/07/20 22:19 Community User への返信

ログインできないユーザにすればいいです。
NetInfo マネジャーで shell の指定を /usr/bin/false に指定します。
実際に NetInfo マネジャーでユーザが表示されないユーザがどう指定されている見てみると参考になります。

2006/07/20 23:12 Community User への返信

postgresユーザは、ユーザ操作が必要だから一般ユーザとして作成されているはずです。ログイン出来ないようにしてしまうと、困ると思うけど・・

2006/07/21 05:33 Community User への返信

> postgresユーザは、ユーザ操作が必要だから一般ユーザとして作成されているはず
そういう例は聞いたことないですが。ユーザ操作はあくまでも利用するユーザのアカウントで行うのが基本です。(でないとマルチユーザで使えません)
ソフトを動かすために特定のアカウントが必要な例はごまんとあります。これは、必要以上の権限を与えないというセキュリティ上の理由(極端な話、ルート権限で動かすと、セキュリティホールがあったときに、そのソフトのユーザなら、悪意があれば、ルート権限が取れてしまうことになり、目も当てられないことになります)でそうなっています。しかし、これらはすべてそのアカウントの権限でソフトを動かすために必要(いわば、そのソフトの番頭役)なだけで、システムにログインする必要はありません。というより、マシンが動いているときなら、自動的に常に「ログインしている」状態になっている?という方が分かり易いかも知れません。無関係な他人が操作する必要はないし、そういうことを許すと、それはセキュリティホールになり兼ねません。
そのためにこういうのはほとんどがログインシェルは /usr/bin/false にして、パスワードは使えない設定(どんなパスワードもマッチしない)にします。そのユーザのホームも、そのソフトが使うデータベースなどのためのディレクトリーにして、他のユーザが勝手に書き込んだり変更したり出来ないようにするのが普通です。

2006/07/21 06:54 Community User への返信

> そういう例は聞いたことないですが。ユーザ操作はあくまでも利用するユーザのアカウントで行うのが基本です。
私の知る限りでは、種々のデータベース操作は「su - postgres」でまずpostgresユーザになってから行うと聞いています。私自身は使ってないので断言はできませんが、はにさんはご自身でお使いの上でこうおっしゃるのでしょうか?
特定のソフトのためのユーザが多く存在し、それらはログインできないようになっているのはもちろん承知しています。しかし、そういうユーザは、一般ユーザとして作成しないようにされているはずです。これに対し、postgresは常に一般ユーザとして(インストール時に自動的に)作成されるのです。これは、それが必要なためと私は解釈しておりますが、間違いでしたらご訂正ください。

2006/07/21 07:40 Community User への返信

> 種々のデータベース操作は「su - postgres」でまずpostgresユーザになってから行うと聞いています
トピ主さんは、一旦動くようにしてしまったので、以後、データベースの変更などをする必要がないのではないでしょうか?
たまに変更することもあるという程度なら、ルート(管理者ユーザ)になってからなら、いつでも postgres ユーザになることも出来ますので、postgres ユーザでログインできるようにしている必要もないのでは?
> そういうユーザは、一般ユーザとして作成しないようにされているはずです。
ユーザを作るのには、どんなユーザであろうと一般ユーザを作るのと同じ一つの方法しかありません。あとは passwd ファイル(OSX の場合なら NetInfo データベース)の設定を変更して目的に適うよう変更するだけです。

2006/07/21 10:23 Community User への返信

>たまに変更することもあるという程度なら、ルート(管理者ユーザ)になってからなら、いつでも postgres ユーザになることも出来ます
たとえルートでもログインシェルがなくては無理では?もちろんそのたびにNetInfoを修正するなら別ですが。
>ユーザを作るのには、どんなユーザであろうと一般ユーザを作るのと同じ一つの方法しかありません
方法について論じているのではありませんので。apacheやmysqlなど専用ユーザを作成するソフトウェアは多々ありますが、いずれも明示的にログインできないセキュアなユーザを作成するのに対し、Postgresは逆に通常ユーザとしてpostgresを作成しますから、そのことに意味があると考えるだけです。もちろん、私自身ユーザではなく詳しいことは知りませんので、よくご存知の方が「その必要はないよ」とおっしゃるなら、それを否定するつもりはありません。

2006/07/21 13:17 Community User への返信

Mac OS X 標準の MySQL しか使っていないので分からないのですが、Postgres インストール時に
作成される「PostgreSQL Database Server」と言うユーザの UID はいくつなんでしょうか?
Panther までと Tiger では少々 loginwindow に表示されるアカウントの扱いが変わっている様
で、Panther までは UID が 501 未満 (500 以下) だと自動的に非表示扱いなのですが、Tiger
では login shell が /usr/bin/false になっていないと、表示される様です。但し、Tiger でも
Panther 迄のように 500 以下の UID を自動的に非表示扱いさせるには、/System/Library/
CoreServices/loginwindows.app/Contents/MacOS/loginwindow の設定として、Terminal で
$ sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool true
とすればいいようです。
また、UID に関係なく、管理者権限を持つアカウントなど任意のユーザアカウントを loginwindow
のユーザリストに表示させないようにするためには
$ sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add [account1_short_user_name] [account2_user_short_name]... [account(n)_short_user_name]
と言う風に任意のユーザアカウントの short_user_name を HiddenUsersList 属性の値としてア
レイで登録すればいいようです。
Fast User Switching の方も一旦、FUS を無効にして、有効にし直すと当該アカウントが非表示
になるそうです。また、非表示アカウントのだいたいとして「その他...」と言う項目がリストに
表示されるのを避けたい場合は、
$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool false
とすればいいようです。なお、個人的にはログインウィンドウのユーザリスト表示は印鑑を隠し
てあるけど机の上に通帳を出しておくような物だと思っていますので、常に「ログイン時の表
示:名前とパスワード」に設定していますから、上記各種方法の検証はしていません。あくまで
も情報としてご参考までに。
情報元:Mac OS X Hints
1) Hide users from the login window via prefs
2) Hide all low UID users from the login window

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

ログインウィンドウで特定のユーザだけ表示させないようにするには?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。