权限是为了确定某一职责的有效履行,在操作系统中的权限是为了确保操作系统的安全和存储数据的完整性;文件权限的设定是为了确定哪些用户可以访问那些文件,如果可以访问以何种身份对文件进行访问,访问文件时可以执行那些权限等.
下面详细说一下用户和文件各自的权限及这些权限的使用方法:
一、文件的权限:
1.文件的一般权限
-r 可读
-w 可写
-x 可执行
- 无任何权限
2.文件的特殊权限:
-t 独立管理权限;一般用在FTP服务器中,拥有次权限的目录下边的文件,只有创建者有对这个文件处置的权限
-s 执行文件时具有文件属主、属组的权限
SUID
SGID
3.文件权限的表示方式:
分为四段,十个字符:
文件类型:属主用户权限u:属组用户权限g:其他用户权限o
文件类型有:
- 普通文件
d 目录文件
b 块设备文件
c 字符设备文件
g 套接字文件
l 链接字文件
每种用户的访问权限分别以三个字符表示:rwx或-
-rwx-rw-r--:这个普通文件的权限表示文件属主拥有读写执行的权限,文件属组用户具有读写权限,其他用户只有可读的权限
drwx--x--x:这个目录文件的权限表示这个目录只有属主具有所有权限,其他用户只有可执行的权限;一般用在服务器中,每个普通用户的家目录中只有用户自己拥有所有权限,其他用户无任何权限
4.文件权限的数字表示方法:
r 2^2=4
w 2^1=2
x 2^0=1
- 0=0
t 1
s 2,4(gid)
二、文件权限管理器:chmod
Usage:# chmod {ugoa}+-={rwx} 文件名

# chmod u+w test
对test文件的属主添加可写的权限
# chmod a-x test
将所有用户对文件test的可执行权限删除
# chmod ug+x test
对文件test的属主和属组添加可执行权限
# chmod 644 test
将文件test的权限更改为644,即属主拥有读写权限,属组和其他用户只有可读权限;此处切记要将三种用户的权限写全
如果要使用数字对文件添加特殊权限,则需要四位数字表示:
# chmod 1755 dir
将目录dir的权限更改为755,并添加特殊权限,此目录下的文件只有创建者有处置权限
# chmod u+s test OR
# chmod 4764
# ls -l test
-rwsrw-r-- 此时文件属主的执行权限x更改为s
对文件test设置特殊权限suid,使得在文件执行时可以使用文件属主的权限;如/etc/passwd,普通用户在更改自己的密码时,对次文件就有了属主的权限;一般不建议使用此权限,范围太大,安全性不高,建议使用sgid对用户添加这个特殊权限
# chmod g+s test OR
# chmod 2774 test
对文件test设置特殊权限sgid,使得在文件执行时可以使用文件属组的权限;一般用在服务器上,设置一组用户对某执行文件拥有可执行权限,并给与sgid权限,以后就不用登录管理员即可完成某些任务,确保了服务器的安全性
三、用户权限:
超级管理员root权限,root在系统中对文件拥有读写执行等一切权限,由于管理员权限太大,所以在实际工作中,不建议经常使用管理员root用户对服务器进行管理,而是对普通用户进行权限下放来完成系统管理任务
普通用户的权限:
在linux操作系统中,一切皆文件(各种服务的配置文件都已ASCII码来保存),所以普通用户完成系统管理任务就是对文件的访问和更改
r,w,x,t,s等等
四:文件属主和属组
属主属组管理器:chown
Usage:# chown username filename 只更改文件属主
# chown :groupname filename 只更改文件属组
# chown username:groupname filename 更改文件属主和属组
此时我们看到文件12.sh的属主和属组都是root,我们就已12.sh为例
# chown mmm 12.sh
更改文件12.sh的属主为mmm
# chown :meng 12.sh
更改文件12.sh的属组为meng
# chown mmm:meng 12.sh
更改文件12.sh的属主为mmm,属组为meng
如果更改的文件是目录,可以使用-R选项,将目录下的所有文件全部更改。