Sponsored Content
Top Forums Programming File date/time modification and permissions Post 302939481 by Pug on Wednesday 25th of March 2015 08:29:42 PM
Old 03-25-2015
Wrench File date/time modification and permissions

First, oh great Unix gurus, forgive if this is a stupid question.

Unix/Linux is not my main thing but I have been programming in C/C++ for many years. I will do my best to be specific.

I have a program in C/C++ that needs to modify the time of a given file. Currently I do this using utime() passing it a filespec and an FTIME structure (I get the time of other files using ustat elsewhere).

This code works fine when there are no permission issues (hence the title), so I think it is safe to say I am using these functions correctly.

However, when the file to be modified was created by root and the user running my program is (in some way) not as privileged in the permissions area, then utime() call fails with errno = 1.

What I don't understand is why it fails if the file is set for RW for User, Group and World. Even though user X running the program is not root, I thought they can still write to it because root has it open to the world for writing. What am I missing here?

If the file is owned by user X it works or if root is the user it works, but if they don't match it does not. I would expect it to work for all users if the file is writable for everyone.

Should I be using a different method? I did think is was odd that I could call utime without opening the file to get a file handle first.

Someone said it is because the containing directory is hwere the write permissions have to be, but I tried making the folder RW for world too.

Please enlighten me to the underlying issue here. I want to understand this.

Thanks.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

File modification time

Does anyone know how to display the time with seconds of when a file was last modified. I can get hour & minutes but would also like seconds. --Running AIX (1 Reply)
Discussion started by: edog
1 Replies

2. UNIX for Dummies Questions & Answers

command for modification date of a file

Good morning, I would like to find all files of a certain type and display their name as well as their modification date. In order to do this, I would do the following: find ./ -name *.csv | ???????? My question: what to put after the pipe instead of the question marks? Is there a basic... (5 Replies)
Discussion started by: scampsd
5 Replies

3. UNIX for Dummies Questions & Answers

How to change the file modification time of a file on nfs mount point

Hi I am accessing a file on nfs mounted device, after completing using of the file, i am tring to restore the access time and modification times of the file. So i got the previous modified time of the file using stat() function and trying to set the date and time for the file, To set these... (6 Replies)
Discussion started by: deepthi.s
6 Replies

4. Shell Programming and Scripting

Displaying the Last Modification Time of a specific file

How can I get and display the last modification time of a file? in scripting or specifically using Batch file I want this info for me to determine whether an image has been edited or not by using the last modification time and compare it to our stored date of modification. can somebody help... (5 Replies)
Discussion started by: jaque18
5 Replies

5. Shell Programming and Scripting

ls -e to find out File modification time in secs

Hi All, I would like to know the file modification time till seconds in Unix. So I tried ls -e and it worked fine. This Solaris 5.10 -rw-rw-r-- 1 test admin 22 Sep 12 11:01:37 2008 test_message But I am not able to run the same command in SOlaris 5.6 and also in AIX/HP Is there... (3 Replies)
Discussion started by: rahulkav
3 Replies

6. Shell Programming and Scripting

File modification time comparison

Hi All, I have two files (given below) each exists under different paths. I want to compare the modification time stamp of file1.txt is lessthan the modification time of file2.txt. month1=`ls -l file1.txt | awk '{ print $6}'` date1=`ls -file1.txt | awk '{ print $7}'` time1=`ls... (1 Reply)
Discussion started by: Arunprasad
1 Replies

7. UNIX for Dummies Questions & Answers

Need Modification Time of a file

Hi all, I need the modification time of a file on a particular day say 3 days before. I just don't want the last modification time. I need all the modification times on a particualar day. Is there anyway to do it? Kindly help. Could anyone tell me where the modification time is stored?... (1 Reply)
Discussion started by: vidhyab
1 Replies

8. UNIX for Dummies Questions & Answers

How do you get the last modification date of a file?

I'm trying to get the date output to be in the form yyyy-mm-dd (e.g. 2013-01-18) !/bin/sh modDate=$(stat -c %y $1) echo $modDate >> $1 When I run this on another file (by typing ./dateScript theFile.txt), I keep getting this message: stat: illegal option -- c What's wrong with my code... (2 Replies)
Discussion started by: Nate18
2 Replies

9. Shell Programming and Scripting

How to change modification time of file?

Explain it with proper e.g (4 Replies)
Discussion started by: sidpatil
4 Replies

10. Shell Programming and Scripting

Subtract a file's modification date with current date

SunOS -s 5.10 Generic_147440-04 sun4u sparc SUNW,SPARC-Enterprise Hi, In a folder, there are files. I have a script which reads the current date and subtract the modification date of each file. How do I achieve this? Regards, Joe (2 Replies)
Discussion started by: roshanbi
2 Replies
utime(2)							System Calls Manual							  utime(2)

NAME
utime() - set file access and modification times SYNOPSIS
DESCRIPTION
The system call sets the access and modification times of the file to which the path argument refers. If times is a NULL pointer, the access and modification times of the file are set to the current time. A process must be the owner of the file or have write permission on the file to use in this manner. The following times in the structure defined in are measured in seconds since 00:00:00 UTC (Coordinated Universal Time), January 1, 1970. time_t actime; /* access time */ time_t modtime; /* modification time */ Security Restrictions If times is not a NULL pointer, times is interpreted as a pointer to a utimbuf structure, and the access and modification times are set to the values contained in the designated structure. Only the owner of the file or a user with the privilege can use this way. See privileges(5) for more information about privileged access on systems that support fine-grained privileges. RETURN VALUE
returns the following values: Successful completion. Failure. is set to indicate the error. ERRORS
If fails, is set to one of the following values. Search permission is denied by a component of the path prefix. The effective user ID is not a user with the privilege, and not the owner of the file, times is a NULL pointer, and write access is denied. times is not a NULL pointer, and it points outside the process's allocated address space. The reliable detection of this error is implementation-dependent. path points outside the process's allocated address space. The reliable detection of this error is implementation-depen- dent. times is not a NULL pointer, and access time or modification time or both are negative. The length of the specified path name exceeds bytes, or the length of a component of the path name exceeds bytes while is in effect. The named file does not exist. A component of the path prefix is not a directory. The effective user ID is not a user with the privilege, and not the owner of the file, and times is not a NULL pointer. The file system containing the file is mounted read-only. DEPENDENCIES
NFS may return when invoked on a remote file owned by a superuser, or users with and privileges, even if the invoking user has write permission on the file. See privileges(5) for more information about privileged access on systems that support fine-grained privileges. SEE ALSO
touch(1), stat(2), privileges(5). STANDARDS CONFORMANCE
utime(2)
All times are GMT -4. The time now is 08:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy