Linux 权限控制
权限管理概述
为什么要进行权限管理?
因为在生产服务器上,如果要让普通用户登录,就要给他分配合理的权限,在服务器上需要为用户严格定义权限等级,否则如果所有人都是roσt权限,权限过高容易导致岀现误操作、盗取账号等风险。
Linux文件属性及权限说明
文件权限
输入命令ls -l ,可以查看文件的权限,如:-rwxr-xr-x
每个文件针对每类访问者定义了三种主要权限。其中,第一位:代表文件类型,后面每3位代表一组权限,分别是:所有者、所属组和其他人。
文件权限分别为:读( read ),写( write ),执行( execute),简写即为(r,w,x),也可以可用数字来(4,2,1)表示,-即无权限。
注意 :
1.root账户不受文件权限的读写限制,执行权限受限制
2.用户获取文件权限的顺序:先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看
3.缺省创建的文件不可授予可执行的权限,基于最基本的安全机制,防止病毒等
对于文件和目录来说,r、w、x有着不同的作用和含义
针对文件 :
r | 读取文件内容,如cat、more、tail、head等 |
---|---|
w | 修改文件内容,如vim、echo等 |
x | 执行权限,如命令、脚本等,对除二进制程序以外的文件没什么意义 |
针对目录 :目录本质可看做是存放文件列表、节点号等内容的文件
r | 查看目录下的文件列表如ls |
---|---|
w | 删除和创建目录下的文件,如 touch、 mkdir、rm |
x | 可以cd进入目录,能査看目录中文件的详细属性,能访问目录下文件内容(基础权限) |
文件权限管理
[root@localhost ~]# **chmod** [选项] 模式 文件名
参数说明:
-
选项:-R 表示递归
-
模式:权限 字母 表示法 :[ugoa][+-=][rwx] ** 权限** 数字 表示法 :[mode=421]
-
权限数字:r-4,w-2,x-1,无权限 - 0
-
常用组合:777最高权限,644普通文件权限,755执行权限
举例:
//为文件的**所有者** 附加执行权限:
[root@localhost ~]# chmod u+x test. txt
//为**所有者** 赋予所有权限
[root@localhost ~]# chmod u=rwx test. txt
//为**所有人** (所有者、所属组、其他人)赋予所有权限
[root@localhost ~]# chmod a=rwx test. txt
//为**文件** 赋予**执行权限** :rwxr-xr-x
[root@localhost ~]# chmod 755 test. txt
改变文件或者目录所有者
[root@localhost ~]# **chown** 用户名文件名 #修改文件所有者
[root@localhost ~]# chown 所有者:所属组 文件名 #时改变所有者和所属组
参数说明:
- 选项:-R表示递归,处理指定目录及其子目录下的所有文件
举例:
//将test文件的所有者修改为icq
[root@localhost ~]# chown icq test
//修改test文件的所有者和所有组修改为:icq、 cutest
[root@localhost ~]# chown icq:icqtest test
改变文件或者目录所有组
[root@localhost ~]# **chgrp ** 用户组 文件或目录 #改变文件或目录的所属组
注意 :能更改文件或目录的所有者和所有组的用户是root
举例:
//将test.txt文件的所属组由**root** 更改为**icqtest**
[root@localhost ~]# chgrp icqtest test.txt
显示、设置文件的默认权限
[root@localhost ~]# umask [-S] #显示、设置文件的默认权限
参数说明:-S以rwx形式显示新建文件的默认权限
命令说明:
-
对于 windows而言,默认权限是从上级目录继承而来的,而 linux则是通过 umask权限设定的
-
如果用户建立文件 ,默认是没有可执行权限的 ,即权限表示为-rw-rw-rw-,即666
-
如果用户建立目录 ,默认权限是全开放的 ,即权限表示 drwxrwxrwx,即777
umask的值,默认为022,就是需要减掉的权限,比如:
建立文件时,666-022644,即rw-r—r—
建立目录时,777-022755,即drwxr-xr-x
这就是为什么我们在没有设置 umask值时,默认创建的文件和目录权限分别为644和755了
举例:
//查看默认权限
[root@localhost ~]# umask
//将新创建的目录权限设置为**rwxr-xr--** ,可以用777减去754得到**023** ,设置 umask的值为023后再创建目录
[root@localhost ~]# umask 023