[scponly] scponly chroot OpenSUSE 10.2

Patrick punkpati at yahoo.com
Thu Jun 21 03:09:47 EDT 2007


Hello,
i would like to use scponly 4.6 to chroot users in there homes on my OpenSUSE 10.2. The users connects with WinSCP.

I got the error "Connection has been unexpectedly closed. Server sent command exit status 1." from WinSCP after giving the password to login." from WinSCP.

With /usr/local/bin/scponly instead of /usr/local/sbin/scponlyc it's work fine.

I compiled scponly with the following options
    ./configure --enable-scp-compat --enable-winscp-compat --enable-chrooted-binary --with-sftp-server
and use "make jail" to create a user (fu2).

All libraries here are in there appropriate directories in /home/fu2

ldconfig -v -r /home/fu2/
ldconfig: Can't stat /usr/X11R6/lib/Xaw3d: No such file
ldconfig: Can't stat /usr/X11R6/lib: No such file or di
ldconfig: Can't stat /usr/lib/Xaw3d: No such file or di
ldconfig: Can't stat /usr/i386-suse-linux/lib: No such
ldconfig: Can't stat /usr/local/lib: No such file or di
ldconfig: Can't stat /opt/kde3/lib: No such file or dir
ldconfig: Can't stat /opt/gnome/lib: No such file or di
/lib:
        libutil.so.1 -> libutil.so.1
        libacl.so.1 -> libacl.so.1
        librt.so.1 -> librt.so.1
        libnss_compat.so.2 -> libnss_compat.so.2
        libc.so.6 -> libc.so.6
        ld-linux.so.2 -> ld-linux.so.2
        libresolv.so.2 -> libresolv.so.2
        libpthread.so.0 -> libpthread.so.0
        libdl.so.2 -> libdl.so.2
        libcom_err.so.2 -> libcom_err.so.2
        libz.so.1 -> libz.so.1
        libnsl.so.1 -> libnsl.so.1
        libattr.so.1 -> libattr.so.1
        libcrypt.so.1 -> libcrypt.so.1
/usr/lib:
        libkrb5support.so.0 -> libkrb5support.so.0
        libopensc.so.2 -> libopensc.so.2
        libssl.so.0.9.8 -> libssl.so.0.9.8
        libscconf.so.2 -> libscconf.so.2
        libltdl.so.3 -> libltdl.so.3
        libopenct.so.1 -> libopenct.so.1
        libgssapi_krb5.so.2 -> libgssapi_krb5.so.2
        libkrb5.so.3 -> libkrb5.so.3
        libcrypto.so.0.9.8 -> libcrypto.so.0.9.8
        libpcsclite.so.1 -> libpcsclite.so.1
        libk5crypto.so.3 -> libk5crypto.so.3
        
        
Here some hopefully usefull information after a connect from a Linux shell with "sftp fu2 at 192.168.3.129".

/var/log/message 
sshd[14877]: subsystem request for sftp
scponly[14878]: chrooted binary in place, will chroot()
scponly[14878]: 3 arguments in total.
scponly[14878]:        arg 0 is scponlyc
scponly[14878]:        arg 1 is -c
scponly[14878]:        arg 2 is /usr/lib/ssh/sftp-server
scponly[14878]: opened log at LOG_AUTHPRIV, opts 0x00000029
scponly[14878]: retrieved home directory of "/home/fu2" for user "fu2"
scponly[14878]: chrooting to dir: "/home/fu2"
scponly[14878]: chdiring to dir: "/"
scponly[14878]: setting uid to 1002
scponly[14878]: processing request: "/usr/lib/ssh/sftp-server"
scponly[14878]: Unable to find "LOG_SFTP" in the environment
scponly[14878]: Found "USER" and setting it to "fu2"
scponly[14878]: Unable to find "SFTP_UMASK" in the environment
scponly[14878]: Unable to find "SFTP_PERMIT_CHMOD" in the environment
scponly[14878]: Unable to find "SFTP_PERMIT_CHOWN" in the environment
scponly[14878]: Unable to find "SFTP_LOG_LEVEL" in the environment
scponly[14878]: Unable to find "SFTP_LOG_FACILITY" in the environment
scponly[14878]: Environment contains "USER=fu2"
scponly[14878]: running: /usr/lib/ssh/sftp-server (username: fu2(1002), IP/port: 192.168.3.129 8951 22)


A strace shows following

read(6, "\0\0\0\20", 4)                 = 4
read(6, "4\0\0\0\1\0\0\0\7l3tag3m", 16) = 16
write(4, "\0\0\0\f\6", 5)               = 5
write(4, "\0\0\0\7l3tag3m", 11)         = 11
write(6, "\0\0\0\0055", 5)              = 5
write(6, "\0\0\0\1", 4)                 = 4
read(6, "\0\0\0\1", 4)                  = 4
read(6, "2", 1)                         = 1
read(4, "\0\0\0\27", 4)                 = 4
read(4, "\0", 23)                       = 1
read(4, "\0\0\0\2OK\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 22) = 22
write(6, "\0\0\0\0213", 5)              = 5
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigaction(SIGCHLD, NULL, {0x800265f0, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, NULL, 8) = 0
waitpid(14855, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG) = 14855
sigreturn()                             = ? (mask now [])
write(6, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 16
read(6, "\0\0\0\5", 4)                  = 4
read(6, "4\0\0\0\0", 5)                 = 5
write(6, "\0\0\0\0055", 5)              = 5
write(6, "\0\0\0\0", 4)                 = 4
read(6, "\0\0\0\1", 4)                  = 4
read(6, "6", 1)                         = 1
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
kill(14855, SIGTERM)                    = -1 ESRCH (No such process)
close(4)                                = 0
close(-1)                               = -1 EBADF (Bad file descriptor)
write(6, "\0\0\0\0017", 5)              = 5
read(6, "\0\0\0\1", 4)                  = 4
read(6, ".", 1)                         = 1
write(6, "\0\0\0\t/", 5)                = 5
write(6, "\0\0\0\1\0\0\0\0", 8)         = 8
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigprocmask(SIG_BLOCK, [ALRM], [], 8) = 0
time(NULL)                              = 1182347722
open("/etc/localtime", O_RDONLY)        = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fae000
read(4, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10"..., 4096) = 837
close(4)                                = 0
munmap(0xb7fae000, 4096)                = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
socket(PF_FILE, SOCK_DGRAM, 0)          = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
connect(4, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0
send(4, "<38>Jun 20 15:55:22 sshd[14850]:"..., 108, MSG_NOSIGNAL) = 108
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(6, "\0\0\4\340", 4)                = 4
read(6, "\30\0\0\0 \245\231\235\rsG\277\220a\313\342\210>\233\24"..., 1248) = 1248
close(6)                                = 0
mmap2(NULL, 1310720, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0) = 0xb776b000
munmap(0xb7a8d000, 65536)               = 0
waitpid(14854, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 14854
alarm(0)                                = 91
rt_sigaction(SIGALRM, NULL, {0x80007d00, [], SA_INTERRUPT}, 8) = 0
rt_sigaction(SIGALRM, {SIG_DFL}, NULL, 8) = 0
close(5)                                = 0
socketpair(PF_FILE, SOCK_STREAM, 0, [4, 5]) = 0
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7adc708) = 14859
close(4)                                = 0
rt_sigaction(SIGHUP, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x8001f630, [], 0}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x8001f630, [], 0}, NULL, 8) = 0
read(5, "\0\0\0\1", 4)   = 4
read(5, ":", 1) = 1
waitpid(14859, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 14859
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(0)



Thanks in advance!
Patrick





__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. 
http://mail.yahoo.com 



More information about the scponly mailing list