Linux学习-文件权限

查看文件权限

文件类型

  • - 普通文件
  • d 目录文件
  • b 块特殊文件,指设备
  • c 字符特殊文件,指终端
  • l 符号链接,类似windows的快捷方式
  • f 命名管道,与通信功能相关
  • s 套接字文件,与通信功能相关

字符权限的表示方法

  • r 读
  • w 写
  • x 执行

数字权限的表示方法

  • r=4
  • w=2
  • x=1

例子
-rw-r-xr-- 1 username groupname mtime filename

  • rw- 文件属主的权限
  • r-x 文件属组的权限
  • r-- 其他用户的权限

vim 在写文件时并非直接往文件写入,底层其实是打开该文件的一个.开头的隐藏文件,写完保存后,该隐藏文件替换了原有的文件。

创建新文件有默认权限,根据 umask 值计算,属主和属组根据当前进程的用户来设定

目录权限的表示方法

  • x 进入目录
  • rx 显示目录内的文件名
  • wx 修改目录内的文件名

修改文件权限

chmod 修改文件、目录权限

  • chmod u+x /tmp/testfile
  • chmod 755 /tmp/testfile

chown 更改属主、属组

  • chown user1 /test 更改属主
  • chown :user1 /test 更改属组

chgrp 单独更改属组,不常用

  • chgrp user1 /test

权限限制是对非root用户的,root是不受权限控制,不要随意修改

  • u 代表用户
  • g 代表组
  • 0 代表其他用户
  • a 代表所有

例子:增加或减少权限

  • chmod u+x filename 给属主增加执行权限
  • chmod g-r filename 给属组减少读权限
    配置权限
  • chmod o=w filename 把其他用户设置有读权限,假若其他用户是r--,则变成 -w-
  • chmod a+r filename 给属主和属组都增加读权限
    例子:用数字来表示
  • chmod 446 filename 配置的权限:r--r--rw-

当创建一个普通文件时,它的默认权限是644,是用 666权限减去了umask(022)的值,666-022=644,默认权限就是这么来的

特殊权限

SUID 用于二进制可执行文件,执行命令时取得文件属主权限,如 /usr/bin/passwd ,SUID 权限可用 4 (4+原有权限)表示,例如
# chmod 4755 /test/afile
给afile文件加上了SUID权限

SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组,SGID 权限可用 2 (2+原有权限)表示

如果一个文件被设置了 SUID 或 SGID 位,会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了 SUID 还设置了x(执行)位,则相应的执行位表示为s(小写)。但是,如果没有设置x位,它将表示为S(大写)。如

1、-rwsr-xr-x 表示设置了SUID,且拥有者有可执行权限
2、-rwSr--r-- 表示SUID被设置,但拥有者没有可执行权限
3、-rwxr-sr-x 表示SGID被设置,且群组用户有可执行权限
4、-rw-r-Sr-- 表示SGID被设置,但群组用户没有可执行权限

其他设置方式

chmod u+s filename 设置suid位
chmod u-s filename 去掉suid设置
chmod g+s filename 设置sgid位
chmod g-s filename 去掉sgid设置

SBIT 用于目录,在该目录下创建新的文件和目录,仅 root 和自己可以删除 如 /tmp
SBIT 权限可用 1(1+原有权限) 表示,例如
# chmod 1777 /test/afile
给afile文件加上了SBIT权限

Linux权限详解参考:https://blog.csdn.net/u013197629/article/details/73608613

posted @ 2020-03-29 00:08  chenzy01  阅读(411)  评论(0编辑  收藏  举报