* [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
@ 2022-03-14 19:12 Petr Vorel
2022-03-18 7:59 ` xuyang2018.jy
2022-07-06 9:37 ` xuyang2018.jy
0 siblings, 2 replies; 12+ messages in thread
From: Petr Vorel @ 2022-03-14 19:12 UTC (permalink / raw)
To: ltp; +Cc: Martin Doucha
XFS fails on umask 0077:
tst_test.c:1528: TINFO: Testing on xfs
tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
Thus clear the default umask.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
testcases/kernel/syscalls/creat/creat09.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
index bed7bddb0e..70da7d2fc7 100644
--- a/testcases/kernel/syscalls/creat/creat09.c
+++ b/testcases/kernel/syscalls/creat/creat09.c
@@ -56,6 +56,8 @@ static void setup(void)
(int)ltpuser->pw_gid);
free_gid = tst_get_free_gid(ltpuser->pw_gid);
+ umask(0);
+
/* Create directories and set permissions */
SAFE_MKDIR(WORKDIR, MODE_RWX);
SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
--
2.35.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-03-14 19:12 [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask Petr Vorel
@ 2022-03-18 7:59 ` xuyang2018.jy
2022-03-18 10:37 ` xuyang2018.jy
2022-07-06 9:37 ` xuyang2018.jy
1 sibling, 1 reply; 12+ messages in thread
From: xuyang2018.jy @ 2022-03-18 7:59 UTC (permalink / raw)
To: Petr Vorel; +Cc: Martin Doucha, ltp
Hi Petr
It fails because the create file without S_IXGRP mode, then we miss
remove S_ISGID[1] bit.
But I don't known why other filesystem doesn't have this problem.
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
Best Regards
Yang Xu
> XFS fails on umask 0077:
>
> tst_test.c:1528: TINFO: Testing on xfs
> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
>
> Thus clear the default umask.
>
> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> ---
> testcases/kernel/syscalls/creat/creat09.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
> index bed7bddb0e..70da7d2fc7 100644
> --- a/testcases/kernel/syscalls/creat/creat09.c
> +++ b/testcases/kernel/syscalls/creat/creat09.c
> @@ -56,6 +56,8 @@ static void setup(void)
> (int)ltpuser->pw_gid);
> free_gid = tst_get_free_gid(ltpuser->pw_gid);
>
> + umask(0);
> +
> /* Create directories and set permissions */
> SAFE_MKDIR(WORKDIR, MODE_RWX);
> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-03-18 7:59 ` xuyang2018.jy
@ 2022-03-18 10:37 ` xuyang2018.jy
2022-03-18 22:12 ` Darrick J. Wong
0 siblings, 1 reply; 12+ messages in thread
From: xuyang2018.jy @ 2022-03-18 10:37 UTC (permalink / raw)
To: ltp, Jan Kara, Darrick J. Wong; +Cc: Martin Doucha
Hi Darrick, Jack
Petr meet a problem when running creat09 on xfs, ext4 doesn't have problem.
It seems xfs will still use umask when enable default acl, but ext4 will
not.
As umask2 manpage , it said
"Alternatively, if the parent directory has a default ACL (see acl(5)),
the umask is ignored, the default ACL is inherited, the permission bits
are set based on the inherited ACL, and permission bits absent
in the mode argument are turned off.
"
It seem xfs doesn't obey this rule.
the xfs calltrace as below:
will use inode_init_owner(struct user_namespace *mnt_userns,
structinode *inode)
296.760675] xfs_init_new_inode+0x10e/0x6c0
[ 296.760678] xfs_create+0x401/0x610
will use posix_acl_create(dir, &mode, &default_acl, &acl);
[ 296.760681] xfs_generic_create+0x123/0x2e0
[ 296.760684] ? _raw_spin_unlock+0x16/0x30
[ 296.760687] path_openat+0xfb8/0x1210
[ 296.760689] do_filp_open+0xb4/0x120
[ 296.760691] ? file_tty_write.isra.31+0x203/0x340
[ 296.760697] ? __check_object_size+0x150/0x170
[ 296.760699] do_sys_openat2+0x242/0x310
[ 296.760702] do_sys_open+0x4b/0x80
[ 296.760704] do_syscall_64+0x3a/0x80
the ext4 calltrace as below:
[ 296.460999] __ext4_new_inode+0xe07/0x1780 [ext4]
posix_acl_create(dir, &inode->i_mode, &default_acl, &acl);
[ 296.461035] ext4_create+0x106/0x1c0 [ext4]
[ 296.461059] path_openat+0xfb8/0x1210
[ 296.461062] do_filp_open+0xb4/0x120
[ 296.461065] ? __check_object_size+0x150/0x170
[ 296.461068] do_sys_openat2+0x242/0x310
[ 296.461070] do_sys_open+0x4b/0x80
[ 296.461073] do_syscall_64+0x3a/0x80
[ 296.461077] entry_SYSCALL_64_after_hwframe+0x44/0xae
I guess xfs modify its mode value instead of inode->i_mode in
posix_acl_create by using current->umask value, so inode_init_owner
doesn't clear no-sgid bits on created file because of missing S_IXGRP.
Is it a kernel bug?
Best Regards
Yang Xu
> Hi Petr
>
> It fails because the create file without S_IXGRP mode, then we miss
> remove S_ISGID[1] bit.
>
> But I don't known why other filesystem doesn't have this problem.
>
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
>
> Best Regards
> Yang Xu
>> XFS fails on umask 0077:
>>
>> tst_test.c:1528: TINFO: Testing on xfs
>> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
>> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
>> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
>> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
>> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
>> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
>> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
>> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
>>
>> Thus clear the default umask.
>>
>> Signed-off-by: Petr Vorel<pvorel@suse.cz>
>> ---
>> testcases/kernel/syscalls/creat/creat09.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
>> index bed7bddb0e..70da7d2fc7 100644
>> --- a/testcases/kernel/syscalls/creat/creat09.c
>> +++ b/testcases/kernel/syscalls/creat/creat09.c
>> @@ -56,6 +56,8 @@ static void setup(void)
>> (int)ltpuser->pw_gid);
>> free_gid = tst_get_free_gid(ltpuser->pw_gid);
>>
>> + umask(0);
>> +
>> /* Create directories and set permissions */
>> SAFE_MKDIR(WORKDIR, MODE_RWX);
>> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-03-18 10:37 ` xuyang2018.jy
@ 2022-03-18 22:12 ` Darrick J. Wong
0 siblings, 0 replies; 12+ messages in thread
From: Darrick J. Wong @ 2022-03-18 22:12 UTC (permalink / raw)
To: xuyang2018.jy; +Cc: ltp, Jan Kara, Petr Vorel, Martin Doucha, xfs
You really ought to cc the xfs list for questions about longstanding
behaviors of XFS...
[cc linux-xfs]
--D
On Fri, Mar 18, 2022 at 10:37:03AM +0000, xuyang2018.jy@fujitsu.com wrote:
> Hi Darrick, Jack
>
> Petr meet a problem when running creat09 on xfs, ext4 doesn't have problem.
>
> It seems xfs will still use umask when enable default acl, but ext4 will
> not.
>
> As umask2 manpage , it said
> "Alternatively, if the parent directory has a default ACL (see acl(5)),
> the umask is ignored, the default ACL is inherited, the permission bits
> are set based on the inherited ACL, and permission bits absent
> in the mode argument are turned off.
> "
>
> It seem xfs doesn't obey this rule.
>
> the xfs calltrace as below:
>
> will use inode_init_owner(struct user_namespace *mnt_userns,
> structinode *inode)
>
> 296.760675] xfs_init_new_inode+0x10e/0x6c0
> [ 296.760678] xfs_create+0x401/0x610
> will use posix_acl_create(dir, &mode, &default_acl, &acl);
> [ 296.760681] xfs_generic_create+0x123/0x2e0
> [ 296.760684] ? _raw_spin_unlock+0x16/0x30
> [ 296.760687] path_openat+0xfb8/0x1210
> [ 296.760689] do_filp_open+0xb4/0x120
> [ 296.760691] ? file_tty_write.isra.31+0x203/0x340
> [ 296.760697] ? __check_object_size+0x150/0x170
> [ 296.760699] do_sys_openat2+0x242/0x310
> [ 296.760702] do_sys_open+0x4b/0x80
> [ 296.760704] do_syscall_64+0x3a/0x80
>
>
> the ext4 calltrace as below:
> [ 296.460999] __ext4_new_inode+0xe07/0x1780 [ext4]
> posix_acl_create(dir, &inode->i_mode, &default_acl, &acl);
> [ 296.461035] ext4_create+0x106/0x1c0 [ext4]
> [ 296.461059] path_openat+0xfb8/0x1210
> [ 296.461062] do_filp_open+0xb4/0x120
> [ 296.461065] ? __check_object_size+0x150/0x170
> [ 296.461068] do_sys_openat2+0x242/0x310
> [ 296.461070] do_sys_open+0x4b/0x80
> [ 296.461073] do_syscall_64+0x3a/0x80
> [ 296.461077] entry_SYSCALL_64_after_hwframe+0x44/0xae
>
> I guess xfs modify its mode value instead of inode->i_mode in
> posix_acl_create by using current->umask value, so inode_init_owner
> doesn't clear no-sgid bits on created file because of missing S_IXGRP.
>
> Is it a kernel bug?
>
> Best Regards
> Yang Xu
>
> > Hi Petr
> >
> > It fails because the create file without S_IXGRP mode, then we miss
> > remove S_ISGID[1] bit.
> >
> > But I don't known why other filesystem doesn't have this problem.
> >
> > [1]
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
> >
> > Best Regards
> > Yang Xu
> >> XFS fails on umask 0077:
> >>
> >> tst_test.c:1528: TINFO: Testing on xfs
> >> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> >> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
> >> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
> >> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
> >> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
> >> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
> >> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
> >> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
> >>
> >> Thus clear the default umask.
> >>
> >> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> >> ---
> >> testcases/kernel/syscalls/creat/creat09.c | 2 ++
> >> 1 file changed, 2 insertions(+)
> >>
> >> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
> >> index bed7bddb0e..70da7d2fc7 100644
> >> --- a/testcases/kernel/syscalls/creat/creat09.c
> >> +++ b/testcases/kernel/syscalls/creat/creat09.c
> >> @@ -56,6 +56,8 @@ static void setup(void)
> >> (int)ltpuser->pw_gid);
> >> free_gid = tst_get_free_gid(ltpuser->pw_gid);
> >>
> >> + umask(0);
> >> +
> >> /* Create directories and set permissions */
> >> SAFE_MKDIR(WORKDIR, MODE_RWX);
> >> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
@ 2022-03-18 22:12 ` Darrick J. Wong
0 siblings, 0 replies; 12+ messages in thread
From: Darrick J. Wong @ 2022-03-18 22:12 UTC (permalink / raw)
To: xuyang2018.jy; +Cc: xfs, Jan Kara, Martin Doucha, ltp
You really ought to cc the xfs list for questions about longstanding
behaviors of XFS...
[cc linux-xfs]
--D
On Fri, Mar 18, 2022 at 10:37:03AM +0000, xuyang2018.jy@fujitsu.com wrote:
> Hi Darrick, Jack
>
> Petr meet a problem when running creat09 on xfs, ext4 doesn't have problem.
>
> It seems xfs will still use umask when enable default acl, but ext4 will
> not.
>
> As umask2 manpage , it said
> "Alternatively, if the parent directory has a default ACL (see acl(5)),
> the umask is ignored, the default ACL is inherited, the permission bits
> are set based on the inherited ACL, and permission bits absent
> in the mode argument are turned off.
> "
>
> It seem xfs doesn't obey this rule.
>
> the xfs calltrace as below:
>
> will use inode_init_owner(struct user_namespace *mnt_userns,
> structinode *inode)
>
> 296.760675] xfs_init_new_inode+0x10e/0x6c0
> [ 296.760678] xfs_create+0x401/0x610
> will use posix_acl_create(dir, &mode, &default_acl, &acl);
> [ 296.760681] xfs_generic_create+0x123/0x2e0
> [ 296.760684] ? _raw_spin_unlock+0x16/0x30
> [ 296.760687] path_openat+0xfb8/0x1210
> [ 296.760689] do_filp_open+0xb4/0x120
> [ 296.760691] ? file_tty_write.isra.31+0x203/0x340
> [ 296.760697] ? __check_object_size+0x150/0x170
> [ 296.760699] do_sys_openat2+0x242/0x310
> [ 296.760702] do_sys_open+0x4b/0x80
> [ 296.760704] do_syscall_64+0x3a/0x80
>
>
> the ext4 calltrace as below:
> [ 296.460999] __ext4_new_inode+0xe07/0x1780 [ext4]
> posix_acl_create(dir, &inode->i_mode, &default_acl, &acl);
> [ 296.461035] ext4_create+0x106/0x1c0 [ext4]
> [ 296.461059] path_openat+0xfb8/0x1210
> [ 296.461062] do_filp_open+0xb4/0x120
> [ 296.461065] ? __check_object_size+0x150/0x170
> [ 296.461068] do_sys_openat2+0x242/0x310
> [ 296.461070] do_sys_open+0x4b/0x80
> [ 296.461073] do_syscall_64+0x3a/0x80
> [ 296.461077] entry_SYSCALL_64_after_hwframe+0x44/0xae
>
> I guess xfs modify its mode value instead of inode->i_mode in
> posix_acl_create by using current->umask value, so inode_init_owner
> doesn't clear no-sgid bits on created file because of missing S_IXGRP.
>
> Is it a kernel bug?
>
> Best Regards
> Yang Xu
>
> > Hi Petr
> >
> > It fails because the create file without S_IXGRP mode, then we miss
> > remove S_ISGID[1] bit.
> >
> > But I don't known why other filesystem doesn't have this problem.
> >
> > [1]
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
> >
> > Best Regards
> > Yang Xu
> >> XFS fails on umask 0077:
> >>
> >> tst_test.c:1528: TINFO: Testing on xfs
> >> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> >> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
> >> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
> >> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
> >> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
> >> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
> >> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
> >> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
> >>
> >> Thus clear the default umask.
> >>
> >> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> >> ---
> >> testcases/kernel/syscalls/creat/creat09.c | 2 ++
> >> 1 file changed, 2 insertions(+)
> >>
> >> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
> >> index bed7bddb0e..70da7d2fc7 100644
> >> --- a/testcases/kernel/syscalls/creat/creat09.c
> >> +++ b/testcases/kernel/syscalls/creat/creat09.c
> >> @@ -56,6 +56,8 @@ static void setup(void)
> >> (int)ltpuser->pw_gid);
> >> free_gid = tst_get_free_gid(ltpuser->pw_gid);
> >>
> >> + umask(0);
> >> +
> >> /* Create directories and set permissions */
> >> SAFE_MKDIR(WORKDIR, MODE_RWX);
> >> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
> >
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-03-18 22:12 ` Darrick J. Wong
@ 2022-03-22 6:28 ` xuyang2018.jy
-1 siblings, 0 replies; 12+ messages in thread
From: xuyang2018.jy @ 2022-03-22 6:28 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: xfs, Jan Kara, Martin Doucha, ltp
on 2022/3/19 6:12, Darrick J. Wong wrote:
> You really ought to cc the xfs list for questions about longstanding
> behaviors of XFS...
>
> [cc linux-xfs]
Oh, yes, sorry for this. I have sent a RFC patch to linux-xfs and we can
move discussion on that mail.
Best Regards
Yang Xu
>
> --D
>
> On Fri, Mar 18, 2022 at 10:37:03AM +0000, xuyang2018.jy@fujitsu.com wrote:
>> Hi Darrick, Jack
>>
>> Petr meet a problem when running creat09 on xfs, ext4 doesn't have problem.
>>
>> It seems xfs will still use umask when enable default acl, but ext4 will
>> not.
>>
>> As umask2 manpage , it said
>> "Alternatively, if the parent directory has a default ACL (see acl(5)),
>> the umask is ignored, the default ACL is inherited, the permission bits
>> are set based on the inherited ACL, and permission bits absent
>> in the mode argument are turned off.
>> "
>>
>> It seem xfs doesn't obey this rule.
>>
>> the xfs calltrace as below:
>>
>> will use inode_init_owner(struct user_namespace *mnt_userns,
>> structinode *inode)
>>
>> 296.760675] xfs_init_new_inode+0x10e/0x6c0
>> [ 296.760678] xfs_create+0x401/0x610
>> will use posix_acl_create(dir,&mode,&default_acl,&acl);
>> [ 296.760681] xfs_generic_create+0x123/0x2e0
>> [ 296.760684] ? _raw_spin_unlock+0x16/0x30
>> [ 296.760687] path_openat+0xfb8/0x1210
>> [ 296.760689] do_filp_open+0xb4/0x120
>> [ 296.760691] ? file_tty_write.isra.31+0x203/0x340
>> [ 296.760697] ? __check_object_size+0x150/0x170
>> [ 296.760699] do_sys_openat2+0x242/0x310
>> [ 296.760702] do_sys_open+0x4b/0x80
>> [ 296.760704] do_syscall_64+0x3a/0x80
>>
>>
>> the ext4 calltrace as below:
>> [ 296.460999] __ext4_new_inode+0xe07/0x1780 [ext4]
>> posix_acl_create(dir,&inode->i_mode,&default_acl,&acl);
>> [ 296.461035] ext4_create+0x106/0x1c0 [ext4]
>> [ 296.461059] path_openat+0xfb8/0x1210
>> [ 296.461062] do_filp_open+0xb4/0x120
>> [ 296.461065] ? __check_object_size+0x150/0x170
>> [ 296.461068] do_sys_openat2+0x242/0x310
>> [ 296.461070] do_sys_open+0x4b/0x80
>> [ 296.461073] do_syscall_64+0x3a/0x80
>> [ 296.461077] entry_SYSCALL_64_after_hwframe+0x44/0xae
>>
>> I guess xfs modify its mode value instead of inode->i_mode in
>> posix_acl_create by using current->umask value, so inode_init_owner
>> doesn't clear no-sgid bits on created file because of missing S_IXGRP.
>>
>> Is it a kernel bug?
>>
>> Best Regards
>> Yang Xu
>>
>>> Hi Petr
>>>
>>> It fails because the create file without S_IXGRP mode, then we miss
>>> remove S_ISGID[1] bit.
>>>
>>> But I don't known why other filesystem doesn't have this problem.
>>>
>>> [1]
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
>>>
>>> Best Regards
>>> Yang Xu
>>>> XFS fails on umask 0077:
>>>>
>>>> tst_test.c:1528: TINFO: Testing on xfs
>>>> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
>>>> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
>>>> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
>>>> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
>>>> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
>>>> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
>>>> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
>>>> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
>>>>
>>>> Thus clear the default umask.
>>>>
>>>> Signed-off-by: Petr Vorel<pvorel@suse.cz>
>>>> ---
>>>> testcases/kernel/syscalls/creat/creat09.c | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
>>>> index bed7bddb0e..70da7d2fc7 100644
>>>> --- a/testcases/kernel/syscalls/creat/creat09.c
>>>> +++ b/testcases/kernel/syscalls/creat/creat09.c
>>>> @@ -56,6 +56,8 @@ static void setup(void)
>>>> (int)ltpuser->pw_gid);
>>>> free_gid = tst_get_free_gid(ltpuser->pw_gid);
>>>>
>>>> + umask(0);
>>>> +
>>>> /* Create directories and set permissions */
>>>> SAFE_MKDIR(WORKDIR, MODE_RWX);
>>>> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
>>>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
@ 2022-03-22 6:28 ` xuyang2018.jy
0 siblings, 0 replies; 12+ messages in thread
From: xuyang2018.jy @ 2022-03-22 6:28 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: ltp, Jan Kara, Petr Vorel, Martin Doucha, xfs
on 2022/3/19 6:12, Darrick J. Wong wrote:
> You really ought to cc the xfs list for questions about longstanding
> behaviors of XFS...
>
> [cc linux-xfs]
Oh, yes, sorry for this. I have sent a RFC patch to linux-xfs and we can
move discussion on that mail.
Best Regards
Yang Xu
>
> --D
>
> On Fri, Mar 18, 2022 at 10:37:03AM +0000, xuyang2018.jy@fujitsu.com wrote:
>> Hi Darrick, Jack
>>
>> Petr meet a problem when running creat09 on xfs, ext4 doesn't have problem.
>>
>> It seems xfs will still use umask when enable default acl, but ext4 will
>> not.
>>
>> As umask2 manpage , it said
>> "Alternatively, if the parent directory has a default ACL (see acl(5)),
>> the umask is ignored, the default ACL is inherited, the permission bits
>> are set based on the inherited ACL, and permission bits absent
>> in the mode argument are turned off.
>> "
>>
>> It seem xfs doesn't obey this rule.
>>
>> the xfs calltrace as below:
>>
>> will use inode_init_owner(struct user_namespace *mnt_userns,
>> structinode *inode)
>>
>> 296.760675] xfs_init_new_inode+0x10e/0x6c0
>> [ 296.760678] xfs_create+0x401/0x610
>> will use posix_acl_create(dir,&mode,&default_acl,&acl);
>> [ 296.760681] xfs_generic_create+0x123/0x2e0
>> [ 296.760684] ? _raw_spin_unlock+0x16/0x30
>> [ 296.760687] path_openat+0xfb8/0x1210
>> [ 296.760689] do_filp_open+0xb4/0x120
>> [ 296.760691] ? file_tty_write.isra.31+0x203/0x340
>> [ 296.760697] ? __check_object_size+0x150/0x170
>> [ 296.760699] do_sys_openat2+0x242/0x310
>> [ 296.760702] do_sys_open+0x4b/0x80
>> [ 296.760704] do_syscall_64+0x3a/0x80
>>
>>
>> the ext4 calltrace as below:
>> [ 296.460999] __ext4_new_inode+0xe07/0x1780 [ext4]
>> posix_acl_create(dir,&inode->i_mode,&default_acl,&acl);
>> [ 296.461035] ext4_create+0x106/0x1c0 [ext4]
>> [ 296.461059] path_openat+0xfb8/0x1210
>> [ 296.461062] do_filp_open+0xb4/0x120
>> [ 296.461065] ? __check_object_size+0x150/0x170
>> [ 296.461068] do_sys_openat2+0x242/0x310
>> [ 296.461070] do_sys_open+0x4b/0x80
>> [ 296.461073] do_syscall_64+0x3a/0x80
>> [ 296.461077] entry_SYSCALL_64_after_hwframe+0x44/0xae
>>
>> I guess xfs modify its mode value instead of inode->i_mode in
>> posix_acl_create by using current->umask value, so inode_init_owner
>> doesn't clear no-sgid bits on created file because of missing S_IXGRP.
>>
>> Is it a kernel bug?
>>
>> Best Regards
>> Yang Xu
>>
>>> Hi Petr
>>>
>>> It fails because the create file without S_IXGRP mode, then we miss
>>> remove S_ISGID[1] bit.
>>>
>>> But I don't known why other filesystem doesn't have this problem.
>>>
>>> [1]
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/inode.c#n2249
>>>
>>> Best Regards
>>> Yang Xu
>>>> XFS fails on umask 0077:
>>>>
>>>> tst_test.c:1528: TINFO: Testing on xfs
>>>> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
>>>> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
>>>> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
>>>> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
>>>> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
>>>> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
>>>> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
>>>> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
>>>>
>>>> Thus clear the default umask.
>>>>
>>>> Signed-off-by: Petr Vorel<pvorel@suse.cz>
>>>> ---
>>>> testcases/kernel/syscalls/creat/creat09.c | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
>>>> index bed7bddb0e..70da7d2fc7 100644
>>>> --- a/testcases/kernel/syscalls/creat/creat09.c
>>>> +++ b/testcases/kernel/syscalls/creat/creat09.c
>>>> @@ -56,6 +56,8 @@ static void setup(void)
>>>> (int)ltpuser->pw_gid);
>>>> free_gid = tst_get_free_gid(ltpuser->pw_gid);
>>>>
>>>> + umask(0);
>>>> +
>>>> /* Create directories and set permissions */
>>>> SAFE_MKDIR(WORKDIR, MODE_RWX);
>>>> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
>>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-03-14 19:12 [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask Petr Vorel
2022-03-18 7:59 ` xuyang2018.jy
@ 2022-07-06 9:37 ` xuyang2018.jy
2022-07-07 18:04 ` Petr Vorel
1 sibling, 1 reply; 12+ messages in thread
From: xuyang2018.jy @ 2022-07-06 9:37 UTC (permalink / raw)
To: Petr Vorel; +Cc: Martin Doucha, ltp
Hi Petr
Share some process with you...
I have rejected this patch and a kernel patchset[1] is plan to fix this
but doesn't merged to upstream kernel due to none continue to review
this(It is about one month since v9...)
TBH, this case only tests simple creat file with open but miss
open with O_TMPFILE[2]
mknodat[3]
setgid strip logic is not only affected by umask but also include acl
operations[4].
[1]https://patchwork.kernel.org/project/linux-fsdevel/list/?series=643645
[2]https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/commit/?id=87cf32ad3fa234e3d5ec501e0f86516bef91d805
[3]https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/commit/?id=5328ab947ff4d2d492a6ac90b22d31ab02637bd8
[4]https://patchwork.kernel.org/project/fstests/list/?series=643643&state=%2A&archive=both
Best Regards
Yang Xu
> XFS fails on umask 0077:
>
> tst_test.c:1528: TINFO: Testing on xfs
> tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
> creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
> creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
> creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
> creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
> creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
> creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
>
> Thus clear the default umask.
>
> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> ---
> testcases/kernel/syscalls/creat/creat09.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
> index bed7bddb0e..70da7d2fc7 100644
> --- a/testcases/kernel/syscalls/creat/creat09.c
> +++ b/testcases/kernel/syscalls/creat/creat09.c
> @@ -56,6 +56,8 @@ static void setup(void)
> (int)ltpuser->pw_gid);
> free_gid = tst_get_free_gid(ltpuser->pw_gid);
>
> + umask(0);
> +
> /* Create directories and set permissions */
> SAFE_MKDIR(WORKDIR, MODE_RWX);
> SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-07-06 9:37 ` xuyang2018.jy
@ 2022-07-07 18:04 ` Petr Vorel
2022-07-08 14:37 ` Christian Brauner
0 siblings, 1 reply; 12+ messages in thread
From: Petr Vorel @ 2022-07-07 18:04 UTC (permalink / raw)
To: xuyang2018.jy; +Cc: Christian Brauner, Martin Doucha, ltp, Al Viro
Hi Xu,
> Hi Petr
> Share some process with you...
> I have rejected this patch and a kernel patchset[1] is plan to fix this
> but doesn't merged to upstream kernel due to none continue to review
> this(It is about one month since v9...)
> TBH, this case only tests simple creat file with open but miss
> open with O_TMPFILE[2]
> mknodat[3]
> setgid strip logic is not only affected by umask but also include acl
> operations[4].
Thanks a lot for an update.
Al, Christian, Amir, could you please have look on v9?
Kind regards,
Petr
> [1]https://patchwork.kernel.org/project/linux-fsdevel/list/?series=643645
> [2]https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/commit/?id=87cf32ad3fa234e3d5ec501e0f86516bef91d805
> [3]https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/commit/?id=5328ab947ff4d2d492a6ac90b22d31ab02637bd8
> [4]https://patchwork.kernel.org/project/fstests/list/?series=643643&state=%2A&archive=both
> Best Regards
> Yang Xu
> > XFS fails on umask 0077:
> > tst_test.c:1528: TINFO: Testing on xfs
> > tst_test.c:997: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> > tst_test.c:1458: TINFO: Timeout per run is 0h 05m 00s
> > creat09.c:61: TINFO: User nobody: uid = 65534, gid = 65534
> > creat09.c:62: TINFO: Found unused GID 3: SUCCESS (0)
> > creat09.c:93: TPASS: mntpoint/testdir/creat.tmp: Owned by correct group
> > creat09.c:97: TFAIL: mntpoint/testdir/creat.tmp: Setgid bit is set
> > creat09.c:93: TPASS: mntpoint/testdir/open.tmp: Owned by correct group
> > creat09.c:97: TFAIL: mntpoint/testdir/open.tmp: Setgid bit is set
> > Thus clear the default umask.
> > Signed-off-by: Petr Vorel<pvorel@suse.cz>
> > ---
> > testcases/kernel/syscalls/creat/creat09.c | 2 ++
> > 1 file changed, 2 insertions(+)
> > diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
> > index bed7bddb0e..70da7d2fc7 100644
> > --- a/testcases/kernel/syscalls/creat/creat09.c
> > +++ b/testcases/kernel/syscalls/creat/creat09.c
> > @@ -56,6 +56,8 @@ static void setup(void)
> > (int)ltpuser->pw_gid);
> > free_gid = tst_get_free_gid(ltpuser->pw_gid);
> > + umask(0);
> > +
> > /* Create directories and set permissions */
> > SAFE_MKDIR(WORKDIR, MODE_RWX);
> > SAFE_CHOWN(WORKDIR, ltpuser->pw_uid, free_gid);
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-07-07 18:04 ` Petr Vorel
@ 2022-07-08 14:37 ` Christian Brauner
2022-07-11 3:56 ` xuyang2018.jy
2022-07-11 5:25 ` Petr Vorel
0 siblings, 2 replies; 12+ messages in thread
From: Christian Brauner @ 2022-07-08 14:37 UTC (permalink / raw)
To: Petr Vorel; +Cc: Martin Doucha, ltp, Al Viro
On Thu, Jul 07, 2022 at 08:04:18PM +0200, Petr Vorel wrote:
> Hi Xu,
>
> > Hi Petr
>
> > Share some process with you...
>
> > I have rejected this patch and a kernel patchset[1] is plan to fix this
> > but doesn't merged to upstream kernel due to none continue to review
> > this(It is about one month since v9...)
>
> > TBH, this case only tests simple creat file with open but miss
> > open with O_TMPFILE[2]
> > mknodat[3]
>
> > setgid strip logic is not only affected by umask but also include acl
> > operations[4].
>
> Thanks a lot for an update.
> Al, Christian, Amir, could you please have look on v9?
Afaict, I reviewed v9 and left comments and had pointed out things that
needed to be changed. So I'd wait for v10 (I'm on vacation next week
though.).
Christian
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-07-08 14:37 ` Christian Brauner
@ 2022-07-11 3:56 ` xuyang2018.jy
2022-07-11 5:25 ` Petr Vorel
1 sibling, 0 replies; 12+ messages in thread
From: xuyang2018.jy @ 2022-07-11 3:56 UTC (permalink / raw)
To: Christian Brauner, Petr Vorel; +Cc: Martin Doucha, ltp, Al Viro
on 2022/07/08 22:37, Christian Brauner wrote:
> On Thu, Jul 07, 2022 at 08:04:18PM +0200, Petr Vorel wrote:
>> Hi Xu,
>>
>>> Hi Petr
>>
>>> Share some process with you...
>>
>>> I have rejected this patch and a kernel patchset[1] is plan to fix this
>>> but doesn't merged to upstream kernel due to none continue to review
>>> this(It is about one month since v9...)
>>
>>> TBH, this case only tests simple creat file with open but miss
>>> open with O_TMPFILE[2]
>>> mknodat[3]
>>
>>> setgid strip logic is not only affected by umask but also include acl
>>> operations[4].
>>
>> Thanks a lot for an update.
>> Al, Christian, Amir, could you please have look on v9?
>
> Afaict, I reviewed v9 and left comments and had pointed out things that
> needed to be changed. So I'd wait for v10 (I'm on vacation next week
> though.).
Oh, I missed that email and will think how to move logic into vfs_* as
you suggested.
Best Regards
Yang Xu
>
> Christian
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask
2022-07-08 14:37 ` Christian Brauner
2022-07-11 3:56 ` xuyang2018.jy
@ 2022-07-11 5:25 ` Petr Vorel
1 sibling, 0 replies; 12+ messages in thread
From: Petr Vorel @ 2022-07-11 5:25 UTC (permalink / raw)
To: Christian Brauner; +Cc: Martin Doucha, ltp, Al Viro
> On Thu, Jul 07, 2022 at 08:04:18PM +0200, Petr Vorel wrote:
> > Hi Xu,
> > > Hi Petr
> > > Share some process with you...
> > > I have rejected this patch and a kernel patchset[1] is plan to fix this
> > > but doesn't merged to upstream kernel due to none continue to review
> > > this(It is about one month since v9...)
> > > TBH, this case only tests simple creat file with open but miss
> > > open with O_TMPFILE[2]
> > > mknodat[3]
> > > setgid strip logic is not only affected by umask but also include acl
> > > operations[4].
> > Thanks a lot for an update.
> > Al, Christian, Amir, could you please have look on v9?
> Afaict, I reviewed v9 and left comments and had pointed out things that
> needed to be changed. So I'd wait for v10 (I'm on vacation next week
> though.).
Thanks a lot, sorry for overlooking your change requests!
Kind regards,
Petr
> Christian
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-07-13 9:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-14 19:12 [LTP] [RFC PATCH 1/1] creat09: Fix on more restrictive umask Petr Vorel
2022-03-18 7:59 ` xuyang2018.jy
2022-03-18 10:37 ` xuyang2018.jy
2022-03-18 22:12 ` Darrick J. Wong
2022-03-18 22:12 ` Darrick J. Wong
2022-03-22 6:28 ` xuyang2018.jy
2022-03-22 6:28 ` xuyang2018.jy
2022-07-06 9:37 ` xuyang2018.jy
2022-07-07 18:04 ` Petr Vorel
2022-07-08 14:37 ` Christian Brauner
2022-07-11 3:56 ` xuyang2018.jy
2022-07-11 5:25 ` Petr Vorel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.