分类: LINUX
2011-07-05 23:33:31
1.whoami:查看当前用户标识
2.groups:查看用户所在组
比如:groups root:查看root用户所在组
不加参数显示当前用户所在组
3.chown:改变所有者
比如:chown root /etc/passwd /etc/sysconfig
修改/etc/passwd,/etc/sysconfig的所有者为root
只有超级用户才可以使用chown命令
-R:递归地将所有权改变应用到整个目录树
4.chgrp:改变所属组
比如:chown root /etc/passwd /etc/sysconfig
修改/etc/passwd,/etc/sysconfig的所属组为root
任何用户都可以使用chgrp命令来将文件的组所属权改为他们所属的组
-R:递归地将所属组改变应用到整个目录树
Linux分别使用三位字母(或一位数字)表示文件的所有者权限、所属组权限、所有其他用户权限
当使用ls -l
命令时,第一列显示的即为当前文件的权限集合
比如使用: ls -l /bin/bash显示如下:
-rwxr-xr-x 1 root root
890092 May 5 23:54 /bin/bash
其中第一列即表示该文件的权限属性。
第一个字母"-",表示文件类型。可选的文件类型标识有:
"-":普通文件
"d":目录
"l":符号链接
"c":字符专门设备文件
"b":块专门设备文件
"p":先进先出
"s":套接字
余下的9位每三位划分为一组分别表示所有者权限、所属组权限、其他用户权限。
于是可知普通文件/bin/bash的权限集合为:
所有者(root):rwx;所属组(root):r-x;其他用户:r-x
权限字母表示:
r:读权限(查看文件中的数据/查看目录的内容)
w:写/修改权限(修改文件以及删除/在目录内创建或删除对象)
x:执行权限(执行程序/进入目录)
权限数字表示:
---: 0
--x: 1
-w-: 2
-wx: 3
r--: 4
r-x: 5
rw-: 6
rwx: 7
故/bin/bash的权限集合的数字表示为:755
使用chmod命令可以修改对象的权限
语法:chmod [OPTION]... MODE[,MODE]... FILE...
MODE可以是如下表达式:
'[ugoa]*([-+=]([rwxXst]*|[ugo]))+'
比如:chmod +x
XX.txt:增加XX.txt的权限使所有人可执行
相反:chmod -x XX.txt:使所有人对文件XX.txt都不可执行
chmod
=rw XX.txt:修改XX.txt的权限为所有人可读写
chmod go-w
XX.txt:出去组和其他用户对XX.txt的写权限,而保留"所有者"权限不动。
chmod 0755
XX.txt:设置XX.txt的权限为rwxr-xr-x
每个文件在创建时系统都会赋一个默认的权限。这个默认权限是系统根据umask的值获得的。
在控制它输入umask显示当前默认排除的权限
比如"0022"(----r-xr-x)表示关闭文件所属组和其他人写的权限。
在这样的umask下创建的新文件将具有权限:755(-rwxr-xr-x)
为了在缺省情况下文件更安全,可以修改umask设置:
umask 0077:禁用所属组和其他用户的所有权限,而所有者权限保持不变
suid:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。代表程序的所有者运行(只能由所有者运行)。
sgid:允许程序继承程序的组所有权,而不是当前用户的程序所有权
sticky bit:这个Sticky
Bit当前只针对目录有效,对文件没有效果。SBit对目录的作用是:"在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除"
参考文章:
SUID:
文件特殊权限:SUID/SGID/Sticky Bit: