Print

Print


Hi,

  I can see any obvious issue, this config is working for me:


all.adminpath /tmp/xrootd/var/spool

all.pidpath   /tmp/xrootd/var/run



oss.localroot /origin

all.export /



pfc.trace all

ofs.trace all

xrd.trace all -sched

pss.setopt DebugLevel 5

scitokens.trace all





# Enable checksum

xrootd.chksum adler32



# Config TLS

xrd.tls /etc/grid-security/xrd/xrdcert.pem /etc/grid-security/xrd/xrdkey.pem

xrd.tlsca certdir /etc/grid-security/certificates refresh 8h

xrootd.tls capable all -data



sec.level all compatible

all.sitename ucsd

# Enable Security

xrootd.seclib libXrdSec.so



# Enable "gsi" security

#sec.protparm gsi -vomsfun:libXrdVoms.so -vomsfunparms:dbg

#sec.protocol gsi -ca:1 -crl:3 -gridmap:/dev/null



macaroons.secretkey /etc/xrootd/macaroon-secret



# Authorizaton

acc.audit deny

acc.authdb /etc/xrootd/auth_file

acc.authrefresh 60

ofs.authorize 1



# Xrootd TPC using rendezvous key

ofs.tpc logok autorm pgm /etc/xrootd/xrdcp-tpc.sh



# Env var needed by the above TPC script.

setenv X509_USER_CERT = /etc/grid-security/xrd/xrdcert.pem

setenv X509_USER_KEY = /etc/grid-security/xrd/xrdkey.pem









ofs.authlib ++ libXrdAccSciTokens.so config=/etc/xrootd/scitokens.cfg

ofs.authlib ++ libXrdMacaroons.so



xrd.protocol http libXrdHttp.so

http.exthandler xrdtpc libXrdHttpTPC.so







cat /etc/xrootd/macaroon-secret

SPKWus+p1S/dSpk15W9Cu/hCWeM0LnPuiNItzyAhkgUlUkAvzRYSOloI2HCSLKvk

HzWOu3pTjlx1SsG2nyEyCw==



 cat /etc/xrootd/auth_file

g /xrootd /data rl







cat /etc/xrootd/scitokens.cfg

[Global]

onmissing = passthrough



[Issuer OSG Monitoring]

issuer = https://osg-htc.org/monitoring

base_path = /

map_subject = false

default_user = xrootd



cat  /etc/xrootd/xrdcp-tpc.sh

#!/bin/sh

set -- `getopt S: -S 1 $*`

while [ $# -gt 0 ]

do

  case $1 in

  -S)

      ((nstreams=$2-1))

      [ $nstreams -ge 1 ] && TCPstreamOpts="-S $nstreams"

      shift 2

      ;;

  --)

      shift

      break

      ;;

  esac

done



src=$1

dst=$2

xrdcp --server $TCPstreamOpts -f $src root://$XRDXROOTD_PROXY/${dst}


On Wed, Feb 8, 2023 at 5:34 AM Dejan Vitlacil <[log in to unmask]> wrote:

> Hi Fabio,
>
> Thanks for reaching out!
>
> This is command I’m using:
> [centos@xrootd ~]$ curl -v -X PUT --upload-file test.repo -H
> "Authorization: Bearer $AT"   --cacert fullchain.pem
> https://xrootd.e-commons.chalmers.se:80/data/testfile-token_new.repo
>
> If I comment out “ofs.authorize” - there are no problems in uploading a
> file:
>
> #############################################################################
> [centos@xrootd ~]$ curl -v -X PUT --upload-file test.repo -H
> "Authorization: Bearer $AT" --cacert fullchain.pem
> https://xrootd.e-commons.chalmers.se:80/data/testfile-token_NOauthz.repo
> * We are completely uploaded and fine
> * Closing connection 0
> :-)
> [centos@xrootd ~ ls -lh /data
> total 16K
> drwxr-xr-x. 2 xrootd xrootd   6 Feb  6 14:13 escape
> -rw-r--r--. 1 xrootd xrootd  77 Jan 25 13:21 four.txt
> -rw-r--r--. 1 xrootd xrootd 168 Feb  6 15:22 testfile-token.repo
> -rw-r--r--. 1 xrootd xrootd 168 Feb  8 13:17 testfile-token_NOauthz.repo
> -rw-r--r--. 1 xrootd xrootd 168 Feb  2 14:18 testfile.repo
> [centos@xrootd ~]$
>
> ##############################################################################
>
> I also added more tracing as you suggested.
>
> Cheers,
> Dejan
>
>
> ###############################################################################
> [centos@xrootd ~]$ curl -v -X PUT --upload-file test.repo -H
> "Authorization: Bearer $AT"   --cacert fullchain.pem
> https://xrootd.e-commons.chalmers.se:80/data/testfile-token_new.repo
> * About to connect() to xrootd.e-commons.chalmers.se port 80 (#0)
> *   Trying ::1...
> * Connected to xrootd.e-commons.chalmers.se (::1) port 80 (#0)
> * Initializing NSS with certpath: sql:/etc/pki/nssdb
> *   CAfile: fullchain.pem
>   CApath: none
> * NSS: client certificate not found (nickname not specified)
> * SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
> * Server certificate:
> * subject: CN=xrootd.e-commons.chalmers.se
> * start date: Jan 30 14:29:24 2023 GMT
> * expire date: Apr 30 14:29:23 2023 GMT
> * common name: xrootd.e-commons.chalmers.se
> * issuer: CN=R3,O=Let's Encrypt,C=US
> > PUT /data/testfile-token_new.repo HTTP/1.1
> > User-Agent: curl/7.29.0
> > Host: xrootd.e-commons.chalmers.se
> > Accept: */*
> > Authorization: Bearer
> eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJ3bGNnLnZlciI6IjEuMCIsInN1YiI6IjJkZWJhOWQxLTk1NTgtNDk2My05NWJjLTc1ZTk5M2UzYzgyZSIsImF1ZCI6Imh0dHBzOlwvXC93bGNnLmNlcm4uY2hcL2p3dFwvdjFcL2FueSIsIm5iZiI6MTY3NTg1OTE2Mywic2NvcGUiOiJhZGRyZXNzIG9wZW5pZCBwcm9maWxlIHN0b3JhZ2Uuc3RhZ2U6XC8gZWR1cGVyc29uX2VudGl0bGVtZW50IHBob25lIG9mZmxpbmVfYWNjZXNzIGVkdXBlcnNvbl9zY29wZWRfYWZmaWxpYXRpb24gZWR1cGVyc29uX2Fzc3VyYW5jZSBlbWFpbCB3bGNnLmdyb3VwcyIsImlzcyI6Imh0dHBzOlwvXC9pYW0tZXNjYXBlLmNsb3VkLmNuYWYuaW5mbi5pdFwvIiwiZXhwIjoxNjc1ODYyNzYzLCJpYXQiOjE2NzU4NTkxNjMsImp0aSI6ImIyZTZjOGU0LTZlM2ItNDkzZS04ODcwLWNjNDY0NWYzMTk0OSIsImNsaWVudF9pZCI6ImMyNjU0ZWZiLWY4MTUtNGE2ZS04NDQ4LWIyZWU4MGVjYjE2YiIsIndsY2cuZ3JvdXBzIjpbIlwvZXNjYXBlIiwiXC9lc2NhcGVcL3NrYSJdfQ.L2DKM95W1ovF3QOIPrYR5ifGkyXlDgW2FwiKoSFm2XXAXVdzqrK36gQBCTu2hqoXaP9-6eU_a6Un0jXaY4Gi457HPUk4mDy8Mm0ZctaWAzOZnMyIIbvv0VKmEfFUDq_gBLMr1Lq2PbIuvHbhGhi58dyNlj4pdI8Ped19Q4fNXzg
> > Content-Length: 168
> > Expect: 100-continue
> >
> < HTTP/1.1 403 Forbidden
> < Connection: Keep-Alive
> < Server: XrootD/v5.5.1
> < Content-Length: 66
> * HTTP error before end of send, stop sending
> <
> Unable to create /data/testfile-token_new.repo; permission denied
> * Closing connection 0
> [centos@xrootd ~]$
> #######################################################################
>
> [centos@xrootd ~]$ sudo cat /etc/xrootd/scitokens.cfg
> [Global]
> onmissing = passthrough
> # don't use https://wlcg.cern.ch/jwt/v1/any on production instances
> # audience = https://xrd.example.com:1094, https://wlcg.cern.ch/jwt/v1/any
>
> [Issuer ESCAPE IAM]
> issuer = https://iam-escape.cloud.cnaf.infn.it/
> base_path = /data
> map_subject = false
> default_user = xrootd
> [centos@xrootd ~]$
>
> ########################################################################
>
> 230208 13:32:12 22541 Starting on Linux 3.10.0-1160.81.1.el7.x86_64
> 230208 13:32:12 22541 /usr/bin/xrootd -l /var/log/xrootd/xrootd.log -c
> /etc/xrootd/xrootd-http.cfg -k fifo -s /run/xrootd/xrootd-http.pid -n http
> Copr.  2004-2012 Stanford University, xrd version v5.5.1
> Config warning: this hostname, localhost, is registered without a domain
> qualification.
> ++++++ xrootd http@localhost initialization started.
> Config using configuration file /etc/xrootd/xrootd-http.cfg
> =====> all.adminpath /var/spool/xrootd
> =====> all.pidpath /run/xrootd
> =====> xrd.protocol XrdHttp:80 libXrdHttp.so
> =====> xrd.tls /etc/grid-security/xrd/xrdcert.pem
> /etc/grid-security/xrd/xrdkey.pem
> =====> xrd.tlsca certdir /etc/grid-security/certificates refresh 8h
> =====> xrd.trace all -sched
> =====> continue /etc/xrootd/config.d/
> ++++++ xrootd http@localhost TLS initialization started.
> ------ xrootd http@localhost TLS initialization ended.
> Config maximum number of connections restricted to 65536
> Config maximum number of threads restricted to 7149
> 230208 13:32:12 22541 Xrd_Config: sendfile enabled.
> 230208 13:32:12 22541 Xrd_LinkCtl: Allocating 64 link objects at a time
> 230208 13:32:12 22541 Xrd_Poll: Starting poller 0
> 230208 13:32:12 22541 Xrd_Poll: Starting poller 1
> 230208 13:32:12 22541 Xrd_Poll: Starting poller 2
> 230208 13:32:12 22541 Xrd_ProtLoad: protocol xroot wants to use port 1094
> Plugin loaded xrdhttp v5.5.1 from protocol libXrdHttp-5.so
> 230208 13:32:12 22541 Xrd_ProtLoad: protocol XrdHttp wants to use port 80
> 230208 13:32:12 22541 Xrd_Config: xroot:1094 wsz=87380
> 230208 13:32:12 22541 Xrd_ProtLoad: getting protocol object xroot
> Copr.  2012 Stanford University, xroot protocol 5.1.0 version v5.5.1
> ++++++ xroot protocol initialization started.
> =====> all.export /data
> =====> xrootd.tls capable all -data
> =====> xrootd.seclib libXrdSec.so
> =====> continue /etc/xrootd/config.d/
> Config exporting /data
> Plugin loaded secprot v5.5.1 from seclib libXrdSec-5.so
> ++++++ Authentication system initialization started.
> Plugin loaded secztn v5.5.1 from sec.protocol libXrdSecztn-5.so
> =====> sec.protocol ztn
> =====> continue /etc/xrootd/config.d/
> Config 1 authentication directives processed in /etc/xrootd/xrootd-http.cfg
> ------ Authentication system initialization completed.
> ++++++ Protection system initialization started.
> Config warning: Security level is set to none; request protection disabled!
> Config Local  protection level: none
> Config Remote protection level: none
> ------ Protection system initialization completed.
> Config Routing for [::1]: local pub4 prv4 pub6 prv6
> Config Route all4: 127.0.0.1 Dest=[::127.0.0.1]:1094
> Config Route all6: [::1] Dest=[::1]:1094
> ++++++ File system initialization started.
> =====> ofs.authlib ++ libXrdAccSciTokens.so
> config=/etc/xrootd/scitokens.cfg
> =====> ofs.trace all
> =====> continue /etc/xrootd/config.d/
> ++++++ Storage system initialization started.
> =====> all.export /data
> =====> continue /etc/xrootd/config.d/
> Config effective /etc/xrootd/xrootd-http.cfg oss configuration:
>        oss.alloc        0 0 0
>        oss.spacescan    600
>        oss.fdlimit      32768 65536
>        oss.maxsize      0
>        oss.trace        0
>        oss.xfr          1 deny 10800 keep 1200
>        oss.memfile off  max 963475456
>        oss.defaults  r/w nocheck nodread nomig nopurge norcreate nostage
>        oss.path /data r/w nocheck nodread nomig nopurge norcreate nostage
> ------ Storage system initialization completed.
> ++++++ Authorization system initialization started.
> 230208 13:32:12 22541 acc_Config: Authorization system using configuration
> in /etc/xrootd/xrootd-http.cfg
> =====> acc.authdb /etc/xrootd/Authfile
> =====> continue /etc/xrootd/config.d/
> Config 1 authorization directives processed in /etc/xrootd/xrootd-http.cfg
> Config 1 auth entries processed in /etc/xrootd/Authfile
> ------ Authorization system initialization completed.
> Plugin loaded XrdAccSciTokens v5.5.1 from authlib libXrdAccSciTokens-5.so
> ++++++ XrdAccSciTokens: Initialized SciTokens-based authorization.
> =====> scitokens.trace all
> =====> continue /etc/xrootd/config.d/
> 230208 13:32:12 22541 scitokens_Config: Logging levels enabled - all
> 230208 13:32:12 22541 scitokens_Reconfig: Parsing configuration file:
> /etc/xrootd/scitokens.cfg
> 230208 13:32:12 22541 scitokens_Reconfig: Configuring issuer
> https://iam-escape.cloud.cnaf.infn.it/
> ++++++ Checkpoint initialization started.
> ++++++ Checkpoint initialization completed.
> Config effective /etc/xrootd/xrootd-http.cfg ofs configuration:
>        all.role server
>        ofs.authorize
>        ofs.maxdelay   60
>        ofs.persist    manual hold 600 logdir
> /var/spool/xrootd/http/.ofs/posc.log
>        ofs.trace      ffff
>        ofs.authlib default
>        ofs.authlib ++ libXrdAccSciTokens.so
> config=/etc/xrootd/scitokens.cfg
> ------ File system server initialization completed.
> Config asynchronous I/O has been disabled!
> 230208 13:32:12 22541  ofs_FAttr: FAttr req=info
> ------ xroot protocol initialization completed.
> 230208 13:32:12 22541 Xrd_ProtLoad: enabling port 1094 for protocol xroot
> 230208 13:32:12 22541 Xrd_Config: XrdHttp:80 wsz=87380
> 230208 13:32:12 22541 Xrd_ProtLoad: getting protocol object XrdHttp
> Copr. 2012 CERN IT, an HTTP implementation for the XRootD framework.
> ++++++ HTTP protocol initialization started.
> =====> http.header2cgi Authorization authz
> =====> continue /etc/xrootd/config.d/
> Config Using xrd.tls to supply 'cert' and 'key'.
> Config Using xrd.tlsca to supply 'cadir'.
> ++++++ HTTPS initialization started.
> ------ HTTPS initialization completed.
> 230208 13:32:12 22541 sysConfig: XRDROLE:  server
> 230208 13:32:12 22541 sysConfig: Configured as HTTP(s) data server.
> ------ HTTP protocol initialization completed.
> 230208 13:32:12 22541 Xrd_ProtLoad: enabling port 80 for protocol XrdHttp
> ------ xrootd http@localhost:80 initialization completed.
> 230208 13:32:12 22558 TLS_Refresh: CRL refresh started.
> 230208 13:32:12 22558 TLS_Refresh: CRL refresh will happen in 28800
> seconds.
> 230208 13:32:12 22550 TLS_Refresh: CRL refresh started.
> 230208 13:32:12 22550 TLS_Refresh: CRL refresh will happen in 28800
> seconds.
> 230208 13:32:32 22546 Xrd_Inet: Accepted connection on port 80 from
> 25@localhost
> 230208 13:32:32 22546 Xrd_ProtLoad: matched port 80 protocol XrdHttp
> 230208 13:32:32 22546 anon.0:25@localhost Xrd_Poll: FD 25 attached to
> poller 0; num=1
> 230208 13:32:32 22546 XrootdBridge: unknown.1:25@localhost login as nobody
> 230208 13:32:32 22546 unknown.1:25@localhost ofs_open: 200-40664
> fn=/data/testfile-token_WITHauthz.repo
> 230208 13:32:32 22546 scitokens_Access: Trying token-based access control
> 230208 13:32:32 22546 scitokens_Access: Token not found in recent cache;
> parsing.
> 230208 13:32:32 22546 scitokens_Access: New valid token
> mapped_username=xrootd, subject=2deba9d1-9558-4963-95bc-75e993e3c82e,
> issuer=https://iam-escape.cloud.cnaf.infn.it/, groups=/escape,/escape/ska
> 230208 13:32:32 22546 scitokens_Access: Trying token-based access control
> 230208 13:32:32 22546 scitokens_Access: Cached token
> mapped_username=xrootd, subject=2deba9d1-9558-4963-95bc-75e993e3c82e,
> issuer=https://iam-escape.cloud.cnaf.infn.it/, groups=/escape,/escape/ska
> 230208 13:32:32 22546 ofs_open: unknown.1:25@localhost Unable to create
> /data/testfile-token_WITHauthz.repo; permission denied
> 230208 13:32:32 22546 unknown.1:25@localhost ofs_close: use=0 fn=dummy
> 230208 13:32:32 22546 XrootdXeq: unknown.1:25@localhost disc 0:00:00
> (send failure)
> 230208 13:32:32 22546 unknown.1:25@localhost Xrd_Poll: Poller 0 removing
> FD 25
> 230208 13:32:32 22546 unknown.1:25@localhost Xrd_Poll: FD 25 detached
> from poller 0; num=0
> [centos@xrootd ~]$
>
>
> On 8 Feb 2023, at 12:42, Fabio Andrijauskas <[log in to unmask]>
> wrote:
>
> Hi,
>
>  Can you send how are you requesting/creating the files?
>
>    Try to add this to get all the possible logs:
>
> pfc.trace all
> ofs.trace all
> xrd.trace all -sched
> pss.setopt DebugLevel 5
> scitokens.trace all
>
>   Did you try to create the the path on the export path?
>
>    Can you send your sci token config file?
>
>
>
> On Wed, Feb 8, 2023 at 2:25 AM Dejan Vitlacil <[log in to unmask]>
> wrote:
>
>> Hi Matt,
>>
>> I run out of ideas, so all suggestions are appreciated.
>> I think unix bits are in place.
>>
>> Cheers,
>> Dejan
>>
>> ……
>> [centos@xrootd ~]$ ls -lh / |grep data
>> drwxr-xr-x.   3 xrootd xrootd   84 Feb  6 15:22 data
>> [centos@xrootd ~]$ ls -lh /data
>> total 12K
>> drwxr-xr-x. 2 xrootd xrootd   6 Feb  6 14:13 escape
>> -rw-r--r--. 1 xrootd xrootd  77 Jan 25 13:21 four.txt
>> -rw-r--r--. 1 xrootd xrootd 168 Feb  6 15:22 testfile-token.repo
>> -rw-r--r--. 1 xrootd xrootd 168 Feb  2 14:18 testfile.repo
>> [centos@xrootd ~]$
>>
>>
>> > On 8 Feb 2023, at 11:05, Doidge, Matt <[log in to unmask]> wrote:
>> >
>> > Hello,
>> > This is a bit of a low-level suggestion, but can the xrootd unix user
>> write to  /data? I had similar looking issues with a test xrootd server and
>> a known working config where I had forgotten to chown the exported path.
>> >
>> > My apologies for the noise if you've already checked this.
>> >
>> > Cheers,
>> > Matt
>> >
>> > ________________________________________
>> > From: [log in to unmask] <[log in to unmask]> on
>> behalf of Dejan Vitlacil <[log in to unmask]>
>> > Sent: 08 February 2023 09:24
>> > To: Oliver Freyermuth
>> > Cc: [log in to unmask]
>> > Subject: [External] Re: XRootD and tokens
>> >
>> > This email originated outside the University. Check before clicking
>> links or attachments.
>>
>>
>> ########################################################################
>> Use REPLY-ALL to reply to list
>>
>> To unsubscribe from the XROOTD-L list, click the following link:
>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1
>>
> --
>
> *--Fábio Andrijauskas*
>
>
> --

*--Fábio Andrijauskas*

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1