The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Bernd Petrovitsch <bernd@firmix.at>
Cc: linux-kernel@vger.kernel.org, Alexey Dobriyan <adobriyan@gmail.com>
Subject: Re: O_NOATIME and files in /proc
Date: Fri, 20 Nov 2009 13:36:51 -0800	[thread overview]
Message-ID: <20091120133651.9df2da80.akpm@linux-foundation.org> (raw)
In-Reply-To: <1258477590.16246.35.camel@tara.firmix.at>

On Tue, 17 Nov 2009 18:06:29 +0100
Bernd Petrovitsch <bernd@firmix.at> wrote:

> Hi all!
> 
> Is there a specific reason that open can not open files (at
> least /proc/noatime and /proc/cpuinfo) under /proc with NO_ATIME as the
> following program shows:
> ----  snip  ----
> {12}cat noatime.c
> 
> #define _GNU_SOURCE
> #include <stdio.h>
> #include <string.h>
> #include <errno.h>
> #include <fcntl.h>
> 
> int main(void)
> {
> 	int fd = open("/proc/uptime", O_RDONLY|O_NOATIME);
> 	if (fd == -1) {
> 		printf("fd=%d, errno=%s\n", fd, strerror(errno));
> 	} else {
> 		printf("fd=%d\n", fd);
> 	}
> 	return 0;
> }
> ----  snip  ----
> When I compile and run it, it prints
> ----  snip  ----
> {13}./noatime 
> fd=-1, errno=Operation not permitted
> ----  snip  ----
> Removing the "NO_ATIME" makes it work (of course).
> 
> I can also set the "noatime" mount flag on a remount and it shows up
> in /proc/mounts but it makes for the above no difference.
> 

I guess you're hitting the check in may_open():

	/* O_NOATIME can only be set by the owner or superuser */
	if (flag & O_NOATIME)
		if (!is_owner_or_cap(inode)) {
			error = -EPERM;
			goto err_out;
		}

This code was added in 2004 and neither the changelog nor the code
comment explain _why_ this was done (bad).  It might be recorded in the
contemporary email discussion.

I assume it was done this way under the assumption that people might
want to use atime to determine if other users have been peeking at
their junk.  Avoid permitting junk-peekers to conceal their tracks.


  reply	other threads:[~2009-11-20 21:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-17 17:06 O_NOATIME and files in /proc Bernd Petrovitsch
2009-11-20 21:36 ` Andrew Morton [this message]
2009-11-20 22:11   ` Alan Cox
2009-11-30 10:36     ` Bernd Petrovitsch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091120133651.9df2da80.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=adobriyan@gmail.com \
    --cc=bernd@firmix.at \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox