From owner-freebsd-fs@FreeBSD.ORG Sun Sep 15 23:21:08 2013 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C1854CD3 for ; Sun, 15 Sep 2013 23:21:08 +0000 (UTC) (envelope-from olevole@olevole.ru) Received: from mail-la0-f49.google.com (mail-la0-f49.google.com [209.85.215.49]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 373E32B95 for ; Sun, 15 Sep 2013 23:21:07 +0000 (UTC) Received: by mail-la0-f49.google.com with SMTP id ev20so2499273lab.8 for ; Sun, 15 Sep 2013 16:21:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version:content-transfer-encoding:content-type; bh=4xQSK59Qc3y2mBZSRolut8/0jeumvnSHNgO2618gc8w=; b=jumKgTICZ0tLViNE3TeNbg+/kXHD+PrCdnj7HufbFow5cwAAcL4Fd+t190RON5R8L2 AH+s6Go9c5EvtsmAteBY3LqbSae3S91U3yxwg8AeUG4YRW6NLRX8uZ3rCfoRygOAqHBn 80Ygjq/Xu65hBhJaokH0b0o6KvxM3Rr8ujwo60OwxpZhtGGaJDG0zRJjdWEyIX5xQkQb /p7xa2asP+FZFEi7EDg5vkZ5HOhmexLcT6t2GYIm+03eX8OR5dZMv4peH+Ty5dHwmPEf 2eQGMyIdvZWcwuzjr8N9RG+l+QcOoo3W+AibBU2O0CXfBScljRB8TYEwOjP5w90GSN6N rBjg== X-Gm-Message-State: ALoCoQmeeJCkbnFqQoKUeXu9uc5poeAalTYBfKIVJsgq0fiizlmDKdmrA0OLrClhn3XDVv+HKpLU X-Received: by 10.152.36.98 with SMTP id p2mr22169266laj.14.1379287265523; Sun, 15 Sep 2013 16:21:05 -0700 (PDT) Received: from home.my.domain (nat-server-217.15.27.35.static.futures.ru. [217.15.27.35]) by mx.google.com with ESMTPSA id vx8sm11520967lbb.8.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 15 Sep 2013 16:21:04 -0700 (PDT) From: Oleg Ginzburg To: freebsd-fs@freebsd.org Subject: linkat(2) Operation not permitted Date: Sun, 15 Sep 2013 16:21:04 -0700 (PDT) Message-ID: <2628598.ea1ZiWMKQv@home.my.domain> User-Agent: KMail/4.10.5 (FreeBSD/10.0-CURRENT; KDE/4.10.5; amd64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Sep 2013 23:21:08 -0000 Hi For some reason, creating hardlink within one UFS is failed for /usr/bin/chfn with "operation not permitted" messages (other file is ok) Looks like is UFS-specific because on another system with close revision all fine. system1, zfs, normal behavior: --- % uname -a FreeBSD fbsd.my.domain 10.0-ALPHA1 FreeBSD 10.0-ALPHA1 #0 r255570: Sat Sep 14 22:35:46 MSK 2013 root@fbsd.my.domain:/usr/obj/usr/src/sys/kernel-GENERIC- amd64-10.0 amd64 % file -s /usr/bin/chfn && ls -la /usr/bin/chfn /usr/bin/chfn: setuid ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 10.0 (1000055), stripped -r-sr-xr-x 6 root wheel 22264 Sep 14 22:25 /usr/bin/chfn % ln -f /usr/bin/chfn ole -- system2, ufs: --- % uname -a FreeBSD acer.my.domain 10.0-ALPHA1 FreeBSD 10.0-ALPHA1 #0 r255601: Mon Sep 16 02:38:06 MSK 2013 root@acer.my.domain:/usr/obj/usr/src/sys/GENERIC amd64 % mount /dev/ada0p2 on / (ufs, local, journaled soft-updates) devfs on /dev (devfs, local, multilabel) % pwd /root % whoami root % file -s /usr/bin/chfn && ls -la /usr/bin/chfn /usr/bin/chfn: setuid ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 10.0 (1000055), stripped -r-sr-xr-x 6 root wheel 22264 Sep 16 02:25 /usr/bin/chfn % ln -f /usr/bin/chfn ole ln: ole: Operation not permitted % truss ln -f /usr/bin/chfn ole mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366140416 (0x80061b000) issetugid(0x80081ba10,0x7fffffffefd8,0x40,0x0,0xffff80080081ca38,0x0) = 0 (0x0) lstat("/etc",{ mode=drwxr-xr-x ,inode=26323968,size=2048,blksize=32768 }) = 0 (0x0) lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=26324055,size=102,blksize=32768 }) = 0 (0x0) open("/etc/libmap.conf",O_CLOEXEC,01760) = 3 (0x3) fstat(3,{ mode=-rw-r--r-- ,inode=26324055,size=102,blksize=32768 }) = 0 (0x0) mmap(0x0,102,PROT_READ,MAP_PRIVATE,3,0x0) = 34366173184 (0x800623000) close(3) = 0 (0x0) lstat("/usr",{ mode=drwxr-xr-x ,inode=11797632,size=512,blksize=32768 }) = 0 (0x0) lstat("/usr/local",{ mode=drwxr-xr-x ,inode=11797634,size=512,blksize=32768 }) = 0 (0x0) lstat("/usr/local/etc",0x7fffffffb708) ERR#2 'No such file or directory' munmap(0x800623000,102) = 0 (0x0) open("/var/run/ld-elf.so.hints",O_CLOEXEC,00) = 3 (0x3) read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\^^\0\0\0"...,128) = 128 (0x80) lseek(3,0x80,SEEK_SET) = 128 (0x80) read(3,"/lib:/usr/lib:/usr/lib/compat\0",30) = 30 (0x1e) close(3) = 0 (0x0) access("/lib/libc.so.7",0) = 0 (0x0) open("/lib/libc.so.7",O_CLOEXEC,030373770) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=5377218,size=1560208,blksize=32768 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366173184 (0x800623000) mmap(0x0,3772416,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34368245760 (0x80081d000) mmap(0x80081d000,1458176,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE| MAP_PREFAULT_READ,3,0x0) = 34368245760 (0x80081d000) mmap(0x800b81000,49152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED| MAP_PREFAULT_READ,3,0x164000) = 34371801088 (0x800b81000) mmap(0x800b8d000,167936,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED| MAP_ANON,-1,0x0) = 34371850240 (0x800b8d000) munmap(0x800623000,4096) = 0 (0x0) close(3) = 0 (0x0) munmap(0x800622000,4096) = 0 (0x0) mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366169088 (0x800622000) sysarch(0x81,0x7fffffffd0f8,0x4,0x0,0xffffffffffab3080,0x8080808080808080) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) readlink("/etc/malloc.conf","abort:false,junk:false",1024) = 22 (0x16) issetugid(0x800956e53,0x7fffffffc836,0x0,0x0,0x40,0xffffffff0fffffff) = 0 (0x0) mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34372018176 (0x800bb6000) munmap(0x800bb6000,4194304) = 0 (0x0) mmap(0x0,8384512,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34372018176 (0x800bb6000) munmap(0x800bb6000,303104) = 0 (0x0) munmap(0x801000000,3887104) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) stat("/usr/bin/chfn",{ mode=-r-sr-xr-x ,inode=11798245,size=22264,blksize=32768 }) = 0 (0x0) lstat("ole",0x7fffffffc8a8) ERR#2 'No such file or directory' stat("ole",0x7fffffffc8a8) ERR#2 'No such file or directory' lstat("ole",0x7fffffffc8a8) ERR#2 'No such file or directory' linkat(0xffffff9c,0x7fffffffddb6,0xffffff9c,0x7fffffffddc4,0x400,0x8080808080808080) ERR#1 'Operation not permitted' ln: write(2,"ln: ",4) = 4 (0x4) olewrite(2,"ole",3) = 3 (0x3) : write(2,": ",2) = 2 (0x2) mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34376515584 (0x801000000) stat("/usr/share/nls/C/libc.cat",0x7fffffffc238) ERR#2 'No such file or directory' stat("/usr/share/nls/libc/C",0x7fffffffc238) ERR#2 'No such file or directory' stat("/usr/local/share/nls/C/libc.cat",0x7fffffffc238) ERR#2 'No such file or directory' stat("/usr/local/share/nls/libc/C",0x7fffffffc238) ERR#2 'No such file or directory' madvise(0x801006000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x801000030,0x800bb4ab0) = 0 (0x0) madvise(0x801007000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x7fffffffb740,0x800bb4ab0) = 0 (0x0) Operation not permitted write(2,"Operation not permitted\n",24) = 24 (0x18) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM| SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ| SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) process exit, rval = 1 --- PS: On system2 ive use default kern_securelevel="-1" PPS: same behavior on 9.1-RELEASE/ufs