版权声明:本文为博主原创文章,转载请注明出处。 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