分享

Linux笔记【007】| 文件/文件夹属性设置

 生信笔记 2021-07-05

一.不同用户之间的切换

上一章介绍了用户和用户组,没有介绍不同用户之间的切换,这里介绍一下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 -ltotal 8drwxr-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.txtchmod: 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 -ltotal 8drwxr-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 -ltotal 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。不要出现类似这样的权限,原因是读权限是最基本的,而你如果想写入,则必须先打开文件。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多