02-02-2010
The rules for chown, chmod and touch are there in unix by design.
Unfortunately the file permissions do not stop someone who has write access to both directory and file from renaming or deleting a file which they do not own! This could help us though.
Depending on the local rules, here is an idea for a circumvention. It is a way of changing the last modification timestamp (ls -la). As a side effect it alters the inode timestamp (ls -lac) to the current time.
If suitable, try this on a test file before going near live data and always consider the effect on backup software when altering file timestamps.
1) Rename the file to a new name.
2) Copy the renamed file back to its correct name. The copy file is now owned by yourself.
Use chmod to correct the permissions.
Use "touch -t" to change the timestamp.
Use chown to revert the file ownership.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I would like to know the difference between the real user-id and the
effective user-id. If user-A runs a program owned by user-B then
which is the real user-id and which is the effective user-id ? (1 Reply)
Discussion started by: sundaresh
1 Replies
2. Shell Programming and Scripting
i want to find the files which are modified in last 30 to 120 minutes
i am using "find . -mmin +30 -mmin -120 "
it is giving me the error
find: bad option -mmin
find: path-list predicate-list
can somebody help me out .
Thank you (5 Replies)
Discussion started by: Prat007
5 Replies
3. UNIX for Dummies Questions & Answers
I have a folder with many subdirectories and i need to set the modified date to today for everything in it. Please help, thanks!
I tried something i found online, find . -print0 | xargs -r0 touch
but I got the error: xargs: illegal option -- r (5 Replies)
Discussion started by: glev2005
5 Replies
4. Shell Programming and Scripting
Hey guy,
how to make the log.txt file and record date and time when ls, touch and find command run?
Thanks
Boly (13 Replies)
Discussion started by: chenboly
13 Replies
5. Red Hat
Hi All,
I got this userid apache with the same userid and groupid and /sbin/nologin and the /www/a home folder is empty.
Can I just delete this userid? How can I investigate if userid have something to do with the application?
Thanks for any comment you may add. (1 Reply)
Discussion started by: itik
1 Replies
6. Shell Programming and Scripting
Hi,
1#what is the command to get name associated with userid?
2#I am using unix on Mainframes thru OMVS.
So any one know to to capture TSO command output to a variable on OMVS environment.
I tried with below script, but its not working!
#!/bin/ksh
output=$(tso whois PA1234)
echo... (6 Replies)
Discussion started by: prashant43
6 Replies
7. UNIX for Dummies Questions & Answers
questions:
a. where can I customized the password of userid in solaris? say I wanted 10digits long, all caps?
thanks (4 Replies)
Discussion started by: lhareigh890
4 Replies
8. Shell Programming and Scripting
Hi,
I wish to change time stamp of a directory with all its subdirectories and files on server.
I am able to find following two ways but want to know which will be the better one. I have not tried anyone of them because I am not sure if it can effect my data:
find * -type d -exec touch... (5 Replies)
Discussion started by: bioinfo
5 Replies
9. UNIX for Advanced & Expert Users
Here is the part of the script: I have modified the file name.:)
SSFILE=${My_HOME_DIR}/log/my_file_ss.log
export MM=`date '+%m'`
export DD=`date '+%d'`
export HH=`date '+%H'`
export MIN=`date '+%M'`
export HOURAGO=`echo ${HH} -1 |bc `
echo $HOURAGO
export TTIME=${MM}${DD}${HOURAGO}00... (5 Replies)
Discussion started by: N1a_Raider
5 Replies
10. Red Hat
Hi,
I am facing a problem with the command - TOUCH on Linux.
See the example below:
File on Linux: rw-rw-r-- user1 user1 Jan 01 09:00 test.txt
The file - test.txt was created by the user - user1.
Now, I want to change the date and time, but using other user - user2
The user2... (12 Replies)
Discussion started by: brjohnsmith
12 Replies
STAT(3) 1 STAT(3)
stat - Gives information about a file
SYNOPSIS
array stat (string $filename)
DESCRIPTION
Gathers the statistics of the file named by $filename. If $filename is a symbolic link, statistics are from the file itself, not the sym-
link.
lstat(3) is identical to stat(3) except it would instead be based off the symlinks status.
PARAMETERS
o $filename
- Path to the file.
RETURN VALUES
stat(3) and fstat(3) result format
+--------+--------------------------------------+---+
|Numeric | | |
| | | |
| | Associative | |
| | | |
| | Description | |
| | | |
+--------+--------------------------------------+---+
| 0 | | |
| | | |
| | dev | |
| | | |
| | device number | |
| | | |
| 1 | | |
| | | |
| | ino | |
| | | |
| | inode number * | |
| | | |
| 2 | | |
| | | |
| | mode | |
| | | |
| | inode protection mode | |
| | | |
| 3 | | |
| | | |
| | nlink | |
| | | |
| | number of links | |
| | | |
| 4 | | |
| | | |
| | uid | |
| | | |
| | userid of owner * | |
| | | |
| 5 | | |
| | | |
| | gid | |
| | | |
| | groupid of owner * | |
| | | |
| 6 | | |
| | | |
| | rdev | |
| | | |
| | device type, if inode device | |
| | | |
| 7 | | |
| | | |
| | size | |
| | | |
| | size in bytes | |
| | | |
| 8 | | |
| | | |
| | atime | |
| | | |
| | time of last access (Unix timestamp) | |
| | | |
| 9 | | |
| | | |
| | mtime | |
| | | |
| | time of last modification (Unix | |
| | timestamp) | |
| | | |
| 10 | | |
| | | |
| | ctime | |
| | | |
| | time of last inode change (Unix | |
| | timestamp) | |
| | | |
| 11 | | |
| | | |
| | blksize | |
| | | |
| | blocksize of filesystem IO ** | |
| | | |
| 12 | | |
| | | |
| | blocks | |
| | | |
| | number of 512-byte blocks allocated | |
| | ** | |
| | | |
+--------+--------------------------------------+---+
* On Windows this will always be 0.
** Only valid on systems supporting the st_blksize type - other systems (e.g. Windows) return -1.
In case of error, stat(3) returns FALSE.
Note
Because PHP's integer type is signed and many platforms use 32bit integers, some filesystem functions may return unexpected results
for files which are larger than 2GB.
ERRORS
/EXCEPTIONS
Upon failure, an E_WARNING is emitted.
EXAMPLES
Example #1
stat(3) example
<?php
/* Get file stat */
$stat = stat('C:phpphp.exe');
/*
* Print file access time, this is the same
* as calling fileatime()
*/
echo 'Access time: ' . $stat['atime'];
/*
* Print file modification time, this is the
* same as calling filemtime()
*/
echo 'Modification time: ' . $stat['mtime'];
/* Print the device number */
echo 'Device number: ' . $stat['dev'];
?>
Example #2
Using stat(3) information together with touch(3)
<?php
/* Get file stat */
$stat = stat('C:phpphp.exe');
/* Did we failed to get stat information? */
if (!$stat) {
echo 'stat() call failed...';
} else {
/*
* We want the access time to be 1 week
* after the current access time.
*/
$atime = $stat['atime'] + 604800;
/* Touch the file */
if (!touch('some_file.txt', time(), $atime)) {
echo 'Failed to touch file...';
} else {
echo 'touch() returned success...';
}
}
?>
NOTES
Note
Note that time resolution may differ from one file system to another.
Note
The results of this function are cached. See clearstatcache(3) for more details.
Tip
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to "Supported Protocols and Wrappers" to determine
which wrappers support stat(3) family of functionality.
SEE ALSO
lstat(3), fstat(3), filemtime(3), filegroup(3).
PHP Documentation Group STAT(3)