1. Linux组基本介绍
- Linux中每个用户属于一个组,不能独立于组以外。所以在Linux中每个文件存在组的概念:
- 所有者
- 所在组
- 其他组
- 改变用户所在组
-
2. 文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然的称为该文件的所有者。
查看文件所有者:ls -ahl
修改文件所有者:chown (用户名) (文件名)
- -R表示递归修改。如果是目录,则使其下所有子文件或目录递归生效
[root@Tyc home]# ls -ahl
total 16K
drwxr-xr-x. 3 root root 4.0K Feb 22 18:46 .
dr-xr-xr-x. 18 root root 4.0K Feb 19 20:40 ..
-rw-r--r-- 1 root root 0 Feb 22 18:46 apple.txt
-rw-r--r-- 1 root root 0 Feb 21 12:28 cat.txt
-rw-r--r-- 1 root root 0 Feb 21 19:59 pig.txt
-rw-r--r-- 1 root root 48 Feb 21 19:11 test.txt
-rw-r--r-- 1 root root 0 Feb 21 19:59 tiger.txt
drwx------ 2 tom tom 4.0K Feb 21 14:35 tom
[root@Tyc home]# chown tom apple.txt
[root@Tyc home]# ls -ahl
total 16K
drwxr-xr-x. 3 root root 4.0K Feb 22 18:46 .
dr-xr-xr-x. 18 root root 4.0K Feb 19 20:40 ..
-rw-r--r-- 1 tom root 0 Feb 22 18:46 apple.txt
-rw-r--r-- 1 root root 0 Feb 21 12:28 cat.txt
-rw-r--r-- 1 root root 0 Feb 21 19:59 pig.txt
-rw-r--r-- 1 root root 48 Feb 21 19:11 test.txt
-rw-r--r-- 1 root root 0 Feb 21 19:59 tiger.txt
drwx------ 2 tom tom 4.0K Feb 21 14:35 tom
组的创建
groupadd master # 创建一个组master
useradd -g master fox #创建一个用户放到master组下面
3. 文件/目录所在组
当某个用户创建了一个文件之后,默认之歌文件所在组就是该用户所在的组
- -R表示递归修改。如果是目录,则使其下所有子文件或目录递归生效
查看文件所有者:ls -ahl
- 修改文件所在组:chgrp (组名) (文件名)
- -R表示递归修改。
[root@Tyc tom]# ls -ahl
total 24K
drwx------ 2 tom tom 4.0K Feb 22 19:00 .
drwxr-xr-x. 3 root root 4.0K Feb 22 18:46 ..
-rw------- 1 tom tom 123 Feb 22 19:00 .bash_history
-rw-r--r-- 1 tom tom 18 Apr 1 2020 .bash_logout
-rw-r--r-- 1 tom tom 193 Apr 1 2020 .bash_profile
-rw-r--r-- 1 tom tom 231 Apr 1 2020 .bashrc
-rw-rw-r-- 1 tom tom 0 Feb 22 18:55 tom1.txt
[root@Tyc tom]# chgrp master tom1.txt
[root@Tyc tom]# ls -ahl
total 24K
drwx------ 2 tom tom 4.0K Feb 22 19:00 .
drwxr-xr-x. 3 root root 4.0K Feb 22 18:46 ..
-rw------- 1 tom tom 123 Feb 22 19:00 .bash_history
-rw-r--r-- 1 tom tom 18 Apr 1 2020 .bash_logout
-rw-r--r-- 1 tom tom 193 Apr 1 2020 .bash_profile
-rw-r--r-- 1 tom tom 231 Apr 1 2020 .bashrc
-rw-rw-r-- 1 tom master 0 Feb 22 18:55 tom1.txt
4. 其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
- -R表示递归修改。
5. 文件属性
- ls -l中显示的内容如图所示
- 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图)。
5.1 rwx权限详解
- rwx作用到文件:
- r:read,可读。读取查看。
- w:write,可以修改。但不代表可以删除该文件。删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
- x:execute,可执行。可以被执行。
- rwx作用到目录:
- r:可以读取,ls查看目录内容。
- w:可以修改,目录内创建+删除+重命名目录。
- x:可执行,可以进入该目录。
可删除文件的前提要对文件所在目录有w权限,同时对文件有w权限。
5.2 修改权限
5.2.1 chgrp:更改文件属组
chgrp [-R] 属组名 文件名
文件 chown mikasa /home/mikasa/hello.txt
目录 chown -R mikasa /home/qianxin
5.2.3 chmod:更改文件/目录9个属性
- Linux文件属性有两种设置方法,一种是数字,一种是符号。
- Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
- 我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r:4
- w:2
- x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—-] 分数则是:
chmod [-R] xyz 文件或目录
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
- 举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:
5.2.3.1 使用符号修改权限
- 我们就可以使用 u(user)(是指文件或者是目录的拥有者), g(group), o(others) 来代表三种身份的权限!
- 此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看
1)chmod u=rwx,g=rx,o=x 文件/目录名
2)chmod o+w 文件/目录名
3)chmod a-x 文件/目录名
1)给abc文件的所有者读写执行的权限,给所在组读执行权限, 给其他组读执行权限
chmod u=rwx,g=rx,0=x abc
2)给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc
3)给abc文件的所有用户添加读的权限
chmod a+r abc