针对Linux中的用户、用户组,需要设置文件的权限。
1 文件属性与权限
ls -al
:使用该命令查看文件属性。
-a表示所有文件。-l表示详细权限与属性。
- 第一列,共有10个字符。
- 第一个字符代表这个文件是“目录、文件还是其他”。
[d]是目录。
[-]是文件。 - 后面的9个字符,3个为一组,均为“rwx”的3个参数的组合。这三个参数分别代表读、写、可执行。如果没有权限,就用减号[-]表示。
第一组:文件所有者的权限。
第二组:(与所有者)同用户组的权限。
第三组:(所有者所在)用户组之外的其他用户的权限。
- 第一个字符代表这个文件是“目录、文件还是其他”。
2 改变文件属性和权限
2.1 chgrp :改变文件所属用户组。
命令格式:chgrp [-R] dirname/filename
如下,文件word01所有者是hadoop,所属用户组是hadoop。
执行chgrp root word01
,将文件word01的用户组改为 root。
2.2 chown 改变文件所有者
命令格式:chown [-R] 账号名称:组名 文件或目录
执行命令:chown root word01
chown 可以同时改变用户名和用户组。
2.3 chmod:改变权限
命令格式:chmod xyz 文件或目录
chmod可以通过符号、数字两种方式设置文件权限。
文件或目录有三种身份(所有者、用户组、用户组之外)的权限,每个身份有三种权限。所以共需要设置9个权限。
各权限的数字对照表如下:
r :4 ——> 2^2
w:2 ——> 2^1
x :1 ——> 2^0
每个身份,各自的权限累加,得到数字权限。例如:-rwxr-x—
rwx = 4 + 2 + 1 = 7
r-x = 4 + 0 + 1 = 5
— = 0 + 0 + 0 = 0
例子:
设置该文件,只有所有者可以编辑(rw-,即6),同用户组内可读不可编辑(r–,即4),用户组之外不可见(—,即0)。
执行命令:chmod 640 word01
2 文件与目录的默认权限与隐藏权限
2.1 查看当前用户的默认权限:umask
查看方式有两种:
- 直接输入umask,显示数字形态的权限设置分数。
如下图中的默认权限0022,第一个数字为特殊权限,先不用管。
后面的三个数字,分别表示所有者、用户组、用户组外三种身份的权限。
注意:2表示需要减掉的权限,即需要减掉写的权限。 - 加入参数-S,以符号形式显示权限。
文件和目录的最大权限:
- 文件的默认权限:文件默认不可执行,即只有rw两种权限,所以最大为666(即-rw-rw-rw-)。
- 目录的默认权限:默认所有权限均开放,所以最大为777(即-rwxrwxrwx)。
而当前用户的默认权限为0022,所以其创建的文件和目录的默认权限分别为
文件:(-rw-rw-rw-) - (- — -w- -w-)= (- rw- r-- r–)
目录:(d rwx rwx rwx) - (d — -w- -w-)= (d rwx r-x r-x)
设置用户的默认权限:
umask 002