(1)chmod
chmod命令用于改变文件或目录权限,英文原意为change the permissions mode of a file,所在路径为/bin/chmod,其语法格式为:
chmod [{ugoa}{+-=}{rwx}] [文件或目录]或chmod [mode=421] [文件或目录]
其中a表示所有的u、g、o的权限都将修改。如果加上-R选项,表示递归修改权限。权限的数字表示分别为:r对应着4,w对应着2,x对应着1,因此,rwxrw-r—对应的数字权限为764。注意:只有root和所有者可以改变该文件或目录的权限!
在/tmp目录创建一个test.txt文件,并将其权限修改为所有者(u)去掉写权限,用户组(g)和其他人(o)加上写权限,且三者均具有执行权限。
使用数字命令将所有者权限改为可读可写,将用户组和其他人的权限改为仅可读。
在/tmp目录下创建目录a,并在a的目录下创建目录b,然后使用-R选项递归修改a与b的权限。
文件目录权限总结:
代表字符 |
权限 |
对文件的含义 |
对目录的含义 |
r |
读权限 |
可查看文件内容 |
可列出目录中的内容(如ls) |
w |
写权限 |
可修改文件内容 |
可在目录中创建、删除文件(如touch,rm) |
x |
执行权限 |
可执行文件 |
可进入目录(如cd) |
注意:删除一个文件的前提是用户需对该文件所在目录具有写权限,而不是对该文件具有写权限!!!
(2)chown
chown命令用于改变文件或目录的所有者,英文原意为change file ownership,所在路径为/bin/chown,其语法格式为:chown [用户] [文件或目录],注意只有管理员才能更改文件所属用户。
创建一个用户ws,以该用户进行登录并在/tmp目录下创建一个文件test.txt。
然后在以root身份进行修改该文件的所属用户。
(3)chgrp
chgrp命令用于改变文件或目录的所属组,英文原意为change file group ownership,所在路径为/bin/chgrp,其语法格式为:chgrp [用户组] [文件或目录]
同样在root用户下将test.txt的所属组改为root。
(4)umask
umask命令用于显示、设置文件的缺省权限,英文原意为the user file-creation mask,umask命令属于Shell的内置命令,其语法格式为:umask [-S],其中-s选项表示以rwx形式显示新建文件缺省权限。
[root@localhost ~]# umask
直接输入umask命令得出的是权限掩码,其中第一个"0"表示特殊权限,后面的"022"分别对应所有者、所属组、其他人的权限,掩码对应的真正权限为:777-022=755。
在/tmp下新建一个目录test,查看其权限即为对应的默认的缺省权限。
[root@localhost ~]# umask -S u=rwx,g=rx,o=rx [root@localhost ~]# mkdir /tmp/test [root@localhost ~]# ls -ld /tmp/test drwxr-xr-x. root root 1月 : /tmp/test [root@localhost ~]#
而新建一个文件时,出于安全的角度,默认是不具备执行权限的。例如在tmp目录下新建一个test1.txt文件,其对应的默认权限如下:
[root@localhost ~]# touch /tmp/test1.txt [root@localhost ~]# ls -l /tmp/test1.txt -rw-r--r--. root root 1月 : /tmp/test1.txt [root@localhost ~]#
如将默认的权限为rwxr-xr--,首先计算相应的掩码:777-754=023,然后利用umask修改即可。则相应的命令如下:
[root@localhost ~]# umask [root@localhost ~]# mkdir /tmp/test2 [root@localhost ~]# ls -ld /tmp/test2 drwxr-xr--. root root 1月 : /tmp/test2 [root@localhost ~]#