ch(4) FreeBSD 11.1 jails

Scott Long scottl at samsco.org
Sun Dec 17 17:03:44 UTC 2017


Hi Dan,

I noticed this in the openat(2) man page:

     In capsicum(4) capability mode, open() is not permitted.  The path
     argument to openat() must be strictly relative to a file descriptor fd,
     as defined in sys/kern/vfs_lookup.c.  path must not be an absolute path
     and must not contain ".." components.  Additionally, no symbolic link in
     path may contain ".." components either.  fd must not be AT_FDCWD.


Truss shows that your app is doing this:

openat(AT_FDCWD,"/dev/pass7",O_RDWR|O_EXCL,00)	 ERR#1 'Operation not permitted’

I don’t know a whole lot about capsicum, but maybe this is related?

Scott


> On Dec 17, 2017, at 9:49 AM, Dan Langille <dan at langille.org> wrote:
> 
> Scott,
> 
> 
> On the host: 
> 
> [dan at r710-01:~] $ sysctl kern.securelevel
> kern.securelevel: -1
> 
> 
> On the jail:
> 
> [dan at bacula-sd-01:~] $ sysctl kern.securelevel
> kern.securelevel: -1
> 
> 
> If it's something else, who should I consult?
> 
> -- 
> Dan Langille - BSDCan / PGCon
> dan at langille.org
> 
> 
>> On Dec 17, 2017, at 11:39 AM, Scott Long <scottl at samsco.org> wrote:
>> 
>> Hi Dan,
>> 
>> I agree with you, truss definitely shows that it’s failing with the open(“pass7”)
>> call.  Nothing in the src/sys/cam/scsi/scsi_pass.c code that has changed
>> regarding ‘open’ semantics since FreeBSD 9 in 2012.  There is a check in
>> the code against the securelevel of the system.  That code was added a 
>> LONG time ago, but maybe something has changed with securelevel.  I
>> guess it’s worth a look on your system to look at the kern.securelevel
>> sysctl both inside and outside of the jail.  If it’s not that then something
>> outside of CAM, either in devfs or in the syscall layer, has changed.
>> 
>> Scott
>> 
>> 
>>> On Dec 17, 2017, at 9:32 AM, Dan Langille <dan at langille.org> wrote:
>>> 
>>> 
>>> 
>>> 
>>>> On Dec 17, 2017, at 11:27 AM, Dan Langille <dan at langille.org> wrote:
>>>> 
>>>>>> On Dec 16, 2017, at 3:05 PM, Dan Langille <dan at langille.org> wrote:
>>>>>> 
>>>>>> I'm trying to access a tape library from within a FreeBSD 11 jail.
>>>>>> 
>>>>>> I've added this to the host system:
>>>>>> 
>>>>>> [devfsrules_jail_unhide_tapes=5]
>>>>>> add path sa0    unhide
>>>>>> add path pass0  unhide
>>>>>> add path pass7  unhide mode 0600
>>>>>> add path ch0    unhide
>>>>>> add path nsa0   unhide
>>>>>> 
>>>>>> add path sa1    unhide
>>>>>> add path pass8  unhide
>>>>>> add path pass9  unhide mode 0600
>>>>>> add path ch1    unhide
>>>>>> add path nsa1   unhide
>>>>>> 
>>>>>> 
>>>>>> [devfsrules_jail_bacula=6]
>>>>>> add include $devfsrules_hide_all
>>>>>> add include $devfsrules_unhide_basic
>>>>>> add include $devfsrules_unhide_login
>>>>>> add path zfs unhide
>>>>>> add include $devfsrules_jail_unhide_tapes
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> The jail can see the devices, and query the tape drive, but not the changer:
>>>>>> 
>>>>>> $ sudo mtx -f /dev/pass7 status
>>>>>> cannot open SCSI device '/dev/pass7' - Operation not permitted
>>>>>> 
>>>>>> The same command in the jail host succeeds.
>>>>>> 
>>>>>> Is there something more special I'm missing about FreeBSD 11.1? This worked for me under 10.3.
>>>>>> 
>>>>>> Thank you.
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> Dan Langille - BSDCan / PGCon
>>>>>> dan at langille.org
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> freebsd-scsi at freebsd.org mailing list
>>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-scsi
>>>>>> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"
>>>>> 
>>>> 
>>>>> On Dec 16, 2017, at 5:53 PM, Scott Long <scottl at samsco.org> wrote:
>>>>> 
>>>>> Hi Dan,
>>>>> 
>>>>> Try unhiding and giving permissions to /dev/xpt0.  Not sure if something changed there between 10.x and 11.x, but I suspect that it would be necessary regardless.  A truss/ktrace output will be necessary if that doesn’t work.
>>>>> 
>>>>> Scott
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>> 
>>>> Background: the host devices from the tape library:
>>>> 
>>>> <IBM ULT3580-HH4 C7Q1>             at scbus1 target 4 lun 0 (pass1,sa0)
>>>> <IBM 3573-TL B.60>                 at scbus1 target 4 lun 1 (pass7,ch0)
>>>> <IBM ULT3580-HH4 C7Q1>             at scbus1 target 5 lun 0 (pass8,sa1)
>>>> <IBM 3573-TL B.60>                 at scbus1 target 5 lun 1 (pass9,ch1)
>>>> 
>>>> 
>>>> The devices the jail can see:
>>>> 
>>>> [dan at bacula-sd-02:~] $ ls -l /dev
>>>> total 1
>>>> crw-------  1 root  operator  0x6b Dec 16 21:52 ch0
>>>> crw-------  1 root  operator  0x6c Dec 16 21:52 ch1
>>>> dr-xr-xr-x  2 root  wheel      512 Dec 16 21:52 fd
>>>> lrwxr-xr-x  1 root  wheel       14 Dec 16 22:02 log -> ../var/run/log
>>>> crw-rw----  1 root  operator  0x65 Dec 16 21:52 nsa0
>>>> crw-rw----  1 root  operator  0x69 Dec 16 21:52 nsa1
>>>> crw-rw-rw-  1 root  wheel     0x1b Dec 17 16:16 null
>>>> crw-------  1 root  operator  0x6d Dec 16 21:52 pass0
>>>> crw-------  1 root  operator  0x74 Dec 16 21:52 pass7
>>>> crw-------  1 root  operator  0x75 Dec 16 21:52 pass8
>>>> crw-------  1 root  operator  0x76 Dec 16 21:52 pass9
>>>> dr-xr-xr-x  2 root  wheel      512 Dec 17 16:16 pts
>>>> crw-r--r--  1 root  wheel      0x7 Dec 16 21:52 random
>>>> crw-rw----  1 root  operator  0x64 Dec 16 21:52 sa0
>>>> crw-rw----  1 root  operator  0x68 Dec 16 21:52 sa1
>>>> lrwxr-xr-x  1 root  wheel        4 Dec 16 22:02 stderr -> fd/2
>>>> lrwxr-xr-x  1 root  wheel        4 Dec 16 22:02 stdin -> fd/0
>>>> lrwxr-xr-x  1 root  wheel        4 Dec 16 22:02 stdout -> fd/1
>>>> lrwxr-xr-x  1 root  wheel        6 Dec 16 22:02 urandom -> random
>>>> crw-rw-rw-  1 root  wheel     0x1c Dec 16 21:52 zero
>>>> crw-rw-rw-  1 root  operator  0x48 Dec 16 21:52 zfs
>>>> [dan at bacula-sd-02:~] $ 
>>>> 
>>>> This command on the host:
>>>> 
>>>> [root at r710-01:~] # mtx -f /dev/pass7 status | head
>>>> Storage Changer /dev/pass7:2 Drives, 47 Slots ( 0 Import/Export )
>>>> Data Transfer Element 0:Full (Storage Element 1 Loaded):VolumeTag = 000001L4                       
>>>> Data Transfer Element 1:Empty
>>>>   Storage Element 1:Empty
>>>>   Storage Element 2:Empty
>>>>   Storage Element 3:Empty
>>>>   Storage Element 4:Empty
>>>>   Storage Element 5:Empty
>>>>   Storage Element 6:Empty
>>>>   Storage Element 7:Empty
>>>> 
>>>> 
>>>> Same command in the jail:
>>>> 
>>>> [root at bacula-sd-02 ~]# mtx -f /dev/pass7 status
>>>> cannot open SCSI device '/dev/pass7' - Operation not permitted
>>>> 
>>>> Same command with truss:
>>>> 
>>>> [root at bacula-sd-02 ~]# truss mtx -f /dev/pass7 status 
>>>> mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366197760 (0x800629000)
>>>> issetugid()					 = 0 (0x0)
>>>> lstat("/etc",{ mode=drwxr-xr-x ,inode=19,size=117,blksize=7680 }) = 0 (0x0)
>>>> lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=13724,size=109,blksize=4096 }) = 0 (0x0)
>>>> openat(AT_FDCWD,"/etc/libmap.conf",O_RDONLY|O_CLOEXEC,00) = 3 (0x3)
>>>> fstat(3,{ mode=-rw-r--r-- ,inode=13724,size=109,blksize=4096 }) = 0 (0x0)
>>>> mmap(0x0,109,PROT_READ,MAP_PRIVATE,3,0x0)	 = 34366230528 (0x800631000)
>>>> close(3)					 = 0 (0x0)
>>>> lstat("/usr",{ mode=drwxr-xr-x ,inode=23,size=15,blksize=4096 }) = 0 (0x0)
>>>> lstat("/usr/local",{ mode=drwxr-xr-x ,inode=214,size=14,blksize=4096 }) = 0 (0x0)
>>>> lstat("/usr/local/etc",{ mode=drwxr-xr-x ,inode=32826,size=29,blksize=4096 }) = 0 (0x0)
>>>> lstat("/usr/local/etc/libmap.d",0x7fffffffc548)	 ERR#2 'No such file or directory'
>>>> munmap(0x800631000,109)				 = 0 (0x0)
>>>> openat(AT_FDCWD,"/var/run/ld-elf.so.hints",O_RDONLY|O_CLOEXEC,00) = 3 (0x3)
>>>> read(3,"Ehnt\^A\0\0\0\M^@\0\0\0f\0\0\0\0"...,128) = 128 (0x80)
>>>> fstat(3,{ mode=-r--r--r-- ,inode=66965,size=230,blksize=4096 }) = 0 (0x0)
>>>> lseek(3,0x80,SEEK_SET)				 = 128 (0x80)
>>>> read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,102) = 102 (0x66)
>>>> close(3)					 = 0 (0x0)
>>>> access("/lib/libcam.so.7",F_OK)			 = 0 (0x0)
>>>> openat(AT_FDCWD,"/lib/libcam.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>>> fstat(3,{ mode=-r--r--r-- ,inode=141,size=201240,blksize=131072 }) = 0 (0x0)
>>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>>> mmap(0x0,2297856,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34368299008 (0x80082a000)
>>>> mmap(0x80082a000,176128,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34368299008 (0x80082a000)
>>>> mmap(0x800a54000,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x2a000) = 34370568192 (0x800a54000)
>>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>>> close(3)					 = 0 (0x0)
>>>> access("/lib/libc.so.7",F_OK)			 = 0 (0x0)
>>>> openat(AT_FDCWD,"/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>>> fstat(3,{ mode=-r--r--r-- ,inode=168,size=1761320,blksize=131072 }) = 0 (0x0)
>>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>>> mmap(0x0,3899392,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34370596864 (0x800a5b000)
>>>> mmap(0x800a5b000,1646592,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34370596864 (0x800a5b000)
>>>> mmap(0x800ded000,49152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x192000) = 34374340608 (0x800ded000)
>>>> mmap(0x800df9000,106496,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34374389760 (0x800df9000)
>>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>>> close(3)					 = 0 (0x0)
>>>> access("/lib/libsbuf.so.6",F_OK)		 = 0 (0x0)
>>>> openat(AT_FDCWD,"/lib/libsbuf.so.6",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>>> fstat(3,{ mode=-r--r--r-- ,inode=137,size=11312,blksize=11776 }) = 0 (0x0)
>>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>>> mmap(0x0,2109440,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34374496256 (0x800e13000)
>>>> mmap(0x800e13000,12288,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34374496256 (0x800e13000)
>>>> mmap(0x801015000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x2000) = 34376601600 (0x801015000)
>>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>>> close(3)					 = 0 (0x0)
>>>> mmap(0x0,40960,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366230528 (0x800631000)
>>>> munmap(0x800634000,28672)			 = 0 (0x0)
>>>> mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366242816 (0x800634000)
>>>> sysarch(AMD64_SET_FSBASE,0x7fffffffdf08)	 = 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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>>> readlink("/etc/malloc.conf",0x7fffffffd600,1024) ERR#2 'No such file or directory'
>>>> issetugid()					 = 0 (0x0)
>>>> __sysctl(0x7fffffffd4a0,0x2,0x7fffffffd4f0,0x7fffffffd4e8,0x800bbcc93,0xd) = 0 (0x0)
>>>> __sysctl(0x7fffffffd4f0,0x2,0x7fffffffd5b4,0x7fffffffd5a8,0x0,0x0) = 0 (0x0)
>>>> mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34376605696 (0x801016000)
>>>> munmap(0x801016000,2097152)			 = 0 (0x0)
>>>> mmap(0x0,4190208,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34376605696 (0x801016000)
>>>> munmap(0x801016000,2007040)			 = 0 (0x0)
>>>> munmap(0x801400000,86016)			 = 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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>>> mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380709888 (0x801400000)
>>>> openat(AT_FDCWD,"/dev/pass7",O_RDWR|O_EXCL,00)	 ERR#1 'Operation not permitted'
>>>> stat("/usr/share/nls/C/libc.cat",0x7fffffffdea8) ERR#2 'No such file or directory'
>>>> stat("/usr/share/nls/libc/C",0x7fffffffdea8)	 ERR#2 'No such file or directory'
>>>> stat("/usr/local/share/nls/C/libc.cat",0x7fffffffdea8) ERR#2 'No such file or directory'
>>>> stat("/usr/local/share/nls/libc/C",0x7fffffffdea8) ERR#2 'No such file or directory'
>>>> cannot open SCSI device '/dev/pass7' - Operation not permitted
>>>> write(2,"cannot open SCSI device '/dev/pa"...,63) = 63 (0x3f)
>>>> 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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>>> exit(0x1)					
>>>> process exit, rval = 1
>>>> [root at bacula-sd-02 ~]# 
>>>> 
>>>> 
>>> I forgot to do xpt0... here it is:
>>> 
>>> ALSO: Diff between the two is here: https://gist.github.com/dlangille/b80ee804b8080e1cbf5b5ab67f0bdabe/revisions
>>> 
>>> From the jail:
>>> 
>>> [dan at bacula-sd-02:~] $ ls -l /dev/xpt0 
>>> crw-------  1 root  operator  0x4c Dec 16 21:52 /dev/xpt0
>>> [dan at bacula-sd-02:~] $ 
>>> 
>>> 
>>> [dan at bacula-sd-02:~] $ truss mtx -f /dev/pass7 status
>>> mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366197760 (0x800629000)
>>> issetugid()					 = 0 (0x0)
>>> lstat("/etc",{ mode=drwxr-xr-x ,inode=19,size=117,blksize=7680 }) = 0 (0x0)
>>> lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=13724,size=109,blksize=4096 }) = 0 (0x0)
>>> openat(AT_FDCWD,"/etc/libmap.conf",O_RDONLY|O_CLOEXEC,00) = 3 (0x3)
>>> fstat(3,{ mode=-rw-r--r-- ,inode=13724,size=109,blksize=4096 }) = 0 (0x0)
>>> mmap(0x0,109,PROT_READ,MAP_PRIVATE,3,0x0)	 = 34366230528 (0x800631000)
>>> close(3)					 = 0 (0x0)
>>> lstat("/usr",{ mode=drwxr-xr-x ,inode=23,size=15,blksize=4096 }) = 0 (0x0)
>>> lstat("/usr/local",{ mode=drwxr-xr-x ,inode=214,size=14,blksize=4096 }) = 0 (0x0)
>>> lstat("/usr/local/etc",{ mode=drwxr-xr-x ,inode=32826,size=29,blksize=4096 }) = 0 (0x0)
>>> lstat("/usr/local/etc/libmap.d",0x7fffffffc608)	 ERR#2 'No such file or directory'
>>> munmap(0x800631000,109)				 = 0 (0x0)
>>> openat(AT_FDCWD,"/var/run/ld-elf.so.hints",O_RDONLY|O_CLOEXEC,00) = 3 (0x3)
>>> read(3,"Ehnt\^A\0\0\0\M^@\0\0\0f\0\0\0\0"...,128) = 128 (0x80)
>>> fstat(3,{ mode=-r--r--r-- ,inode=72757,size=230,blksize=4096 }) = 0 (0x0)
>>> lseek(3,0x80,SEEK_SET)				 = 128 (0x80)
>>> read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,102) = 102 (0x66)
>>> close(3)					 = 0 (0x0)
>>> access("/lib/libcam.so.7",F_OK)			 = 0 (0x0)
>>> openat(AT_FDCWD,"/lib/libcam.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>> fstat(3,{ mode=-r--r--r-- ,inode=141,size=201240,blksize=131072 }) = 0 (0x0)
>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>> mmap(0x0,2297856,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34368299008 (0x80082a000)
>>> mmap(0x80082a000,176128,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34368299008 (0x80082a000)
>>> mmap(0x800a54000,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x2a000) = 34370568192 (0x800a54000)
>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>> close(3)					 = 0 (0x0)
>>> access("/lib/libc.so.7",F_OK)			 = 0 (0x0)
>>> openat(AT_FDCWD,"/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>> fstat(3,{ mode=-r--r--r-- ,inode=168,size=1761320,blksize=131072 }) = 0 (0x0)
>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>> mmap(0x0,3899392,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34370596864 (0x800a5b000)
>>> mmap(0x800a5b000,1646592,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34370596864 (0x800a5b000)
>>> mmap(0x800ded000,49152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x192000) = 34374340608 (0x800ded000)
>>> mmap(0x800df9000,106496,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34374389760 (0x800df9000)
>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>> close(3)					 = 0 (0x0)
>>> access("/lib/libsbuf.so.6",F_OK)		 = 0 (0x0)
>>> openat(AT_FDCWD,"/lib/libsbuf.so.6",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
>>> fstat(3,{ mode=-r--r--r-- ,inode=137,size=11312,blksize=11776 }) = 0 (0x0)
>>> mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366230528 (0x800631000)
>>> mmap(0x0,2109440,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34374496256 (0x800e13000)
>>> mmap(0x800e13000,12288,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34374496256 (0x800e13000)
>>> mmap(0x801015000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x2000) = 34376601600 (0x801015000)
>>> munmap(0x800631000,4096)			 = 0 (0x0)
>>> close(3)					 = 0 (0x0)
>>> mmap(0x0,40960,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366230528 (0x800631000)
>>> munmap(0x800634000,28672)			 = 0 (0x0)
>>> mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366242816 (0x800634000)
>>> sysarch(AMD64_SET_FSBASE,0x7fffffffdfc8)	 = 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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>> readlink("/etc/malloc.conf",0x7fffffffd6c0,1024) ERR#2 'No such file or directory'
>>> issetugid()					 = 0 (0x0)
>>> __sysctl(0x7fffffffd560,0x2,0x7fffffffd5b0,0x7fffffffd5a8,0x800bbcc93,0xd) = 0 (0x0)
>>> __sysctl(0x7fffffffd5b0,0x2,0x7fffffffd674,0x7fffffffd668,0x0,0x0) = 0 (0x0)
>>> mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34376605696 (0x801016000)
>>> munmap(0x801016000,2097152)			 = 0 (0x0)
>>> mmap(0x0,4190208,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34376605696 (0x801016000)
>>> munmap(0x801016000,2007040)			 = 0 (0x0)
>>> munmap(0x801400000,86016)			 = 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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>> mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34380709888 (0x801400000)
>>> openat(AT_FDCWD,"/dev/pass7",O_RDWR|O_EXCL,00)	 ERR#13 'Permission denied'
>>> stat("/usr/share/nls/C/libc.cat",0x7fffffffdf68) ERR#2 'No such file or directory'
>>> stat("/usr/share/nls/libc/C",0x7fffffffdf68)	 ERR#2 'No such file or directory'
>>> stat("/usr/local/share/nls/C/libc.cat",0x7fffffffdf68) ERR#2 'No such file or directory'
>>> stat("/usr/local/share/nls/libc/C",0x7fffffffdf68) ERR#2 'No such file or directory'
>>> cannot open SCSI device '/dev/pass7' - Permission denied
>>> write(2,"cannot open SCSI device '/dev/pa"...,57) = 57 (0x39)
>>> 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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },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 },{ }) = 0 (0x0)
>>> sigprocmask(SIG_SETMASK,{ },0x0)		 = 0 (0x0)
>>> exit(0x1)					
>>> process exit, rval = 1
>>> 
>>> -- 
>>> Dan Langille - BSDCan / PGCon
>>> dan at langille.org
>> 
> 



More information about the freebsd-scsi mailing list