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