3

私は、UNIXユーザー/グループデータベースをハドソンのセキュリティレルムとして使用しようとしています。Linuxサーバーはユーザー管理にNISを使用しています。私のアカウントはssh経由でハドソンサーバーにログインできます。

また、ハドソンサーバーはグループ「shadow」のメンバーでもあるユーザー「hudson」によって実行されているため、ハドソンは/ etc/shadowを読み取ることができます。そして、「テスト」ボタンを使用して構成をテストしました。ハドソンは、それがうまく機能していると言っています。

しかし、UNIXアカウントとパスワードを使用してハドソンサーバーにログインすることはできません。

そして、ハドソンのログで以下のJava例外を見つけました。

Jan 12, 2011 8:23:42 AM hudson.security.AuthenticationProcessingFilter2 onUnsuccessfulAuthentication
INFO: Login attempt failed
org.acegisecurity.BadCredentialsException: pam_authenticate failed : Authentication failure; nested exception is org.jvnet.libpam.PAMException: pam_authenticate failed : Authentication failure
    at hudson.security.PAMSecurityRealm$PAMAuthenticationProvider.authenticate(PAMSecurityRealm.java:100)
    at org.acegisecurity.providers.ProviderManager.doAuthentication(ProviderManager.java:195)
    at org.acegisecurity.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:45)
    at org.acegisecurity.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:71)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:252)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
    at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
    at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
    at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
    at java.lang.Thread.run(Thread.java:595)
Caused by: org.jvnet.libpam.PAMException: pam_authenticate failed : Authentication failure
    at org.jvnet.libpam.PAM.check(PAM.java:105)
    at org.jvnet.libpam.PAM.authenticate(PAM.java:123)
    at hudson.security.PAMSecurityRealm$PAMAuthenticationProvider.authenticate(PAMSecurityRealm.java:90)
    ... 18 more

1月17日に更新

ホストはRHEL4.5で、ユーザーとグループのシャドウを作成してから、グループのシャドウにハドソンを追加しました。

-bash-3.00$ cat  /etc/redhat-release 
Red Hat Enterprise Linux WS release 4 (Nahant Update 5)
-bash-3.00$ ll /etc/shadow
-r--r-----  1 root shadow 1114 Jan  4 11:37 /etc/shadow
-bash-3.00$ cat /etc/group |grep shadow
shadow:x:44:hudson

また、別のRHEL4.8ホストでhudsonをセットアップしようとしました。今回はハドソンをルートで走らせました、

kzhu0@pek-wb-rhws4_32:~$ ps -ef|grep hudson
root     18764 29161  0 Jan14 pts/5    00:00:33 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DHUDSON_HOME=/var/lib/hudson -jar /usr/lib/hudson/hudson.war --logfile=/var/log/hudson/hudson.log --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
kzhu0    22404 18833  0 10:52 pts/2    00:00:00 grep hudson
kzhu0@pek-wb-rhws4_32:~$ cat /etc/redhat-release 

しかし、私はまだUNIXユーザー/パスワードグループを機能させることができません。また、/ var / log/messagesと/var/ log/secureにpamエラーメッセージが見つかりません。実際に認証を取得するためにpamを使用する前に、hudsonが例外をスローするようです。Red Hat Enterprise Linux WSリリース4(Nahant Update 8)

4

3 に答える 3

5

HudsonがPAMセキュリティレルムに使用するlibpam4jのコードをデバッグした後、解決策を見つけました。

  1. 私の場合、NISを使用して認証を行うため、サービス名は「sshd 」である必要があります。代替テキストRHEL4.xはpam0.77を使用します。これは、hudsonによって指定されたサービス名に厳密に依存します。ただし、私のUbuntu 10.04は、pam1.1.1を使用する意味のないサービス名を受け入れます。
  2. ハドソンを実行するユーザーは、pamのサービスファイルを読み取る権限を持っている必要があります。私の場合は/etc/pam.d/sshdがファイルです。
于 2011-01-18T08:05:11.280 に答える
3

私の場合、ubuntu10.04サービス名にsshdの代わりにsshを使用する必要がありました

于 2011-03-30T08:08:30.283 に答える
0

私は何時間もこの問題に苦しんでいます。最後に、私にとってうまくいったことは次のとおりです。1.ルートグループとシャドウグループに「hudson」ユーザーを追加します。2。sshdをインストールします(/etc/pam.dにありません)。3.PAMサービスをログインに設定します。

次に、UnixアカウントでHudsonにログインし、Unixユーザーとしてビルドを実行できます。

ポイント1は問題を解決したものだと思います。

于 2015-04-08T05:21:06.257 に答える