[LTP] [PATCH 6/11] mmap/mmap12: Testcase failed when no root user run it

Cui Bixuan cuibixuan@huawei.com
Sat Oct 31 01:54:07 CET 2015


On 2015/10/30 17:29, Jan Stancek wrote:
> 
> 
> 
> 
> ----- Original Message -----
>> From: "Cui Bixuan" <cuibixuan@huawei.com>
>> To: "Cyril Hrubis" <chrubis@suse.cz>
>> Cc: zhuyanpeng@huawei.com, zhanyongming@huawei.com, ltp@lists.linux.it
>> Sent: Friday, 30 October, 2015 9:56:36 AM
>> Subject: Re: [LTP] [PATCH 6/11] mmap/mmap12: Testcase failed when no root user run it
>>
>> On 2015/10/29 19:57, Cyril Hrubis wrote:
>>> Hi!
>>>> Add tst_require_root() to testcase for open /proc/self/pagemap file.
>>>
>>> On my machines the /proc/self/pagemap is readable by the process (it's
>>> owned by the user that has started the program).
>>>
>>> What is output of ls -l /proc/self/pagemap on your machine?
>> I look my system and others:
>> 1) SUSE SP2: 3.0.13-0.27-default (uname -a); test PASS;  -r--r--r-- 1 root
>> root 0 Oct 30 16:13 /proc/self/pagemap
>> 2) Ubuntu: 3.13.0-32-generic;                test PASS;  -r--r--r--. 1
>> cuibixuan cuibixuan 0 10月 30 16:19 /proc/self/pagemap
>> 3) SUSE: 4.2.0-0.11-default;                 test FAIL;  -r-------- 1 root
>> root 0 Nov 13 01:39 /proc/self/pagemap
>> 4) arm64: linux 4.1.6;                       test FAIL;  -r-------- 1 root
>> root 0 Jan 18 01:53 /proc/self/pagemap
>>
>> Maybe the higher version of the kernel change the file attributes
>> of /proc/self/pagemap, I think.
> 
> commit 32ed74a4b968a4faff7aaaff557035ce5d5e70ab
> Author: Djalal Harouni <tixxdz@opendz.org>
> Date:   Mon Apr 7 15:38:38 2014 -0700
> 
>     procfs: make /proc/*/pagemap 0400
>     
>     The /proc/*/pagemap contain sensitive information and currently its mode
>     is 0444.  Change this to 0400, so the VFS will prevent unprivileged
>     processes from getting file descriptors on arbitrary privileged
>     /proc/*/pagemap files.
> 
> but that doesn't explain why process can't read its own pagemap.
> For 3) and 4): Did you run that as unprivileged user or as a root?
> 
> Can you paste full output from mmap12 run (the one that fails)?
> 
Ok,

3)
linux-91x6:/home/cuibixuan/ltp.git/testcases/kernel/syscalls/mmap # ./mmap12
mmap12      1  TPASS  :  Functionality of mmap() successful
linux-91x6:/home/cuibixuan/ltp.git/testcases/kernel/syscalls/mmap # uname -a
Linux linux-91x6 4.2.0-0.11-default #1 SMP Mon Sep 28 06:25:26 CST 2015 x86_64 x86_64 x86_64 GNU/Linux
linux-91x6:/home/cuibixuan/ltp.git/testcases/kernel/syscalls/mmap # ./mmap12
mmap12      1  TPASS  :  Functionality of mmap() successful
linux-91x6:/home/cuibixuan/ltp.git/testcases/kernel/syscalls/mmap # su cuibixuan
cuibixuan@linux-91x6:~/ltp.git/testcases/kernel/syscalls/mmap> ./mmap12
mmap12      1  TFAIL  :  mmap12.c:112: Open dev pagemap failed: errno=EPERM(1): Operation not permitted
cuibixuan@linux-91x6:~/ltp.git/testcases/kernel/syscalls/mmap> ls -l /proc/self/pagemap
-r-------- 1 cuibixuan users 0 Nov 13 18:19 /proc/self/pagemap


4)
[root@localhost tmp]# ./mmap12
mmap12      1  TPASS  :  Functionality of mmap() successful
[root@localhost tmp]# su cuibixuan
[cuibixuan@localhost tmp]$ ./mmap12
mmap12      1  TFAIL  :  mmap12.c:112: Open dev pagemap failed: errno=EPERM(1): Operation not permitted
[cuibixuan@localhost tmp]$ ls -l /proc/self/pagemap
-r-------- 1 cuibixuan cuibixuan 0 Jun  2 18:03 /proc/self/pagemap
[cuibixuan@localhost tmp]$ uname -r
4.1.6+
[cuibixuan@localhost tmp]$ uname -i
aarch64

> Regards,
> Jan
> 
>>
>> But I read the Documentation/vm/pagemap.txt and look at the source code in
>> kernel,
>> can't get it. :-(
>>
>> Someone help?
>>>
>>
>>
>> --
>> Mailing list info: http://lists.linux.it/listinfo/ltp
>>
> 
> .
> 



More information about the Ltp mailing list