Linux笔记【007】| 文件/文件夹属性设置
一.不同用户之间的切换
上一章介绍了用户和用户组,没有介绍不同用户之间的切换,这里介绍一下su命令,用来切换用户,其实很简单,命令是【su 用户名】,之前一直都是在root用户下操作,你是root用户,可以切换到任何用户不需要密码,但普通用户切换到其他用户或者root用户,需要输入该用户的密码【有密码的话】。当从root切换到普通用户后,再想切换到root用户时,输入命令【su root】是需要输入密码,如果不想输入密码,可以输入【exit】,免去输入密码的过程。
二.权限介绍
权限设置主要是针对用户和用户组对于文件/文件夹的一个操作限制,只有有权限才能进行相应的设置,没有权限则设置不了。在Linux中如何去查看一个文件/文件夹的权限呢?这可以通过命令【ls -l】来查看权限的信息。
例如:使用ls查看当前工作路径下的文件夹/文件权限信息。
上述图中红色的区域就是权限的组成情况。
权限信息中的字符分别表示的意思如下:
第0个字符:表示文档的类型,d表示是目录,-表示是文件;
第1~3个字符:表示文件所有者的权限情况(u表示,user);
第4~6个字符:表示所有者同组的组内成员的权限情况(g表示,group);
第7~9个字符:表示除上述两类人员的其他用户的权限情况(o表示,other);
三.修改权限
1.通过字符形式设置权限
命令:chmod
语法:#chmod 权限组成信息 需要操作的对象(文件夹/文件)
需要注意,如果操作的对象是文件夹,则需要加上-r参数,表示递归赋予权限。
权限的组成信息,将语法进行拆分:
第一个情况:针对单个对象(ugo)的拆分
给某个组成部分添加读权限:#chmod u+r,g+r,o+r 需要操作的文件/文件夹。
我首先创建一个RNASeq-Counts.txt文件,
[root@VM-0-2-centos ~]# touch RNASeq-Counts.txt
[root@VM-0-2-centos ~]# ls -l
total 8
drwxr-xr-x 3 root root 4096 Oct 27 20:41 BioInfoData
-rw-r--r-- 1 root root 0 Oct 27 20:25 bioinfonotes.txt
-rw-r--r-- 1 root root 1371 Oct 31 13:32 passwd
-rw-r--r-- 1 root root 0 Nov 5 20:12 RNASeq-Counts.txt
RNASeq-Counts.txt文件对于组合其他用户没有w权限,尝试设置一下。
[root@VM-0-2-centos ~]# chmod g+w o+w RNASeq-Counts.txt
chmod: cannot access 'o+w’: No such file or directory
[root@VM-0-2-centos ~]#
o+w没有发生改变,是因为我没有在中间加","号。换个文件改一下。
[root@VM-0-2-centos ~]# chmod g+w,o+w RNASeq-Counts.txt
[root@VM-0-2-centos ~]# ls -l
total 8
drwxr-xr-x 3 root root 4096 Oct 27 20:41 BioInfoData
-rw-r--r-- 1 root root 0 Oct 27 20:25 bioinfonotes.txt
-rw-r--r-- 1 root root 1371 Oct 31 13:32 passwd
-rw-rw-rw- 1 root root 0 Nov 5 20:12 RNASeq-Counts.txt
[root@VM-0-2-centos ~]#
切换到普通用户[yunsen],在普通用户家目录下创建RNASeq-Counts.txt 文件。
[root@VM-0-2-centos ~]# su yunsen
[yunsen@VM-0-2-centos root]$ cd ~
[yunsen@VM-0-2-centos ~]$ touch RNASeq-Counts.txt
[yunsen@VM-0-2-centos ~]$ ls -l
total 0
-rw-rw-r-- 1 yunsen yunsen 0 Nov 5 20:21 RNASeq-Counts.txt
给其他用户添加w权限,用普通用户操作,切换到root用户,查看没有问题。
再给用户组和其他人添加x权限,能正常添加。修改root家目录下的文件就没有权限。
第二个情况:设置全部的组成部分:
可以使用下面的这个语法:
#chmod a+r 文件 (表示给全部的组成部分添加读权限)
#chmod a-r 文件 (表示给全部的组成部分删减读权限)
#chmod a=rwx 文件 (表示给全部的组成部分权限设置成刻度可行可执行)
其中a表示全部(ugo组合)
2.通过数字的形式来设置权限
在Linux权限体系中支持使用数字的形式来表示权限的信息,比如说777表示全部的权限。
4表示读权限
2表示写权限
1表示执行权限
例如:如果说我想把RNASeq-Counts.txt 这个文件的权限设置成所有者拥有全部权限,同组用户拥有读写权限,其他用户拥有读权限,则数字形式该写成?
全部权限=读+写+执行=4+2+1=7
读写权限=读+写=4+2=6
读权限=4
所以最终的权限数字应该是764。
四.更改文件属性
1.chgrp更改文件数组
语法:chgrp [-R] 属组名 文件名
参数选项
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2.chown更改文件属主
chown:更改文件属主,也可以同时更改文件属组
语法:
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
友情提示:在以后实际工作不要出现一个奇葩的权限:-wx。不要出现类似这样的权限,原因是读权限是最基本的,而你如果想写入,则必须先打开文件。