权限管理


权限和用户管理

Linux中的文件或目录的权限和用户及用户组关联很大,Linux中每个文件或目录都有一组共9个基础权限位,每三个字符被分为一组,他们分别是属主权限位(占三个字符)、属组权限位(占三个字符)、其他用户权限位(占三个字符)比如 rwxr-xr-x linux中正是这9个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。

每种身份,又对应了3种权限:r(readable)、w(writeable)、x(excutable)

ipcjszt20190119-04


修改权限的命令

# change mode
chmod [选项] 权限 文件名

## 数字修改方式        
[root@ldcentos7 ~]# touch 611.425
[root@ldcentos7 ~]# ll 611.425 
-rw-r--r--. 1 root root 0 Apr 14 05:03 611.425
[root@ldcentos7 ~]# chmod 777 611.425 
[root@ldcentos7 ~]# ll 611.425 
-rwxrwxrwx. 1 root root 0 Apr 14 05:03 611.425

## ugoa + -模式
[root@ldcentos7 ~]# chmod u+r 611.425 
[root@ldcentos7 ~]# ll 611.425 
-r--------. 1 root root 0 Apr 14 05:03 611.425
[root@ldcentos7 ~]# chmod g+w 611.425 
[root@ldcentos7 ~]# ll 611.425 
-r---w----. 1 root root 0 Apr 14 05:03 611.425
[root@ldcentos7 ~]# chmod +x 611.425 
[root@ldcentos7 ~]# ll +x 611.425 
ls: cannot access +x: No such file or directory
-r-x-wx--x. 1 root root 0 Apr 14 05:03 611.425


权限之间的相互配合

##  对文件的影响
当文件只有r权限时,可以查看内容,不能写入,不能执行
当文件只有w权限时,不能查看,只能写入,不能执行
当文件只有x权限时,不能查看,不能写入,不能执行
当文件只有rw权限时,可以查看,可以写入,不能执行
当文件只有rx权限时,可以查看,不能写入,可以执行
当文件只有wx权限时,不能看,能写入,不能执行
当文件有rwx权限时,可以查看,可以写入,可以执行
x权限不能单独出现,需要配合r权限使用,也不能配合w(因为没有读取权限,就不知道文件内容,所以没法执行
## 对目录的影响
当目录权限为---时,不能查看,不能进入,不能拷贝,不能移动,不能创建,不能删除
当目录权限为r时,能查看目录下的文件名(看不到文件属性),不能进入,不能拷贝,不能移动,不能创建,不能删除
当目录权限为w时,不能查看,不能进入,不能拷贝,不能移动,不能创建,不能删除
当目录权限为x时,不能查看,不能进入,不能拷贝,不能移动,不能创建,不能删除
当目录权限为rw时,能查看目录下的文件名(看不到文件属性),不能进入,不能拷贝,不能移动,不能创建,不能删除
当目录权限为rx时,可以查看,能进入,能拷贝,不能移动,不能创建,不能删除
当目录权限为wx时,不能查看,能进入,能拷贝,能移动,能创建,能删除
## 目录权限,必须两两组合使用
## 目录权限,必须组合x权限使用
## 目录权限,一般情况下,普通用户,只给rx,超级用户 rwx

文件属主的修改

## change owner
chown [选项] 属主:属组 文件名
## 修改属主和属组
[root@localhost ~]# chown zls:zls student.txt
[root@localhost ~]# chown root.root student.txt
## 属主不变,修改属组
[root@localhost ~]# chown :tls student.txt
## 属组不变,修改属主
[root@localhost ~]# chown zls student.txt
特殊权限
一个用户,创建出来的文件,不一定权限属于他的主组,newgrp只要切换过组,在哪个组工作,创建出的文件
属组就属于哪个
-----
## 修改目录属主和属组下面文件权限不变
[root@localhost ~]# chown www.www /code/
## 递归修改目录的属主和属组------      -R (递归)
[root@localhost ~]# chown -R www.www /code/