我的Linux学习笔记·文件权限
文件权限
当我们使用ls –l命令查看文件时,会列出文件的详细信息。内容如下:
其中
-rwxrw-r--. 代表文件的权限;
1 代表文件链接数为1;
sxy 表示文件的属主为sxy;
第二个sxy 代表文件的属组为sxy;
0 代表文件的大小(这里我们用touch建了一个空文件);
Apr 1 02:20 代表文件的最后修改日期;
a 代表文件名;
文件的权限是文件的一项重要属性,它可以限定不同用户对该文件的操作,
对于一个文件来说:
r: 可读;
w:可写,可编辑或删除;
x: 可以执行;
而对于一个目录:
r: 可用ls列出目录内所有文件;
w: 可在此目录中创建文件;
x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件详细信息;
第一个字符代表该文件的类型:文件(-)、目录(d),链接(l)
之后的字符每三个一组
第一组:文件所有者的权限;
第二组:属于该用户组的用户的权限;
第三组:其他用户的权限;
所以,对于这里的文件a,
属主为sxy,他可以对该文件进行读,写和执行(rwx);
属组为sxy,属于该组用户的权限是读和写(rw);
其他用户只有读权限(r);
文件的权限也可用十进制或二进制数字表示:
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
更改文件的权限
文件的属主或者root可以使用chmod命令对文件的权限进行更改。
修改三类用户(user, group and other)的权限:
比如我们想让文件a对三类用户都具有读写和执行权限,可以使用以下命令,
chmod 777 a
我们新建一个文件b,它的权限是-rw-rw-r--.,我们想让a的权限变得和b一样,可以使用--reference选项:
chmod –reference=b a
假如我们想改变某个目录和目录下所有文件的权限,可以使用-R选项,如test目录下有两个文件,它们的权限为:
我们使用chmod –R来改变test文件夹的权限,然后查看test下的文件
chmod –R 755 test
结果显示文件的权限也都变成了755。
修改某类用户或某些用户的权限:
如果我们想要修改某类用户的权限,可以使用chmod u=rwx file类似的格式。
例如我们只想把a文件属主的权限改为可读,其他不变,可以使用以下命令:
chmod u=r a
类似的,我们改变属主和属组的权限为rwx,可以使用以下命令:
chmod ug=rwx a
修改某类用户的某位权限:
我们还可以修改某类用户的某位权限,比如我们想要去除group的执行权限,则
chmod g-x a
我们再把group的执行权限加上,则
chmod g+x a
我们可以使用类似的命令改变属主或者其他用户的某一位或多位的权限。
更改文件的属主和属组
管理员可以更改某个文件的属主,使用chown命令。
chown: 改变文件属主
格式:chown USERNAME file,...
-R:递归修改目录及其内部文件的属主;
--reference=/path/to/somefilefile,... :将文件属主属组信息设置为与指定文件一致;
例如:a文件本来属于sxy,我们想把它的属主变为sxy1,则可以使用以下命令:
chown sxy1 a
查看一下,文件的属主变为了sxy1。
若要同时改变属主属组,可以使用下列格式的命令:
chown USERNAME:GRPNAME file...
例如:我们将a文件的属主改为sxy1,属组改为sxy1,则使用以下命令:
chown sxy1:sxy1 a
chgrp可以单独改变文件属组,用法与chown类似。
欢迎关注我们