02-09-2012
getting the full permissions of a file
Hi I was wondering if it would be possible to get the full octal permissions of a file by using something in the stat() system call. Can this be done without going through all of the seperate permissions (e.g. read for user, write for user .... etc.)? also how can this octal permission be changed to accomadate new permissions? (can i simply store the octal permission and then perform normal computations on it according to the permission im adding or taking away? Thanks in advance for anyone who could explain this.
9 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi All,
There was a background process running on a Solaris 2.8 machine, and appeared to have filled all available disk-space. I done a killall, and upon re-booting found that the file system had filled up, and will not boot as normal as a result. For example, I'm getting
/usr/adm/messages: No... (8 Replies)
Discussion started by: Breen
8 Replies
2. UNIX for Dummies Questions & Answers
I am running sco openserver 5.0.6 and I was wondering if I could ftp files to one of my other servers and that file have full permissions set automatically on the new server.
I have searched the internet and manned chmod chown and ftp but they only seem to talk about giving the permissions after... (7 Replies)
Discussion started by: stufine
7 Replies
3. Solaris
Hi, I just started working with UNIX on an old semi-fossilized Sun workstation which I use to process LOTS of images,however, I just started to get an error message that the file system is full and then my shell tool or/and text editor freeze up. Help? (8 Replies)
Discussion started by: Bend
8 Replies
4. Solaris
I am receving following Error message in /var/adm/messages
"NOTICE: alloc: /: file system full"
Disk space usage is as beklow:
df -k
$ Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d10 76678257 56962561 18948914 76% /
/proc ... (8 Replies)
Discussion started by: Asteroid
8 Replies
5. HP-UX
Hi,
I am a Unix Admin. I have to give the permissions to a user for creating new file in a directory in HP-Ux 11.11 system since he cannot able to create a new file in the directory.
Thanks in advance.
Mike (3 Replies)
Discussion started by: Mike1234
3 Replies
6. Red Hat
Hey all,
What do you think mostly happened in the following situation?
I have a Red Hat 5.5 server. Someone, somehow, managed to get two .nfs000.... type files that totaled over a terabyte in size. I removed them and thought things were back to normal. Then I started getting complains from... (2 Replies)
Discussion started by: geelsu
2 Replies
7. Shell Programming and Scripting
Hi, I am creating a ksh script to search for a string of text inside files within a directory tree. Some of these file are going to be read/execute only. I know to use chmod to change the permissions of the file, but I want to preserve the original permissions after writing to the file. How can I... (3 Replies)
Discussion started by: right_coaster
3 Replies
8. Red Hat
I am attempting to get a baseline of deployed RHEL 6.5 servers and need to produce a full filesystem permission settings list.....but I forgot the bloody command and am racking my brain and now have a migraine.
I just need a simple list starting at "/" right down the tree, listing the folder,... (3 Replies)
Discussion started by: strykergli250hp
3 Replies
9. AIX
AIX Version 6.1 and 7.1.
I understand that when the OS initially creates the FS and inodes, its pretty strict, but not always tuned to a 1:1 ratio. I see the same thing when adding a whole disk LV to a separate device.
It seems that when we expand a filesystem the inodes don't get tuned... (5 Replies)
Discussion started by: mrmurdock
5 Replies
LEARN ABOUT DEBIAN
stat::lsmode
lsMode(3pm) User Contributed Perl Documentation lsMode(3pm)
NAME
Stat::lsMode - format file modes like the "ls -l" command does
SYNOPSIS
use Stat::lsMode;
$mode = (stat $file)[2];
$permissions = format_mode($mode);
# $permissions is now something like `drwxr-xr-x'
$permissions = file_mode($file); # Same as above
$permissions = format_perms(0644); # Produces just 'rw-r--r--'
$permissions = format_perms(644); # This generates a warning message:
# mode 644 is very surprising. Perhaps you meant 0644...
Stat::lsMode->novice(0); # Disable warning messages
DESCRIPTION
"Stat::lsMode" generates mode and permission strings that look like the ones generated by the Unix "ls -l" command. For example, a regular
file that is readable by everyone and writable only by its owner has the mode string "-rw-r--r--". "Stat::lsMode" will either examine the
file and produce the right mode string for you, or you can pass it the mode that you get back from Perl's "stat" call.
"format_mode"
Given a mode number (such as the third element of the list returned by "stat"), return the appopriate ten-character mode string as it would
have been generated by "ls -l". For example, consider a directory that is readable and searchable by everyone, and also writable by its
owner. Such a directory will have mode 040755. When passed this value, "format_mode" will return the string "drwxr-xr-x".
If "format_mode" is passed a permission number like 0755, it will return a nine-character string insted, with no leading character to say
what the file type is. For example, "format_mode(0755)" will return just "rwxr-xr-x", without the leading "d".
"file_mode"
Given a filename, do "lstat" on the file to determine the mode, and return the mode, formatted as above.
Novice Operation Mode
A common mistake when dealing with permission modes is to use 644 where you meant to use 0644. Every permission has a numeric
representation, but the representation only makes sense when you write the number in octal. The decimal number 644 corresponds to a
permission setting, but not the one you think. If you write it in octal you get 01204, which corresponds to the unlikely permissions
"-w----r-T", not to "rw-r--r--".
The appearance of the bizarre permission "-w----r-T" in a program is almost a sure sign that someone used 644 when they meant to use 0644.
By default, this module will detect the use of such unlikely permissions and issue a warning if you try to format them. To disable these
warnings, use
Stat::lsMode->novice(0); # disable novice mode
Stat::lsMode->novice(1); # enable novice mode again
The surprising permissions that are diagnosed by this mode are:
111 => --xr-xrwx
400 => rw--w----
440 => rw-rwx---
444 => rw-rwxr--
551 => ---r--rwt
600 => --x-wx--T
640 => -w------T
644 => -w----r-T
660 => -w--w-r-T
664 => -w--wx--T
666 => -w--wx-wT
700 => -w-rwxr-T
711 => -wx---rwt
750 => -wxr-xrwT
751 => -wxr-xrwt
751 => -wxr-xrwt
755 => -wxrw--wt
770 => r------wT
771 => r------wt
775 => r-----rwt
777 => r----x--t
Of these, only 400 is remotely plausible.
BUGS
As far as I know, the precise definition of the mode bits is portable between varieties of Unix. The module should, however, examine
"stat.h" or use some other method to find out if there are any local variations, because Unix being Unix, someone somewhere probably does
it differently.
Maybe it "file_mode" should have an option that says that if the file is a symlink, to format the mode of the pointed to file instead of
the mode of the link itself, the way "ls -Ll" does.
SEE ALSO
o "http://www.plover.com/~mjd/perl/lsMode/".
o ls
o chmod
o stat
AUTHOR
Mark-Jason Dominus ("mjd-perl-lsmode@plover.com").
perl v5.10.1 1998-04-20 lsMode(3pm)