- 1.什么是权限
- 我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围,
- 或者说,权限是指某个特定的用户具有特定的系统资源使用权力
- 为什么要设定权限?可以赋于某个用户或组 -- 能够以何种方式 -- 访问某个文件
- 如何修改一个文件的权限?
- Linux下使用chmod命令来变更权限,root用户可以变更所有文件的权限,而普通用户仅能变更属于自己的文件。
- 2.权限与用户之间的关系
- 在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),
- 每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
- 字母 含义 对应数字
- r (read) 读权限 4
- w(write) 写权限 2
- x(excut) 执行权限 1
- - (没有权限) 没有权限 0
- 用户对文件资源,有三种角色u(user)g(group)o(other) 。a(all)
- 当一个用户访问文件流程如下:
- 1.判断用户是否为文件所有者,如果是则按所有者的权限进行访问
- 2. 判断用户是否为文件所有组成员,如果是则按组的权限进行访问
- 3. 如果不是所有者,也不是该文件所属组,则按匿名权限进行访问
- 查看权限
- 1.看他是否拥有属主权限 如果是则按照属主权限执行
- 2.判断他是否有属组的权限 如是是则按照属组权限执行
- 3.判断他是否有其他权限 如果是则按照其他权限执行
- 3.如何设置权限
- 使用chmod设定权限
- -R 递归修改
- 1) ugao
- 语法:chmod ugoa +-=rwx filename
- touch file 创建文件
- chmod a=rwx file 给所有人添加读写执行权限
- chmod a-rwx file 给所有人取消读写执行权限(取消所有的权限)
- chmod u=rwx,g=rw,o=- file 属主读写执行权限,属组读写权限,其他人无权限
- chmod ug=rwx,o=r file 属主与属组读写执行权限,其他人读权限
- 2)数字
- 语法: chmod nnn filename
- touch file 创建文件
- chmod 644 file 给属主读写权限,给属组读权限,给其他人读权限
- chmod 600 file 给属主读写权限,给属组和其他人无权限
- 针对目录设定权限
- mkdir dir 创建目录
- chmod 777 dir 修改目录允许所有人访问
- chmod -R 755 dir 修改目录及子目录权限
- 案例
- 1.创建测试文件 (默认文件其他用户仅有读权限)
- 测试其他读权限(仅有读权限)
- touch /tmp/file10.txt
-
- 并在vi /tmp/file10.txt 里面输入 123456 123
-
- 切换普通用户 显示文件内容
- [zmj@localhost ~]$ vi /tmp/file10.txt 1.使用vi修改文件内容 ,无法修改提示是一个只读文件
- [zmj@localhost ~]$ echo date >file10.txt 2.使用echo输入完成后,文件里面没有显示echo的内容,表示没有输入到文件里面,再次证明文件对其他人是只读权限
- [zmj@localhost ~]$ cat /tmp/file10.txt 查看文件,文件内容没有发生改变,
- 123456
- 123
-
-
- 在root用户下,给其他添加写权限(读写权限)
- 使用root用户给其他rw权限
- chmod o=rw file10.txt
-
- 使用普通用户打开/tmp/file10.txt文件 已经拥有读写的权限了
- vim file10.txt
- echo 123 >> file10.txt
-
- 在root用户下,给其他增加执行权限(读写执行权限)
- chmod o+x /tmp/file10.txt
-
- ll /tmp/file10.txt 在普通用户下面文件已增加执行权限,绿色字体表示可执行文件
-
- 在root用户下,设置只有执行权限(仅有执行权限)
- 在root用户下,修改chmod o=x /tmp/file10.txt
- 在root修改只有执行权限后,普通用户对文件就只有执行的权限
- 在普通用户下验证
-
- 在root用户下,设置只有写权限(仅有写权限)
- 在root修改只有写权限后,普通用户对文件就只有写的权限
- chmod o=w /tmp/file10.txt
-
- vi /tmp/file10.txt 修改文件内容
-
- 总结rwx对文件的影响
- 读取权限(r)具有读取阅读文件内容权限
- 1.只能使用查看类命令cat、head、tail、less、more等
- 写入权限(w)具有新增、修改文件内容的权限
- 1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
- 2.使用echo命令重定向的方式可以往文件内写入数据,>>可以进行追加
- 3.不能删除文件,因为删除文件看的不是文件的属性,需要看上级目录是否有w的权限
- 执行权限(x)具有执行文件的权限
- 1.如果普通用户需要执行文件,需要配合r权限
- 目录权限测试案例
- 测试目录只读权限
- [root@localhost ~]# mkdir /test 创建目录
- [root@localhost ~]# echo "test" > /test/test1.txt 把test输入发到test目录下的test文件里面
- [root@localhost ~]# ll -d /test 显示test里面的内容
- drwxr-xr-x. 2 root root 23 9月 7 01:12 /test (默认目录其他有读和执行权限)
- [root@localhost ~]# chmod o=r /test 修改目录只读权限
- [root@localhost ~]# ll -d /test 显示test里面的内容
- drwxr-xr--. 2 root root 23 9月 7 01:12 /test
-
- 测试目录只写权限
- 在root用户下修改其他只写权限
- [root@localhost ~]# chmod o=w /test
- [root@localhost ~]# ll -d /test
- drwxr-x-w-. 2 root root 23 9月 7 01:12 /test
-
- 测试目录只执行权限
- 在root用户下修改目录只执行权限
- [root@localhost ~]# chmod o=x /test
- [root@localhost ~]# ll -d /test
- drwxr-x--x. 2 root root 23 9月 7 01:12 /test
- 在普通用户下已有可以执行目录的权限
-
- 测试目录写执行权限
- 在root用户下修改目录写执行权限
- [root@localhost ~]# chmod o=wx /test
- [root@localhost ~]# ll -d /test
- drwxr-x-wx. 2 root root 23 9月 7 01:12 /test
- 在普通用户下验证
- [zmj@localhost test]$ cd /test/ 执行权限
- [zmj@localhost test]$ ls /test/
- ls: 无法打开目录/test/: 权限不够
- [zmj@localhost test]$ touch /test/test2.txt 可以创建文件
- [zmj@localhost test]$ rm -f /test/test1.txt 可以删除和重命名
-
- 对目录有写权限,对文件有读写执行权限(对目录有w,对文件有rwx)
- 在root用户下修改目录下的文件权限
- [root@localhost ~]# chmod 777 /test/test1.txt
- [root@localhost ~]# ll -d /test
- drwxr-x-wx. 2 root root 40 9月 7 01:47 /test
- [root@localhost ~]# ll /test/test1.txt
- -rwxrwxrwx. 1 root root 0 9月 7 01:47 /test/test1.txt
- 在普通用户下验证
- [zmj@localhost test]$ cat /test/test1.txt
- [zmj@localhost test]$ rm -f /test/test1.txt
-
- 对目录有写权限,对文件没有任何权限(对目录有w,对文件没有任何权限
- 在root用户下修改目录下的文件权限
- [root@localhost ~]# touch /test/test.txt
- [root@localhost ~]# chmod 777 /test/
- [root@localhost ~]# chmod 000 /test/test.txt
- [root@localhost ~]# ll -d /test
- drwxrwxrwx. 2 root root 39 9月 7 01:59 /test
- [root@localhost ~]# ll -d /test/test.txt
- ----------. 1 root root 0 9月 7 01:59 /test/test.txt
- 在普通用户下验证
- [zmj@localhost test]$ cat /test/test.txt
- cat: /test/test.txt: 权限不够
- [zmj@localhost test]$ rm -f /test/test.txt
- [zmj@localhost test]$ touch /test/test1.txt
-
- 总结:rwx对目录的影响
- 目录只有r权限: 具有浏览目录及子目录权限
- 1.能使用ls命令浏览目录及子目录, 同时会提示权限拒绝
- 2.能使用ls -l命令浏览目录及子目录, 会带问号,同时只能看到文件名
- 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限
- 目录只有w权限:具有增加、删除或修改目录内文件名权限(需要x配合)
- //注意:如果目录有w权限, 可以在目录创建文件, 可以删除目录中的文件(跟文件权限无关)
- 不能进入目录、不能复制目录、不能删除目录、不能移动目录
- 执行权限(x) 目录只有x权限
- 1.只能进入目录
- 2.不能浏览、复制、移动、删除
- Linux权限总结与注意事项
- 文件r权限, 只给用户查看,无其他操作
- 文件rw权限, 可以查看和编辑文件内容,删除需要看上级目录的权限有没有w
- 文件rx权限, 允许查看和执行文件、但不能修改文件内容
- 文件rwx权限, 能读,能写,能执行,删除需要看上级目录的权限有没有w·
- 目录rx权限, 允许浏览目录内文件以及子目录, 不允许创建、删除文件和目录
- 目录wx权限, 能进入目录,能删除内容,能写入内容,但是无法浏览目录
- 目录rw权限, 能浏览目录,不能写,无法进入目录
- PS: 文件的 x权限小心给予,目录的 w权限小心给予。
- PS: 文件通常设定的权限是644,目录设定的权限是755
- 文件属主属组
- 在Linux中如何变更一个文件或者一个资源的属主和属组呢,可以使用chown、chgrp命令实现。
- chown能设置属主和属组,chgrp仅能设置属组。(所以用哪个你懂的)
- chown: Linux中用来改变某个文件属主的命令, 如漫画中所示, 将某个”资源”(门)的访问权限给予别人。
- (卖房)
- chmod: Linux中用来改变某个文件的访问模式的命令, 如漫画中所示, chmod 777会将大门敞开, 谁都可
- 以进出。(租房)
- rm: cannot remove ‘/test/test.txt’: Permission denied
- #chown 更改属主以及属组
- -R:递归修改
- 语法: chown [-R] user[.|:]group filename
- #准备环境,创建文件和目录
- # mkdir dir/test1 && touch dir/file
- #示例1: 修改所属主为bin
- # chown bin dir/
- #示例2: 修改所属组为adm
- # chown .adm dir/
- http://www.jisupdfeditor.com/
- #示例3: 递归修改目录及目录下的所有文件属主和属组
- # chown -R root.root dir/
Linux 权限管理
最新推荐文章于 2025-02-11 16:45:56 发布