namjaejeon / ksmbd

ksmbd kernel server(SMB/CIFS server)
https://github.com/cifsd-team/ksmbd
273 stars 62 forks source link

Can mount and use from Windows, but cannot from Linux #480

Closed romanrm closed 4 weeks ago

romanrm commented 6 months ago

Hello,

I can mount and browse my share from Windows 10, but mounting from Debian fails. Client kernel 6.6.18, server kernel 6.6.22.


# mount -t cifs //umi.home.romanrm.net/dl  /mnt/tmp1/ -o username=rm,password=xxxx,uid=rm,gid=rm
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

dmesg:

[2022531.091241] CIFS: Attempting to mount //umi.home.romanrm.net/dl
[2022531.199015] CIFS: VFS: cifs_read_super: get root inode failed

Server config is as follows:

[dl]
path = /mnt/data/dl/
force user = dl
force group = dl
valid users = rm
write list = rm

Debug log:

[Sat Mar 23 03:33:38 2024] ksmbd: connect success: accepted new connection
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 248 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: no length check for command
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 0
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 100
[Sat Mar 23 03:33:38 2024] ksmbd: client requested dialect 0x311
[Sat Mar 23 03:33:38 2024] ksmbd: selected \x02SMB 3.1.1 dialect
[Sat Mar 23 03:33:38 2024] ksmbd: conn->dialect 0x311
[Sat Mar 23 03:33:38 2024] ksmbd: Received negotiate request
[Sat Mar 23 03:33:38 2024] ksmbd: decoding 4 negotiate contexts
[Sat Mar 23 03:33:38 2024] ksmbd: deassemble SMB2_PREAUTH_INTEGRITY_CAPABILITIES context
[Sat Mar 23 03:33:38 2024] ksmbd: deassemble SMB2_ENCRYPTION_CAPABILITIES context
[Sat Mar 23 03:33:38 2024] ksmbd: Cipher ID = 0x2
[Sat Mar 23 03:33:38 2024] ksmbd: deassemble SMB2_NETNAME_NEGOTIATE_CONTEXT_ID context
[Sat Mar 23 03:33:38 2024] ksmbd: deassemble SMB2_POSIX_EXTENSIONS_AVAILABLE context
[Sat Mar 23 03:33:38 2024] ksmbd: assemble SMB2_PREAUTH_INTEGRITY_CAPABILITIES context
[Sat Mar 23 03:33:38 2024] ksmbd: assemble SMB2_ENCRYPTION_CAPABILITIES context
[Sat Mar 23 03:33:38 2024] ksmbd: assemble SMB2_POSIX_EXTENSIONS_AVAILABLE context
[Sat Mar 23 03:33:38 2024] ksmbd: negotiate context offset 208, count 3
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[1] total_granted[1]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 132 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 44 offset 88
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 132
[Sat Mar 23 03:33:38 2024] ksmbd: Received request for session setup
[Sat Mar 23 03:33:38 2024] ksmbd: negotiate phase
[Sat Mar 23 03:33:38 2024] ksmbd: NTLMSSP SecurityBufferLength 188
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[130] granted[130] total_granted[130]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 366 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 278 offset 88
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 366
[Sat Mar 23 03:33:38 2024] ksmbd: Received request for session setup
[Sat Mar 23 03:33:38 2024] ksmbd: authenticate phase
[Sat Mar 23 03:33:38 2024] ksmbd: session setup request for user rm
[Sat Mar 23 03:33:38 2024] ksmbd: decode_ntlmssp_authenticate_blob dname
[Sat Mar 23 03:33:38 2024] ksmbd: dumping generated AES encryption keys
[Sat Mar 23 03:33:38 2024] ksmbd: Cipher type   2
[Sat Mar 23 03:33:38 2024] ksmbd: Session Id    1
[Sat Mar 23 03:33:38 2024] ksmbd: Session Key   05 b2 42 75 3d e7 49 17 d1 ef e9 02 37 2a 31 5b
[Sat Mar 23 03:33:38 2024] ksmbd: ServerIn Key  b5 5a 9f 71 24 21 37 fd 0a 73 4a 4a dc 2a 56 6d
[Sat Mar 23 03:33:38 2024] ksmbd: ServerOut Key 36 05 4d 3d 71 d8 f5 22 73 72 e7 90 2e c8 14 96
[Sat Mar 23 03:33:38 2024] ksmbd: dumping generated AES signing keys
[Sat Mar 23 03:33:38 2024] ksmbd: Session Id    1
[Sat Mar 23 03:33:38 2024] ksmbd: Session Key   05 b2 42 75 3d e7 49 17 d1 ef e9 02 37 2a 31 5b
[Sat Mar 23 03:33:38 2024] ksmbd: Signing Key   cc c2 5f e4 d1 03 3e 38 2f 1d fb c0 aa 9f 76 e6
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[130] granted[130] total_granted[259]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 126 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: skip to check tree connect request
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 54 offset 72
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 126
[Sat Mar 23 03:33:38 2024] ksmbd: tree connect request for tree ipc$ treename \\umi.home.romanrm.net\IPC$
[Sat Mar 23 03:33:38 2024] ksmbd: IPC share path request
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[64] granted[64] total_granted[322]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 172 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 52 offset 120
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 172
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[331]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 122 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: skip to check tree connect request
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 50 offset 72
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 122
[Sat Mar 23 03:33:38 2024] ksmbd: tree connect request for tree dl treename \\umi.home.romanrm.net\dl
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[64] granted[64] total_granted[394]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 152 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 24 offset 128
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 152
[Sat Mar 23 03:33:38 2024] ksmbd: check permission using windows acl
[Sat Mar 23 03:33:38 2024] ksmbd: get query on disk id context
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[403]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 121 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 0
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 121
[Sat Mar 23 03:33:38 2024] ksmbd: domru speed is unknown, defaulting to 1Gb/sec
[Sat Mar 23 03:33:38 2024] ksmbd: domru speed is unknown, defaulting to 1Gb/sec
[...some more network interfaces here...]
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[412]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 105 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 104
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 105
[Sat Mar 23 03:33:38 2024] ksmbd: GOT query info request
[Sat Mar 23 03:33:38 2024] ksmbd: GOT SMB2_O_INFO_FILESYSTEM
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[421]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 105 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 104
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 105
[Sat Mar 23 03:33:38 2024] ksmbd: GOT query info request
[Sat Mar 23 03:33:38 2024] ksmbd: GOT SMB2_O_INFO_FILESYSTEM
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[430]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 105 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 104
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 105
[Sat Mar 23 03:33:38 2024] ksmbd: GOT query info request
[Sat Mar 23 03:33:38 2024] ksmbd: GOT SMB2_O_INFO_FILESYSTEM
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[439]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 105 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 104
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 105
[Sat Mar 23 03:33:38 2024] ksmbd: GOT query info request
[Sat Mar 23 03:33:38 2024] ksmbd: GOT SMB2_O_INFO_FILESYSTEM
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[448]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 88 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 88
[Sat Mar 23 03:33:38 2024] ksmbd: volatile_id = 0
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[457]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 152 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 24 offset 128
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 152
[Sat Mar 23 03:33:38 2024] ksmbd: check permission using windows acl
[Sat Mar 23 03:33:38 2024] ksmbd: get query on disk id context
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[466]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 88 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 88
[Sat Mar 23 03:33:38 2024] ksmbd: volatile_id = 1
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[475]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 152 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 24 offset 128
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 152
[Sat Mar 23 03:33:38 2024] ksmbd: check permission using windows acl
[Sat Mar 23 03:33:38 2024] ksmbd: get query on disk id context
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[484]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 88 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 88
[Sat Mar 23 03:33:38 2024] ksmbd: volatile_id = 2
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[493]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 344 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 24 offset 128
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 152
[Sat Mar 23 03:33:38 2024] ksmbd: check permission using windows acl
[Sat Mar 23 03:33:38 2024] ksmbd: get query on disk id context
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[502]
[Sat Mar 23 03:33:38 2024] ksmbd: got SMB2 chained command
[Sat Mar 23 03:33:38 2024] ksmbd: Compound req new_len = 208 rcv off = 152 rsp off = 208
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 data length 0 offset 0
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 105
[Sat Mar 23 03:33:38 2024] ksmbd: GOT query info request
[Sat Mar 23 03:33:38 2024] ksmbd: GOT SMB2_O_INFO_FILE
[Sat Mar 23 03:33:38 2024] ksmbd: Compound request set FID = 3
[Sat Mar 23 03:33:38 2024] ksmbd: error while processing smb2 query rc = -13
[Sat Mar 23 03:33:38 2024] ksmbd: Failed to process 16 [-13]
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[511]
[Sat Mar 23 03:33:38 2024] ksmbd: got SMB2 chained command
[Sat Mar 23 03:33:38 2024] ksmbd: Compound req new_len = 80 rcv off = 256 rsp off = 288
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 88
[Sat Mar 23 03:33:38 2024] ksmbd: Compound request set FID = 3:19
[Sat Mar 23 03:33:38 2024] ksmbd: volatile_id = 3
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[520]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 68 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 68
[Sat Mar 23 03:33:38 2024] ksmbd: request
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[529]
[Sat Mar 23 03:33:38 2024] ksmbd: RFC1002 header 68 bytes
[Sat Mar 23 03:33:38 2024] ksmbd: skip to check tree connect request
[Sat Mar 23 03:33:38 2024] ksmbd: SMB2 len 68
[Sat Mar 23 03:33:38 2024] ksmbd: request
[Sat Mar 23 03:33:38 2024] ksmbd: credits: requested[10] granted[10] total_granted[538]
namjaejeon commented 6 months ago

can you try it again after "chmod 777 /mnt/data/dl/" ?

romanrm commented 6 months ago

Hello,

It does not help. I also simplified the setup to the max:

mkdir /test chown rm:rm /test chmod 777 /test

[test]
path = /test/
valid users = rm
write list = rm

mount -t cifs //umi.home.romanrm.net/test /mnt/tmp1/ -o username=rm,password=xxxx

Same result (Permission denied). But works fine from Windows.

namjaejeon commented 6 months ago

Can you tell me your kernel version and local filesystem of share directory?

namjaejeon commented 6 months ago

Ah,, You told me already it. 6.6.18

namjaejeon commented 6 months ago

Let me know what local filesystem is.

romanrm commented 6 months ago

Hello,

noperm option does not help. The local filesystem on client is ext4, on server root FS is also ext4.

romanrm commented 6 months ago

I have now tried mounting the share from another client: Linux 6.1.0-0.deb11.18-armmp-lpae #1 SMP Debian 6.1.76-1~bpo11+1 (2024-02-15) armv7l GNU/Linux (Client and server in the original report are both amd64)

It fails with the same error:

[1023440.402615] CIFS: Attempting to mount \\umi.home.romanrm.net\test
[1023440.489627] CIFS: VFS: cifs_read_super: get root inode failed

So the problem is server-side.

romanrm commented 4 weeks ago

Hello,

I have re-tested the original scenario on kernels 6.6.48 amd64 both on client and server, and the problem no longer occurs.

Thanks!