Linux学习3-权限管理
1 文件的基本权限
1.1 基本权限的修改
权限类型 | 说明 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
权限分类 | 说明 |
---|---|
u | 当前用户 |
g | 当前用户所在组的其他用户 |
o | 其他用户 |
修改权限命令 chmod
chmod 【选项】 【模式】 【文件名 / 目录名】
选项 | 说明 |
---|---|
-R | 递归 |
模式 | 模式说明 |
---|---|
【ugoa】【+ - =】【rwx】 | 使用加减赋予权限 |
【mode = 421 】 | 使用数字赋予权限 |
修改权限的方式 | 说明 |
---|---|
chomod u+x a.txt | 给当前用户赋予执行权限 |
chomod g+w , o+w a.txt | 给当前用户和用户组赋予写权限 |
chomod a=rwx a.txt | 给所有用户赋予全部权限 |
1.2 权限的数字说明
权限类型 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
常见的权限有:
1、777 rwx rwx rwx最高权限
2、755 rwx r-x r-x 所有者读写执行,其他人读和执行
3、644 ** rw - r- - r- -**所有者读写,其他人只读
1.3 权限对文件的作用
权限类型 | 作用 |
---|---|
r | 读取文件的内容(cat、more、head、tail等查看命令) |
w | 编辑、新增、修改文件的内容(vi、echo),不包含删除文件 |
x | 可执行 |
对文件有写权限,但是不能删除文件。若要删除文件,必须对文件所在的目录有W权限,因为文件名是存储在目录文件的,删除文件相当于将目录文件中的文件名删除。
1.4 权限对目录的作用
目录也是一种文件
权限类型 | 说明 |
---|---|
r | 可以查询目录下文件名 ls |
w | 具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp) |
x | 可以进入目录 cd |
总结:
1、对文件来说:最高权限是 x
2、对目录来说:最高权限是 w
3、对文件来说少赋执行权限,对目录来说少赋写权限
4、对目录来说,常用的赋值权限是 0 、5(rx)、7(rwx);4®、1(x)、6(rw)是没有意义的。
5、只读权限 4 是没有意义的,ls命令下不能显示这个目录下的所有文件信息,都用?代替了
2 其他权限命令
2.1 修改文件所有者
chown 【用户名】【文件名/目录名】
注意:
如果确定要让一个普通的用户对某一个文件拥有 7 权限,最合理的办法就是把这个文件的所有者设置为这个用户
2.2 修改文件的所属组
chgrp 【组名】【文件名】
1、在Linux中,useradd user1 添加一个用户后,默认会创建一个user1 组
2、既要改变文件或目录的所属者,又要改变用户的所属组,可以使用 chown user1:user1 abc
2.3 让用户对文件和目录拥有一定的权限
要求:
1、拥有一个 abc 目录
2、让zhangsan拥有所有的权限
3、让用户1所在组的其他用户 拥有查看的权限
4、其余用户不允许查看这个目录
步骤:
1、创建 useradd user1 创建 useradd user2
2、groupadd user
3、gpasswd -a user1 user #把user1用户加入到用户组
4、gpasswd -a user2 user #把user2用户加入到用户组
5、chown zhangsan : user abc
6、chmod 750 abc
分配权限的核心原则:在最小权限情况下能够实现要求即可!777权限是不负责任的做法
3 默认权限
3.1 文件默认权限
使用 umask 命令查看文件的默认权限
权限 | 说明 |
---|---|
0 | 文件特殊权限 |
022 | 文件默认权限 |
创建完一个文件后,这个文件的权限默认是 644,创建目录的默认权限是755,那么怎么通过umask的值来计算出文件和目录的默认权限的?
1、文件默认不能建立为执行文件,必须手动赋予执行权限,为了安全考虑。
2、所以文件默认权限最大为666
3、默认权限需要换算成字母再相减
4、建立文件之后的默认权限,为666减去umask的值
举例说明:
--文件默认的最大权限666 umask值022
– -rw -rw -rw 减去 — -w- -w- 等于 -rw r-- r–
举例说明:
--文件默认最大权限666 umask值为033
- -rw -rw -rw 减去 — -wx -wx 等于 -rw -r- -r- 644
3.2 目录默认权限
1、目录默认权限最大为777
2、默认权限需要换算成字母再相减
3、建立文件之后的默认权限,为777减去umask值,不让目录默认有写权限
举例说明
目录默认最大权限为777 umask 值为022
-rwx rwx rwx 减去 — -w- -w- 等于 -rwx r-x r-x 755
3.3 修改umask值
从上边可以看出,umask值对文件和目录的默认权限有很重要的作用,如何修改umask值
1、临时修改 umask 0002
2、永久修改 vi /etc/profile
普通用户的umask值为 002,root用户的umask值为 022,所以普通用户和root用户创建的文件和目录的默认权限是不一样的。
a和b为root用户创建的目录和文件,c和d为普通用户创建的目录和文件