chown和chmod都是在Linux和Unix系统中用于设置文件和文件夹权限的命令,但它们的功能和用途有所不同。
- 功能:chown主要用于修改文件或文件夹的所有者和所属组,而chmod则主要用于修改文件或文件夹的读写执行权限。
- 用途:如果想要授权某些用户访问或修改文件,可以使用chown来更改文件的所有者。如果想要控制文件如何被他人存取,可以使用chmod来设置文件的权限。
第一个字符代表文件类型:
-:普通文件
d:目录dirtectory的缩写(目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息)
l:链接文件。link(链接)的缩写,类似于windows下的快捷方式。
b:块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)。
c:字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
p:命令管道文件。与shell编程有关的文件。
s:sock文件。与shell编程有关的文件。
后面9个字母代表文件或目录权限位
三种权限:r表是读 (Read) 、w表示写 (Write) 、x表示执行 (execute) 。数字 4 、2 和 1表示读、写、执行权限。如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4 +1 = 5
其中,前3字母表示拥有者(owner,缩写u)权限,中间3字母表示所属组(group,缩写g)的其他用户权限,末3位表示除同组外其他用户(others,缩写o)权限。
注意: 一般只对目录加执行权限x,文件不加执行权限(因文件具备执行权限有安全隐患),并且root账户不受文件权限的读写限制,执行权限受限制。
对于文件和目录来说,r,w,x有着不同的作用和含义:
针对文件:
r:读取文件内容
w:修改文件内容
x:执行权限对除二进制程序以外的文件没什么意义
针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
r:查看目录下的文件列表
w:删除和创建目录下的文件
x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。
chown
chown -R 用户:组 目录
chown -R root:root /home/mydata
chmod
chmod -R 权限 目录
chmod -R 777 /home/mydata