文件详细信息
- 使用命令ll或ls -l 查看
- 结果分析:
文件权限构成
权限针对三类对象定义
- owner:所属者,缩写u
- group :所属组,缩写g
- other :其他人,缩写o
访问者三种权限
r:文件可读 w:文件可写 x:文件可执行 -:表示没有权限
三位一组,第一位表示文件是否可读,第二位表示文件是否可写,第三位表示文件是否可执行
rw-
r--
r--
组成模式分析
文件与目录权限含义
注意
- root账户不受文件权限的读写限制,执行权限受限制
示例
- 例1:写出下列文件的字符权限
- 764 : rwxrw-r--
- 642: rw-r---w-
- 153: --xr-x-wx
- 731: rwx-wx--x
- 例2:写出下列文件的数字权限
- r-xrw-r-- : 564
- rw--w--wx : 623
- rw-r--r-- : 644
chmod命令
作用
- chmod(change mode):修改文件或目录的权限
格式
+:加上某个权限 -:减去某个权限 =:重新赋值
a:表示所有全部与u,g,o同级意为all
# 格式1 chmod [选项] [ugoa][+-=][rwx] 文件或目录... # 格式2 chmod [选项] nnn 文件或目录...`(可看可不看)
参数
- -R:递归修改指定目录下所有文件、子目录的权限 (了解即可)
- ugoa:表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即u+g+o)
- +或-或=:表示设置权限的操作动作,+代表添加;-代表取消;=表示只赋予给定的权限,并取消原有的权限。
- rwx:用字符形式表示的所设置的权限,可以是其中一个字母或组合
- nnn:用数字表示的权限
- 单写一个数字系统会默认前面加两个00
示例
- 例1
[root@server ~]# touch t1.txt [root@server ~]# ll t1.txt -rw-r--r--. 1 root root 0 5月 6 17:29 t1.txt [root@server ~]# chmod u+x t1.txt [root@server ~]# ll t1.txt -rwxr-xr-x. 1 root root 0 5月 6 17:29 t1.txt [root@server ~]# chmod o+w t1.txt [root@server ~]# ll t1.txt -rwxr-xrwx. 1 root root 0 5月 6 17:29 t1.txt
- 例2
[root@server ~]# touch t2.txt [root@server ~]# ll t2.txt -rw-r--r--. 1 root root 0 5月 6 17:27 t2.txt [root@server ~]# chmod 777 t2.txt [root@server ~]# ll t2.txt -rwxrwxrwx. 1 root root 0 5月 6 17:27 t2.txt [root@server ~]# chmod 000 t2.txt ----------. 1 root root 0 5月 6 17:27 t2.txt
[root@server ~]# chmod 6 t2.txt
<font color='red'>会自动在6的前面进行补00,也就是说实际上设置的权限是006</font>
- 例3 (了解即可)
[root@server ~]# mkdir -p m1/m2/m3 [root@server ~]# touch m1/m2/m3/t3.txt [root@server ~]# cd m1 [root@server m1]# tree . └── m2 └── m3 └── t3.txt 2 directories, 1 file [root@server m1]# cd .. [root@server ~]# ls -ld m1 drwxr-xr-x. 3 root root 16 5月 6 17:33 m1 [root@server ~]# cd m1 [root@server m1]# ls -ld m2 drwxr-xr-x. 3 root root 16 5月 6 17:33 m2 [root@server m1]# cd m2 [root@server m2]# ls -ld m3 drwxr-xr-x. 2 root root 20 5月 6 17:34 m3 [root@server m2]# cd m3 [root@server m3]# ll t3.txt -rw-r--r--. 1 root root 0 5月 6 17:34 t3.txt [root@server ~]# chmod -R 755 m1 # 递归设置 [root@server ~]# ll m1 总用量 0 drwxr-xr-x. 3 root root 16 5月 6 17:33 m2 [root@server ~]# cd m1 [root@server m1]# ll m2 总用量 0 drwxr-xr-x. 2 root root 20 5月 6 17:34 m3 [root@server m1]# cd m2 [root@server m2]# ll m3 总用量 0 -rwxr-xr-x. 1 root root 0 5月 6 17:34 t3.txt
chown命令
作用
- 修改文件或目录的所属者和属组
格式
- 修改文件或目录的所属者
chown -参数 所有者:所属组 文件名或目录名 冒号前改所属者,冒号后改所属组 # 参数-R递归设置
示例 (改名)
[root@server m2]# cd ~ [root@server ~]# touch t4.txt [root@server ~]# ll t4.txt -rw-r--r--. 1 root root 0 5月 6 17:40 t4.txt [root@server ~]# chown fox:fox t4.txt [root@server ~]# ll t4.txt -rw-r--r--. 1 fox fox 0 5月 6 17:40 t4.txt
<font color='red'>总结:其他用户是否能够删除该文件,不是取决于该文件对其的权限设置,而是该文件的所属目录对该用户的权限设置。</font>
取消掉other用户对/test目录的r权限, ll -d /test (-d 表示查看的是目录本身)
<font color='red'>发现other用户无法ls /test</font>
<font color='red'>依次展示其他的。</font>
<font color='gree'>一旦其他人对目录可以w,那么对目录下任何人创建的文件都可以进行删除(包括root用户创建的文件)</font>
<font color='red'>链接文件的权限不可信,因为取决于源文件的权限</font>
<font color='purple'>普通用户对于系统文件无法进行改动原因是::::查看一下权限发现文件夹其他人都是没有可写w的权限</font>
新建文件权限与umask关系
- 在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask值有关
<font color='red'>第一位0表示的是特殊权限位</font>
- 新建文件的默认权限=0666-umask值即06449(rw-r--r--)(减去)
- 新建目录的默认权限=0777-umask值即0755(rwxr-xr-x)
- 权限掩码的修改是临时的(例如 umask 000 )
查看默认umask值
[root@server ~]# umask 0022 umask的值 0022 [root@server ~]# touch file1 [root@server ~]# mkdir dir1 [root@server ~]# ll -d file1 dir1 drwxr-xr-x. 2 root root 6 5月 6 18:23 dir1 # 755 -rw-r--r--. 1 root root 0 5月 6 18:23 file1 # 644
修改默认umask
[root@server ~]# umask 000 # 临时修改 [root@server ~]# touch file2 [root@server ~]# mkdir dir2 [root@server ~]# ll -d file2 dir2 drwxrwxrwx. 2 root root 6 5月 6 18:26 dir2 -rw-rw-rw-. 1 root root 0 5月 6 18:25 file2
对于一个可以执行的文件添加上suid权限后,普通用户在执行该文件时,会临时拥有该文件所有者的权限
普通用户可以使用passwd改命令,但是/etc/shadow文件对普通用户没有写的权限???
which passwd 查看命令文件的路径
ll /usr/bin/passwd
会发现在所属者的权限位置上存在s,表示suid权限
举例:普通用户不能用cat查看/etc/shadow
[gouxin@study ~]$ cat /etc/shadow cat: /etc/shadow: 权限不够 [root@study etc]# ll /usr/bin/cat -rwxr-xr-x. 1 root root 37464 5月 31 2022 /usr/bin/cat [root@study etc]# chmod u+s /usr/bin/cat [root@study etc]# ll /usr/bin/cat -rwsr-xr-x. 1 root root 37464 5月 31 2022 /usr/bin/cat
SetGID(SGID):当对一个可执行的程序文件设置了SGID后,普通用户在执行该文件时临时拥有 其所属组的权限,该权限只在程序执行过程中有效,程序执行完毕后用户恢复原有组身份
当对一个目录作设置了SGID权限后,普通用户在该目录下创建的文件的所属组,均与该目录的所 属组相同
SetGID权限会附加在所属组的 x 权限位上,所属组的 x 权限标识会变成 s
设置SetGID命令格式:chmod g+s 文件名
<font color='red'>针对目录的</font>,一旦目录存在BIT特殊权限,即使其他用户具有文件的rwx,也只能删除自己创建的文件
chmod o+t 目录名
#为目录设置SBIT [root@localhost ~]# chmod o+t /test [root@localhost ~]# ll -d /test drwxrwxrwt. 2 root root 6 4月 11 16:07 /test [lisi@localhost test]$ ls kenji.txt laowang.txt lisi.txt [lisi@localhost test]$ rm -rf * rm: 无法删除"kenji.txt": 不允许的操作 rm: 无法删除"laowang.txt": 不允许的操作
单独为每一个用户量身定制一个权限(不是你们部门的,但是需要一些权限)
命令格式:setfacl 选项 归属关系:用户名:权限 文档 常用选项:
-m 设置权限
-x 删除指定用户权限
-b 删除所有用户权限
查看ACL权限
- 格式
getfacl 文件名
- 例
[root@server ~]# touch temp.cfg [root@server ~]# getfacl temp.cfg # getfacl命令 # file: temp.cfg # owner: root # group: root user::rw- group::r-- other::r--
设置ACL权限
- 格式
setfacl -参数 文件名
- 参数
-m:设定 ACL 权限 给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名 给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名 -x:删除指定的 ACL 权限; -b:删除所有的 ACL 权限; -d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限; -k:删除默认 ACL 权限; -R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效
示例
- 例:root用户在根目录下创建目录/project及所属工作组group,所属组里面创建两个用户zhangsan和lisi,此文件权限是770,再创建一个旁听用户 pt,给他设定/project目录的 ACL 为 r-x
[root@server ~]# mkdir /project [root@server ~]# useradd zhangsan [root@server ~]# useradd lisi [root@server ~]# groupadd group [root@server ~]# gpasswd -M zhangsan,lisi group [root@server ~]# chown root:group /project [root@server ~]# chmod 770 /project [root@server ~]# ll -d /project drwxrwx---. 2 root group 6 5月 6 18:12 /project [root@server ~]# useradd pt # 新建旁听账户 [root@server ~]# setfacl -m u:pt:rx /project [root@server ~]# ll -d /project # 注意:某文件下有+标志则说明其具有acl权限 drwxrwx---+ 2 root group 6 5月 6 18:12 /project [root@server ~]# getfacl /project getfacl: Removing leading '/' from absolute path names # file: project # owner: root # group: group user::rwx user:pt:r-x group::rwx mask::rwx other::---
# 为了验证 pt 用户对于 /project 目录没有写权限,我们用 su 命令切换到 pt 用户,然后进入 /project 目录,在此目录下创建文件,看是否能成功: [root@server ~]# su - pt [pt@server ~]$ cd /project [pt@server project]$ touch test.txt touch: 无法创建 'test.txt': 权限不够
删除acl权限
# 删除指定用户的 ACL 权限setfacl -x u:用户名 文件名 # 删除指定用户组的 ACL 权限setfacl -x g:组名 文件名 # 删除文件的所有 ACL 权限setfacl -b 文件名
到此这篇文件权限-rw-r--r--描述正确的是(文件的权限是-rwxr)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/73362.html