当前位置: 技术问答>linux和unix
初学Linux,问几个很弱的问题,在线等待(~~~~~~大家帮忙啊)
来源: 互联网 发布时间:2015-07-08
本文导语: 1. 文件信息结构 struct stat中有个 mode_t st_mode; 我知道它是个unsigned int 16位bits 7+9 高7(??)存放文件类型 七种可以用S_ISDIR(mode)判断出 低9(3+3+3)分别为用户,组,其他的读写执行位rwx 有时候ls -l可以看到 -wxS...
1. 文件信息结构 struct stat中有个 mode_t st_mode;
我知道它是个unsigned int 16位bits
7+9
高7(??)存放文件类型 七种可以用S_ISDIR(mode)判断出
低9(3+3+3)分别为用户,组,其他的读写执行位rwx
有时候ls -l可以看到 -wxSwx---
我知道S是
S_ISUID 执行时设置-用户-ID
S_ISGID 执行时设置-用户-ID
中的一种,但是它能从mode_t st_mode中判断出吗?在第几位?如果在那(3+3+3)的每个3的第一位,那第一位岂不是可以为r,-,S,三种情况也不能用一位表现出来啊
另外
S_ISVTX 始终保存正文在交换区(粘住位)在哪里体现
2。知道文件的uid ,gid怎么得到它的用户名和Group Name,应该有函数吧??
3。改变i节点是个什么概念,什么时候改变??
小弟先谢为敬!
我知道它是个unsigned int 16位bits
7+9
高7(??)存放文件类型 七种可以用S_ISDIR(mode)判断出
低9(3+3+3)分别为用户,组,其他的读写执行位rwx
有时候ls -l可以看到 -wxSwx---
我知道S是
S_ISUID 执行时设置-用户-ID
S_ISGID 执行时设置-用户-ID
中的一种,但是它能从mode_t st_mode中判断出吗?在第几位?如果在那(3+3+3)的每个3的第一位,那第一位岂不是可以为r,-,S,三种情况也不能用一位表现出来啊
另外
S_ISVTX 始终保存正文在交换区(粘住位)在哪里体现
2。知道文件的uid ,gid怎么得到它的用户名和Group Name,应该有函数吧??
3。改变i节点是个什么概念,什么时候改变??
小弟先谢为敬!
|
S_IFMT 0170000 bitmask for the file type bitfields
S_IFSOCK 0140000 socket
S_IFLNK 0120000 symbolic link
S_IFREG 0100000 regular file
S_IFBLK 0060000 block device
S_IFDIR 0040000 directory
S_IFCHR 0020000 character device
S_IFIFO 0010000 fifo
S_ISUID 0004000 set UID bit
S_ISGID 0002000 set GID bit (see below)
S_ISVTX 0001000 sticky bit (see below)
S_IRWXU 00700 mask for file owner permissions
S_IRUSR 00400 owner has read permission
S_IWUSR 00200 owner has write permission
S_IXUSR 00100 owner has execute permission
S_IRWXG 00070 mask for group permissions
S_IRGRP 00040 group has read permission
S_IWGRP 00020 group has write permission
S_IXGRP 00010 group has execute permission
S_IRWXO 00007 mask for permissions for others (not in group)
S_IROTH 00004 others have read permission
S_IWOTH 00002 others have write permisson
S_IXOTH 00001 others have execute permission
st_mode的所有位的解释都在这里了,呵呵。
setuid,setgid,stick位都是在高位的。
根据uid,gid直接查/etc/passwd和/etc/group就可以得到名字了。
S_IFSOCK 0140000 socket
S_IFLNK 0120000 symbolic link
S_IFREG 0100000 regular file
S_IFBLK 0060000 block device
S_IFDIR 0040000 directory
S_IFCHR 0020000 character device
S_IFIFO 0010000 fifo
S_ISUID 0004000 set UID bit
S_ISGID 0002000 set GID bit (see below)
S_ISVTX 0001000 sticky bit (see below)
S_IRWXU 00700 mask for file owner permissions
S_IRUSR 00400 owner has read permission
S_IWUSR 00200 owner has write permission
S_IXUSR 00100 owner has execute permission
S_IRWXG 00070 mask for group permissions
S_IRGRP 00040 group has read permission
S_IWGRP 00020 group has write permission
S_IXGRP 00010 group has execute permission
S_IRWXO 00007 mask for permissions for others (not in group)
S_IROTH 00004 others have read permission
S_IWOTH 00002 others have write permisson
S_IXOTH 00001 others have execute permission
st_mode的所有位的解释都在这里了,呵呵。
setuid,setgid,stick位都是在高位的。
根据uid,gid直接查/etc/passwd和/etc/group就可以得到名字了。