且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux-权限管理(chmod、umask)

更新时间:2021-11-02 12:14:14

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/76595322

chmod 命令

chmod [选项] 模式 文件名
选项:
- -R 递归

模式:
- [ugoa][+-=][rwx] 对指定的用户增加和删除权限
- [mode=421] 用数字表示权限

  • -u 所有者
  • -g 所属组
  • -o 其他人
  • -a 所有人
chmod u+x testdata 给所有者添加执行权限
chmod u-x testdata 删除所有者的执行权限
chmod a+x testdata 给所有用户添加执行权限
chmod u+x,o+w testdata 不同用户之间用逗号隔开
chmod u=rwx testdata 赋予所有者rwx
chmod u=rw- testdata 所有者rw-
chmod u=r testdata 所有者r--
chmod u=rw,g=r,o=r testdata 所有者rw-,所有组r--,其他人r--

权限数字表示:

r–4
w–2
x–1

常用权限
- 777–rwxrwxrwx
- 755–rwxr-xr-x
- 644–rw-r–r–

chmod 777 testdata

权限对文件的作用

  • r:读取文件内容(cat more head tail)
  • w:编辑、新增、修改文件内容(vi echo)
  • x:可执行

有写权限并不能删除文件,因为文件的信息保存在目录中,还需要目录也有相应的权限。

权限对目录的作用

  • r:可以查看目录下的文件名(ls)
  • w:具有修改目录结构的权限。如新建文件和目录,删除目录下的文件和目录,重命名此目录下的文件和目录,剪切(touch rm mv cp)
  • x:可以进入目录(cd)

  • 文件最高权限是:x

  • 目录的最高权限是:w(5,7)

chmod

* chown 所有者[:|.]所属组 *

如果需要让某个用户具有某个文件的所有权限,可以用chown将文件的所有者改为该用户,然后给文件的所有者赋予最高权限即可。之前的o是对于所有其他用户赋予的权限,不安全。

例如,abc文件的属性如下,只有root用户可以修改文件,如果我现在想让twilight用户对这个文件具有修改权限。可以把文件的所有者改为twilight

-rw-r--r--. 1 root root 12 7月  25 09:09 abc

更改文件所有者,此时twilight用户已经可以修改文件内容了

chown twilight abc
// 查看文件属性
[twilight@localhost test]$ ll
总用量 4
-rw-r--r--. 1 twilight root 12 7月  25 09:09 abc

chgrp 将文件赋予用户组,用法与chown类似
chgrp 组名 文件名

文件的默认权限

umask 查看默认权限
umask vlaue 暂时设置umask(root默认是0022)

  • 0 文件特殊权限
  • 022 文件默认权限

  • 文件默认不能有执行权限,必须由手工赋予执行权限

  • 文件的默认权限最大为666
  • 新建文件的默认权限,为666减umask值

  • 目录默认最大权限为777

  • 建立文件之后的默认权限为777减umask值

关于umask的计算方式,网上的说法很多,简单地说,就是从最大权限中拿走对应的权限。如果umask为022,那么新建一个文件时

file:  110 110 110
umask: 000 010 010
result:110 100 100

如果umask为033,那么结果还是644:

file:  110 110 110
umask: 000 011 011
result:110 100 100

永久修改umask 需要修改文件
- vi /etc/profile