• 締切済み

UID.GIDについて

「CentOS release 5.5」で、Apache/2.2.3 ProFTPD Version 1.3.2 でWEBサーバを作り、ユーザ管理は、別立てのldapサーバで行い動いています。 ユーザからsuexec機能が欲しいということで実装すると、cgiが動かないという問合せがきました。 調べるとldap 上のUID.GID(hoge.hoge=UIDとGIDが同じ)と、ファイルシステム上(フォルダ、ファイル)のUID.GID(hoge.users)が異なる為、suexecが policy violation:を起こしていました。 両方のUID.GID(hoge.users)を一致させ動くようになりましたが、構築者(業者)は、UID.GIDがldapとファイルシステム上と異なる事で問題になるのはsuexec機能だけなので大きな問題ではないと主張しています。 質問: 今後、メールサーバ(postfix)等もldapを使う予定ですが、ldapとファイルシステム上のUID.GIDが異なる事でどの様な問題が起こる可能性があるのでしょうか。 ldapとファイルシステム上のUID.GIDを一致させないのは普通(default)のやり方なのでしょうか。 通常、/etc/passwd,group,shadowでアカウントは管理されていますが、これらとファイルシステム上のUID.GID は一致しています。→当然ldapにした場合も同じにすべきと私は考えていますがこの考えは正しいのでしょうか。 よろしくお願いします。

みんなの回答

  • pakuti
  • ベストアンサー率50% (317/631)
回答No.1

postfixでは通常はUIDやGIDは使わないかと思われますが (Postfix+LDAPで配送もLDAPに任せるのであれば別) 普通は、全システムでUIDとGIDは共通させます。 そうでないと動かないアプリケーションもあるでしょう (DovecotやCourierもそうであったと記憶しています) UID GIDを別物にするシステムを構築したことが無いため 具体的にどうなのかは説明出来ませんが、普通は合わせるものでしょう

auto-mata
質問者

お礼

ご回答、ありがとうございます。 「普通、UID.GID を一致させる」とのことで、安心しました。 一致させないと、思わぬ所で、問題が出るのでしょうか? というか、一致させなかった場合を考えるより、一致させる方向で考える方が建設的な考え方ですね。

関連するQ&A

  • uidとgidの変更

    こんばんは。 RedHat Linuxを使用しています。 とあるユーザのuidとgidを変更したいのですが、 どのように変更すれば良いでしょうか?。 一旦ユーザの削除が必要でしょうか・・。 例: uid=500(oracle) gid=500(oinstall) を uid=501(oracle) gid=501(oinstall) また関連していくつかのOSファイルの編集も必要でしょうか。 細かくて恐縮ですが、 よろしくお願いします。

  • gid を変更したい

    お世話になっております。 Redhat9をサーバーに使用し、クライアントにWindowsXPを使う環境でLANを構築しています。 アカウントを追加する際、 useradd -G group1 user1 と入力して追加しました。 id user1 で確認すると uid=***(user1) gid=***(group1) となります。 この gid を user1 の名前のグループ名に変更したいのですが、どうしたらよいのでしょうか。 最初から何もせずに useradd user1 と入力してアカウントを追加すれば別に苦労はしなかったのですが、初めてアカウントを設定したので、うれしがって余計なことをしてしまいました。 よろしくお願いします。

  • OracleのUID

    初歩的な質問ですが教えてください。 現在、RHEL4+Oracle10gを使用してデータベースを運用中ですが、 運用中にOSに登録してるOracleユーザのUIDは変更しても問題ないのでしょうか? 変更する必要に迫られ、再インストールしないといけないので考え中です。 もしUID、GIDを変更しても影響がないのであればそのまま使用したいのですが。 よろしくお願いします。

  • /etc/groupがおかしい??

    RedHatLinux9でweb,mail,proxy,ldapのサーバーたててます 本日ユーザーの新規追加をしようと思って webminで一括登録してみたら グループに登録されてるはずのユーザーが全く入っていなかったんです。 ユーザー数が800と多いので単に表示できないだけのWebminのバグかなって思ったんですが /etc/groupを見たら新規ユーザーどころか、既存ユーザーも入っていませんでした。 ただ前に確認したときはいたはずなので、どうして変わってしまったのかわかりません。 LDAPへの登録もなぜかできなくなってしまいました。 Ldap_add :Invalid syntax Additional info : gidNumber : value #0 invalid per syntax Ldif_record( )=21 /etc/groupが問題なのでLDAPは関係ないとは思いますが 最近したことといえばwebminでしたユーザーの追加とLDAPの登録ぐらいなのでこの2つが原因なのかなと思っているんですが。 webminではなくて、標準のGUIのユーザー管理ツールを開こうとすると ユーザーデータベースにアクセスできませんというエラーが出ます。 非常に困ってます。 手作業で800名分もグループへの追加なんてできませんし、、、 よろしくお願いします。 一括登録はwebminのシステムのユーザーとグループのところで Create, modify and delete users from batch fileで create:username:passwd:uid:gid:realname:homedir:shell::::: (アカウントの有効期限とかは必要ないのでそこは空白にしてます)でnewuser.txtというテキストファイルを作り、読み込ませました。 ちなみに/etc/passwdは問題ないんです。 ちゃんとGIDが入ってます。 でも/etc/groupには入ってない なんででしょうか?

  • DirectoryEntryでのLDAP認証

    下記環境で、LDAP認証アプリを作成しております。 LDAPサーバ:Windows 2003R2サーバ クライアント:Windows 7 Pro VB.net 2010 Pro Apache Directory Studio(以降、ADS) を使用し、LDAPサーバに、添付した資料のように uid を追加。 LDAP認証した際に、登録したuidにも関わらず、 「ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。」 となってしまい困っております。 VB.netのソースを下記に記載します。 -------------------- Try drEntry = New DirectoryEntry("LDAP://(LDAPサーバ名):389/uid=hoge,ou=People,dc=maxcrc,dc=com", "ou=People,dc=maxcrc,dc=com","hogepassword", AuthenticationTypes.FastBind) Dim drSearch As New DirectorySearcher() drSearch.ServerTimeLimit = New System.TimeSpan(0, 0, 1000) drSearch.ClientTimeout = New System.TimeSpan(0, 0, 1000) drSearch.SearchRoot = drEntry drSearch.SearchScope = SearchScope.Subtree sResult = drSearch.FindOne MsgBox("ログイン成功") Catch ex As Exception MsgBox("ログイン失敗") End Try ---------------------- drEntry = New DirectoryEntry("LDAP://(LDAPサーバ名):389/uid=hoge,ou=People,dc=maxcrc,dc=com", "cn=manager,dc=maxcrc,dc=com","hogepassword", AuthenticationTypes.FastBind) ou=Peopleを、LDAPサーバー構築時に管理者で作成した cn=manager と変更すると、 ログインできるのですが。。。 DirectoryEntryへの接続文字列の指定の仕方が間違っているのか?はたまた?うーん。。。 そもそもLDAPへの理解がまだ全然足りていない部分もあり、時間も押し迫っていることから 質問させていただくこととなりました。 ADSでみたLDAPの構成と、VBのソースで何か気づかれた点、アドバイス等ありましたら ご指摘のほど、よろしくお願いいたします。

  • LDAP認証によるPfoftpdについて

    Solaris10で、OpenLDAPとProftpdとSun付属のLDAPクライアントで構成された環境で、Windowsから、FFFTPを使ってLDAP認証でログインさせようとしているんですが、うまく行きません。また、Proftpdをinetから起動させているんですが、再起動すると状態がメンテナンスの状態で、オンラインになりません。 Windowsから、SSHを使ってLDAPユーザでログインはできます。教えていたら幸いです。よろしくお願いします。 Proftpd.conf AuthPAM off LDAPServer "192.168.24.52" LDAPAuthBinds on LDAPDNInfo dc=solaristest,dc=com LDAPDoAuth on "ou=People,dc=solaristest,dc=com" LDAPDoGIDLookups on "ou=Group,dc=solaristest,dc=com" LDAPDoUIDLookups on "ou=People,dc=solaristest,dc=com" /etc/nsswitch.conf hosts files ldap svcs -a | grep ftp maintenance 2:09:32 svc:/network/ftp:default Proftpd.log Dec 25 02:07:44 solaris proftpd[1102] solaris (loghost[192.168.24.51]): FTP session opened. Dec 25 02:07:46 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_connect(): bind as cn=Manager,dc=solaristest,dc=com failed: Server is unwilling to perform Dec 25 02:07:46 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: ldap_handle_getgroups(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_connect(): bind as cn=Manager,dc=solaristest,dc=com failed: Server is unwilling to perform Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: ldap_handle_getgroups(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): mod_ldap/2.8.20-20090124: pr_ldap_user_lookup(): LDAP search failed: Bad parameter to an ldap routine Dec 25 02:07:48 solaris proftpd[1102] solaris (loghost[192.168.24.51]): USER hoge: no such user found from loghost [192.168.24.51] to 192.168.24.52:21 Dec 25 02:07:49 solaris proftpd[1102] solaris (loghost[192.168.24.51]): FTP session closed

  • /etc/groupのグループメンバー列の定義について

    /etc/groupのグループメンバー列の定義について納得がいきません。 /etc/passwdの内容 hoge:x:500:500:hoge:/home/hoge:/bin/bash hoge4:x:503:500::/home/hoge4:/bin/bash [root@localhost test]# id hoge4 uid=503(hoge4) gid=500(hoge) 所属グループ=500(hoge),501(hoge2) [root@localhost test]# id hoge uid=500(hoge) gid=500(hoge) 所属グループ=500(hoge),503(g1) /etc/groupの内容 hoge:x:500:hoge hoge2:x:501:hoge4 g1:x:503:hoge hoge4:x:504: hogeグループのグループメンバー列になぜユーザhogeはあるのにユーザhoge4がないのでしょうか?

  • AuthUserFile用に登録するためには

     初めて投稿します。よろしくお願いしますm(_ _)m  質問の内容は『PerlでProftpdのユーザファイルを作成するには』です。ブラウザを使って、IDやパスワードなどを登録するつもりなのですが、その際FTPd用のユーザファイルを作成しようと考えています。コマンドライン上から直接実行すれば成功するのですが、ブラウザ上からクライアントの操作で書き込みができません。どうすればよいか、どうかご教授くださいませ。 [環境]    OS:VineLinux3.2  FTPD:proftpd-1.2.10 [nobody] HTTPD:Apache-1.3.3 [nobody] 実行ファイル名:sample.cgi [手順] 1.ブラウザ上でユーザ名とパスワードを入力してもらう  →このとき、ユーザ名を[$user]、パスワードを[$passwd]に格納します 2.system関数を使って、ユーザ情報とパスワードをAuthUserFileで指定したファイルに格納する  →指定したファイルは[/etc/ftp.pass]です  このときのコマンドは、 $file = "(FTPdのソースディレクトリ)/contrib/ftpasswd"; [system ("$file --passwd --file=/etc/ftp.pass --name=$user \--uid=510 --gid=100 --home=/home/hoge --shell=/bin/bash");]  です。ftp.passのパーミッションは[744]で、所有ユーザは[nobody]です。  ブラウザで実行する前にコマンドラインから実行しようとしたのですが、コマンドライン上から[perl sample.cgi]と打ち込むとエラーが出てきました。 [ ftpasswd: using alternate file: /etc/ftppasswd ftpasswd: --passwd: missing required argument: --home ]  よろしければ、どうかご教授くださいませ。

  • パーミッション変更ができません

    CentOS4.4とProftpdでFTPサーバを構築したのですが、クライアント(windowsからFFFTPで)から接続してファイルをアップロードしたのですが、"550 hoge: Permission denied"とエラーがでます。 これはユーザの権限が低いからなのでしょうか?それともサーバの設定なのでしょうか?検索してもエラーの内容はわかっても解決策がわかりません。よろしくお願いします。

  • OpenLDAPの”uid”属性について質問です。

    OpenLDAPの”uid”属性について質問です。 【環境】 RHEL5(64-bit) OpenLDAP2.3.43 【質問内容】 OpenLDAPを認証サーバとして、Webアプリケーションを構築しようと考えています。 ユーザID:オブジェクトクラスinetOrgPersonにおける”uid”属性 パスワード:オブジェクトクラスPersonにおける”userPassword”属性 で作成していますが、1点困っています。 ユーザIDに大文字小文字の区別がされないのです。 この件、調べてみたところ、 uid属性の等価比較する場合のルール(EQUALITY)が 、大文字/小文字を区別しない 状態になっているのでは?と考えました。 OpenLDAP(に標準添付されるスキーマ定義ファイル)のデフォルト値としても EQUALITY caseIgnoreMatch となっているようです。 そこで、/etc/openldap/schema/core.schema の内容を確認したところ、 該当箇所は以下のようになっていました。 #attributetype ( 0.9.2342.19200300.100.1.1 # NAME ( 'uid' 'userid' ) # DESC 'RFC1274: user identifier' # EQUALITY caseIgnoreMatch # SUBSTR caseIgnoreSubstringsMatch # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) また、他のスキーマ定義ファイルを見ても属性uidを定義している箇所は 存在しておりませんでした。 ここで疑問なのは、 ・属性uidの定義箇所はコメントアウトされており、未設定に見える ・ですが、大文字小文字の判断の問題はあれど、属性値としてのuidは  登録できているように見える です。 ・未記載の場合に適用されるデフォルト値があり、そちらを参照している 等あるのでしょうか? 最終的に当方が実施すべきと考えていることは、属性uidに対し EQUALITY caseExactMatch を実施する、とかんがえておりますが、上記の通りその実施箇所が わからなくなっております。 以上、ご存じの方がいらっしゃれば御回答頂きたく存じます。 (参考) slapd.confにて以下のように定義しており、他のスキーマ定義ファイルを 参照していることは無いと認識しております。 include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/その他、独自スキーマ また、全てのスキーマ定義ファイルについて、キーワード”uid”で検索し、 有意な設定箇所が無いことを確認しております。