Git Product home page Git Product logo

dsbmd's People

Contributors

mrclksr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dsbmd's Issues

DSBMD system volume information

I've been using dsbmd for several years and I've noticed that sometimes it doesn't finish writing system volume information before an unmount, leaving regular mounts with only a partial listing of the file system [fat32 filesystem]. The result appears like this:

myname@BostonBSD /m/gmounts> ls
ls: Recipes: No such file or directory
ls: books: No such file or directory
ls: fbsd: No such file or directory
ls: nomadBSD: No such file or directory
ls: perl: No such file or directory
SYSTEMS    plans wallpapers

myname@BostonBSD /m/gmounts [1]> sudo ls
Recipes        books        plans    perl
SYSTEMS        fbsd        nomadBSD    wallpapers

=======
DSBMD can still read the volume correctly, however, other mounting daemons cannot.
[the superuser can see the listing correctly, but cannot access the questionable files without dsbmd].

I posted this issue in a FreeBSD forum for further explanation.

I like dsbmd, but this issue has kept creeping up on me over the last few years and I'm wondering if it's correctable [I've never experienced it with any other mounting daemon, so far as I am aware].
dsbmd vs thunar

====
In order to fix this problem, I have to use DSBMD to copy the files to the hard drive, then use a different mounting daemon to write the files back to the USB drive [otherwise they stay listed as a sort of ghostfile]

[I never needed the FUSE kernel module with DSBMD and it wasn't loaded then, perhaps that makes a difference?]

ntfs and ext doesn't mount

Hello. I installed dsbmd according to guide but I can't work with ntfs and ext partitions. I see devices in /media but they sometimes are empty or operation not permitted. Sometimes they mount well sometimes not. I don't understand. Could you help me please?

DSBMD in FreeBSD 13.0

After upgrading to FreeBSD 13.0, I am unable to mount the USB stick a second time. After mounting and unmounting, the computer does not see it until the daemon is restarted.

FreeBSD Port?

Hi,
I'm really impressed by DSBMD/DSBMC - it works fine 'out-of-the-box'. And it works better than autofs/automountd from the base system. Why don't I see DSBMD/DSBMC in the ports tree?
Thank you!
Peter

Fails for domain users authenticated with samba winbind

For a windows domain user authenticated with samba winbind, dsbmc fails to connect to the daemon. A first connection is accepted, a second one rejected, the log contains entries like this:

dsbmd: Client with UID 10000 connected on Sat Apr  3 14:04:22 2021
dsbmd: Client with UID 10000 disconnected on Sat Apr  3 14:04:22 2021
dsbmd: accept(): Invalid argument on Sat Apr  3 14:05:24 2021

After this, the daemon seems deadlocked and doesn't accept any further connections. Looking at a truss log, it seems to connect to a winbindd socket, so maybe there's some race condition:

 3055 100885: accept(3,{ AF_UNIX "" },0xffbfed34) = 8 (0x8)
 3055 100885: getsockopt(8,IPPROTO_IP,IP_OPTIONS,0xffbfe364,0xffbfe360) = 0 (0x0)
 3055 100885: geteuid()                          = 0 (0x0)
 3055 100885: open("/etc/spwd.db",O_RDONLY|O_CLOEXEC,00) = 9 (0x9)
 3055 100885: fstat(9,{ mode=-rw------- ,inode=722828,size=40960,blksize=32768 }) = 0 (0x0)
 3055 100885: read(9,"\0\^F\^Ua\0\0\0\^B\0\0\^P\M-a\0"...,260) = 260 (0x104)
 3055 100885: pread(9,"\0 \^O\M-x\^O\M-w\^O\M-r\^O\M-8"...,4096,0x6000) = 4096 (0x1000)
 3055 100885: pread(9,"\0\^V\^O\M-|\^O\M-0\^O\M-,\^Oq"...,4096,0x3000) = 4096 (0x1000)
 3055 100885: close(9)                           = 0 (0x0)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: close(3)                           = 0 (0x0)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: fstatat(AT_FDCWD,"/var/run/samba4/winbindd",{ mode=drwxr-xr-x ,inode=5377190,size=512,blksize=32768 },AT_SYMLINK_NOFOLLOW) = 0 (0x0)
 3055 100885: fstatat(AT_FDCWD,"/var/run/samba4/winbindd/pipe",{ mode=srwxrwxrwx ,inode=5377423,size=0,blksize=32768 },AT_SYMLINK_NOFOLLOW) = 0 (0x0)
 3055 100885: socket(PF_LOCAL,SOCK_STREAM,0)     = 3 (0x3)
 3055 100885: fcntl(3,F_GETFL,)                  = 2 (0x2)
 3055 100885: fcntl(3,F_SETFL,O_RDWR|O_NONBLOCK) = 0 (0x0)
 3055 100885: fcntl(3,F_GETFD,)                  = 0 (0x0)
 3055 100885: fcntl(3,F_SETFD,FD_CLOEXEC)        = 0 (0x0)
 3055 100885: connect(3,{ AF_UNIX "/var/run/samba4/winbindd/pipe" },106) = 0 (0x0)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3055 100885: write(3,"P\b\0\0\0\0\0\0\0\0\0\0\M-o\v\0"...,2128) = 2128 (0x850)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3055 100885: read(3,"\M-(\^O\0\0\^B\0\0\0\^_\0\0\0\0"...,4008) = 4008 (0xfa8)
 3055 100885: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3055 100885: write(3,"P\b\0\0\^B\0\0\0\0\0\0\0\M-o\v\0"...,2128) = 2128 (0x850)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3055 100885: read(3,"\M-(\^O\0\0\^B\0\0\0PALMEN\\feli"...,4008) = 4008 (0xfa8)
 3055 100885: open("/etc/group",O_RDONLY|O_CLOEXEC,0666) = 9 (0x9)
 3055 100885: lseek(9,0x0,SEEK_CUR)              = 0 (0x0)
 3055 100885: fstat(9,{ mode=-rw-r--r-- ,inode=722818,size=636,blksize=32768 }) = 0 (0x0)
 3055 100885: read(9,"# $FreeBSD$\n#\nwheel:*:0:root\n"...,32768) = 636 (0x27c)
 3055 100885: lseek(9,0x0,SEEK_CUR)              = 636 (0x27c)
 3055 100885: read(9,0x20772800,32768)           = 0 (0x0)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3055 100885: write(3,"P\b\0\0\f\0\0\0\0\0\0\0\M-o\v\0"...,2128) = 2128 (0x850)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3055 100885: read(3,"\M-(\^O\0\0\0\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3055 100885: close(9)                           = 0 (0x0)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3055 100885: write(3,"P\b\0\0\v\0\0\0\0\0\0\0\M-o\v\0"...,2128) = 2128 (0x850)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3055 100885: read(3,"\M-(\^O\0\0\^B\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3055 100885: write(3,"P\b\0\0\b\0\0\0\0\0\0\0\M-o\v\0"...,2128) = 2128 (0x850)
 3055 100885: getpid()                           = 3055 (0xbef)
 3055 100885: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3055 100885: read(3,"\M-(\^O\0\0\^B\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3055 100885: select(9,0x0,{ 8 },0x0,0x0)        = 1 (0x1)
 3055 100885: write(8,"=\n",2)                   = 2 (0x2)
 3055 100885: write(0,"dsbmd: Client with UID 10000 con"...,67) = 67 (0x43)
 3055 100885: getfsstat(0x20a4bc80,28128,MNT_NOWAIT) = 4 (0x4)
 3055 100885: select(9,{ 3 4 8 },0x0,0x0,{ 1.000000 }) = 1 (0x1)
 3055 100885: read(8,"q",1)                      = 1 (0x1)
 3055 100885: read(8,"u",1)                      = 1 (0x1)
 3055 100885: read(8,"i",1)                      = 1 (0x1)
 3055 100885: read(8,"t",1)                      = 1 (0x1)
 3055 100885: read(8,"\n",1)                     = 1 (0x1)
 3055 100885: mmap(0xfb9fc000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -73416704 (0xfffffffffb9fc000)
 3055 100885: mprotect(0xfb9fc000,4096,PROT_NONE) = 0 (0x0)
 3055 100885: thr_new(0xffbfe360,0x34)           = 0 (0x0)
 3055 101259: <new thread 101259>
 3055 101259: sigfastblock(0x1,0x206f1634)       = 0 (0x0)
 3055 101259: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },0x0) = 0 (0x0)
 3055 101259: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 }) = 0 (0x0)
 3055 101259: sigaction(SIGALRM,{ 0x204bd750 SA_RESTART|SA_SIGINFO ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0)
 3055 101259: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },0x0) = 0 (0x0)
 3055 101259: sigprocmask(SIG_BLOCK,0x0,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 }) = 0 (0x0)
 3055 101259: _umtx_op(0x204c565c,UMTX_OP_WAKE_PRIVATE,0x7fffffff,0x0,0x0) = 0 (0x0)
 3055 100885: _umtx_op(0x204c565c,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x10,0xffbfe328) = 0 (0x0)
 3055 100885: close(8)                           = 0 (0x0)
 3055 101259: <thread 101259 exited>
 3055 100885: write(0,"dsbmd: Client with UID 10000 dis"...,70) = 70 (0x46)
 3055 100885: select(9,{ 3 4 },0x0,0x0,{ 1.000000 }) = 0 (0x0)
 3055 100885: getfsstat(0x20a4bc80,28128,MNT_NOWAIT) = 4 (0x4)

(endless loop with select() and getfsstat() follows)

Myteriously, it works well when the daemon is running in forground (/usr/local/libexec/dsbmd -f), and in that case, it doesn't connect to winbindd:

 3076 100148: accept(6,{ AF_UNIX "" },0xffbfebc4) = 10 (0xa)
 3076 100148: getsockopt(10,IPPROTO_IP,IP_OPTIONS,0xffbfe1f4,0xffbfe1f0) = 0 (0x0)
 3076 100148: geteuid()                          = 0 (0x0)
 3076 100148: open("/etc/spwd.db",O_RDONLY|O_CLOEXEC,00) = 11 (0xb)
 3076 100148: fstat(11,{ mode=-rw------- ,inode=722828,size=40960,blksize=32768 }) = 0 (0x0)
 3076 100148: read(11,"\0\^F\^Ua\0\0\0\^B\0\0\^P\M-a\0"...,260) = 260 (0x104)
 3076 100148: pread(11,"\0 \^O\M-x\^O\M-w\^O\M-r\^O\M-8"...,4096,0x6000) = 4096 (0x1000)
 3076 100148: pread(11,"\0\^V\^O\M-|\^O\M-0\^O\M-,\^Oq"...,4096,0x3000) = 4096 (0x1000)
 3076 100148: close(11)                          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\^B\0\0\0\0\0\0\0\^D\f\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\^B\0\0\0PALMEN\\feli"...,4008) = 4008 (0xfa8)
 3076 100148: open("/etc/group",O_RDONLY|O_CLOEXEC,0666) = 11 (0xb)
 3076 100148: lseek(11,0x0,SEEK_CUR)             = 0 (0x0)
 3076 100148: fstat(11,{ mode=-rw-r--r-- ,inode=722818,size=636,blksize=32768 }) = 0 (0x0)
 3076 100148: read(11,"# $FreeBSD$\n#\nwheel:*:0:root\n"...,32768) = 636 (0x27c)
 3076 100148: lseek(11,0x0,SEEK_CUR)             = 636 (0x27c)
 3076 100148: read(11,0x206fac40,32768)          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\f\0\0\0\0\0\0\0\^D\f\0\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\0\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3076 100148: close(11)                          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\v\0\0\0\0\0\0\0\^D\f\0\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\^B\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\b\0\0\0\0\0\0\0\^D\f\0\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\^B\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3076 100148: select(11,0x0,{ 10 },0x0,0x0)      = 1 (0x1)
 3076 100148: write(10,"=\n",2)                  = 2 (0x2)
 3076 100148: write(2,"dsbmd: ",7)                = 7 (0x7)
 3076 100148: write(2,"Client with UID 10000 connected "...,59) = 59 (0x3b)
 3076 100148: write(2,"\n",1)                    = 1 (0x1)
 3076 100148: select(11,{ 6 7 10 },0x0,0x0,{ 1.000000 }) = 1 (0x1)
 3076 100148: read(10,"q",1)                     = 1 (0x1)
 3076 100148: read(10,"u",1)                     = 1 (0x1)
 3076 100148: read(10,"i",1)                     = 1 (0x1)
 3076 100148: read(10,"t",1)                     = 1 (0x1)
 3076 100148: read(10,"\n",1)                    = 1 (0x1)
 3076 100148: mmap(0xfb9fc000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -73416704 (0xfffffffffb9fc000)
 3076 100148: mprotect(0xfb9fc000,4096,PROT_NONE) = 0 (0x0)
 3076 100148: thr_new(0xffbfe1f0,0x34)           = 0 (0x0)
 3076 101271: <new thread 101271>
 3076 101271: sigfastblock(0x1,0x206f1634)       = 0 (0x0)
 3076 101271: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },0x0) = 0 (0x0)
 3076 101271: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 }) = 0 (0x0)
 3076 101271: sigaction(SIGALRM,{ 0x204bd750 SA_RESTART|SA_SIGINFO ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0)
 3076 101271: sigprocmask(SIG_SETMASK,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },0x0) = 0 (0x0)
 3076 101271: sigprocmask(SIG_BLOCK,0x0,{ SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGFPE|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGTERM|SIGURG|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 }) = 0 (0x0)
 3076 101271: _umtx_op(0x204c565c,UMTX_OP_WAKE_PRIVATE,0x7fffffff,0x0,0x0) = 0 (0x0)
 3076 100148: _umtx_op(0x204c565c,UMTX_OP_WAIT_UINT_PRIVATE,0x0,0x10,0xffbfe1b8) = 0 (0x0)
 3076 100148: close(10)                          = 0 (0x0)
 3076 101271: <thread 101271 exited>
 3076 100148: write(2,"dsbmd: ",7)                = 7 (0x7)
 3076 100148: write(2,"Client with UID 10000 disconnect"...,62) = 62 (0x3e)
 3076 100148: write(2,"\n",1)                    = 1 (0x1)
 3076 100148: select(11,{ 6 7 },0x0,0x0,{ 1.000000 }) = 1 (0x1)
 3076 100148: accept(6,{ AF_UNIX "" },0xffbfebc4) = 10 (0xa)
 3076 100148: getsockopt(10,IPPROTO_IP,IP_OPTIONS,0xffbfe1f4,0xffbfe1f0) = 0 (0x0)
 3076 100148: geteuid()                          = 0 (0x0)
 3076 100148: open("/etc/spwd.db",O_RDONLY|O_CLOEXEC,00) = 11 (0xb)
 3076 100148: fstat(11,{ mode=-rw------- ,inode=722828,size=40960,blksize=32768 }) = 0 (0x0)
 3076 100148: read(11,"\0\^F\^Ua\0\0\0\^B\0\0\^P\M-a\0"...,260) = 260 (0x104)
 3076 100148: pread(11,"\0 \^O\M-x\^O\M-w\^O\M-r\^O\M-8"...,4096,0x6000) = 4096 (0x1000)
 3076 100148: pread(11,"\0\^V\^O\M-|\^O\M-0\^O\M-,\^Oq"...,4096,0x3000) = 4096 (0x1000)
 3076 100148: close(11)                          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\^B\0\0\0\0\0\0\0\^D\f\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\^B\0\0\0PALMEN\\feli"...,4008) = 4008 (0xfa8)
 3076 100148: open("/etc/group",O_RDONLY|O_CLOEXEC,0666) = 11 (0xb)
 3076 100148: lseek(11,0x0,SEEK_CUR)             = 0 (0x0)
 3076 100148: fstat(11,{ mode=-rw-r--r-- ,inode=722818,size=636,blksize=32768 }) = 0 (0x0)
 3076 100148: read(11,"# $FreeBSD$\n#\nwheel:*:0:root\n"...,32768) = 636 (0x27c)
 3076 100148: lseek(11,0x0,SEEK_CUR)             = 636 (0x27c)
 3076 100148: read(11,0x206fac40,32768)          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
 3076 100148: write(3,"P\b\0\0\f\0\0\0\0\0\0\0\^D\f\0\0"...,2128) = 2128 (0x850)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLHUP },1,5000)  = 1 (0x1)
 3076 100148: read(3,"\M-(\^O\0\0\0\0\0\0\0\0\0\0\0\0"...,4008) = 4008 (0xfa8)
 3076 100148: close(11)                          = 0 (0x0)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: getpid()                           = 3076 (0xc04)
 3076 100148: poll({ 3/POLLIN|POLLOUT|POLLHUP },1,-1) = 1 (0x1)
[...]

Whether allowed users are configured by user or group name doesn't matter, also whether a local group or a domain group is used doesn't change anything.

OS: FreeBSD 13.0-RC5/i386
Packages: dsbmd-1.11.3, samba413-4.13.7

/etc/nsswitch.conf:

#
# nsswitch.conf(5) - name service switch configuration file
# $FreeBSD$
#
group: files winbind
hosts: files dns
netgroup: files
networks: files
passwd: files winbind
shells: files
services: files
protocols: files
rpc: files

/etc/pam.d/system:

#
# $FreeBSD$
#
# System-wide defaults
#

auth		sufficient	pam_winbind.so
auth		required	pam_unix.so		use_first_pass nullok

account		requisite	pam_login_access.so
account		sufficient	pam_unix.so
account		required	pam_winbind.so

session		required	pam_lastlog.so		no_fail
session		required	pam_winbind.so

password	sufficient	pam_winbind.so
password	required	pam_unix.so		no_warn try_first_pass

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.