一、Linux用户和文件归属的基本介绍与指令
1、用户所属组
Linux 中每个用户必然归属于一个用户组。(同一组内的用户可能会获得组内某一文件的相同管理权限)
当新用户创建的时候,如果没有指定分组,系统将会创建一个以用户名字命名的新用户组作为该新用户的所属组
(1)查看当前系统已经存在的用户 cat /etc/passwd (最后几行 以/bin/bash 结尾的就是用户)
(2)创建一个新用户 useadd tom (要求root权限)
(3)查看用户归属信息: id +用户名 (验证默认现象)
当我们创建用户的时候 便可以指定分组了 (前提是分组存在,否则报错分组不存在)
(1)创建一个用户组 groupadd 新用户组名字
(2)创建用户时拉分组命令: usradd -g 组名 新用户名字
注意:图中的名字是用户同名的家目录文件,家目录文件名默认与创建者同名 ,同时它的所在组默认与创建者 同组,所以我们给zwj 拉组后 ,他生成的家目录的所在组也是wudang
如何更改用户所在组:
usermod -g 新组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录 , 特别说明 用户需要有进入该新目录的权限
2、文件/目录 归属性质
对于一个文件来说,其有三个归属性质: 拥有者,所在组,其他组(所在组之外的组都是其他组)
查看当前目录下的文件/目录的归属属性 : ls -l || ll
1)拥有者(所有者)
对于一个文件的拥有者来说,默认情况下,谁创建了该文件,谁就是该文件的拥有者
但是我们也可以对文件的拥有者进行修改 :
chown 新的拥有者 文件名 (注意如果写了一个不存在的用户也是不会报错的)
chown 拥有者:所在组 文件名(可以一起修改拥有者和所在组)
Chown -R 所在者:所在组 文件目录名 (如果是目录,则递归生效其子目录/文件)
2)所在组
对于一个文件的所在组来说,默认情况下,谁创建了该文件,该文件的所在组与创建用户的用户组一致
(文件可赋予所在组的用户相同的权限)
注意一个很特别的点: 当文件的拥有者是创建者,并且所在组与创建者所在组相同的时,这时候如果修改该创建者的所在组,那么此文件的所在组也会进行相同的转变
修改一个文件的所在组 chgrp 新的所在组 文件名
3)其他组
文件所在组之外的组就是对于该文件的其他组,文件可对其他组中的用户赋予同一的读写执行权限
二、权限的基本介绍
1、权限的查看
当我们敲出 ls -l or ll 指令的时候会出现该目录下的文件信息,其中第一部分的十位信息就是该文件的权限信息
drwxrwxr-x. 2 gyk gyk 6 Dec 1 20:32 a
第0位是文件类型 (l d c b -)
- : 普通文件
l: 链接,相当于window的快捷方式
链接:ln -s /root myroot
在当前目录下创建一个myroot 目录 是链接到/root 上的
d:目录
c:字符设备文件 ,鼠标键盘
b:块设备文件 ,硬盘
(c b 文件可以去/dev里面看看)
第1~3位:所有者的权限 ——user
第4~6位:所在组的权限——group:与文件同一组的用户对该文件的权限
第7~9位:其他组的权限——other
2、针对目录与文件rwx的权限理解
1) 文件:
r:可以读,查看文件内容
w:可以修改文件内部内容
(但是不代表可以删除该文件,删除该文件需要有该文件所在目录的写权限,因为删除文件相当于是要删除该当前目录对该文件地址的引用,实际上是对目录的内容进行了修改,因此是对目录的写权限)
x:可以执行文件
2)目录:
r:可以通过ls 查询目录中包含的子目录,文件
w:可以对目录中的内容进行删除,添加,移动等等
x:可以进入该目录
3、修改权限 chmod
方法一:通过“+”"-" "="
chmod u=rwx,g=rw,o=w + 文件名
chmod u+r,g-w,o+w 文件名 (将需要修改的权限逗号隔开就好)z
方法二:通过数字和的形式修改 r=4 w=2 x=1 (rwx=4+2+1=7)
Chmod 777 + 文件名 =chmod u=rwx,g=rwx,o=rwx +文件名
Chmod 77 +文件名 (相当于077 )
Chmod 7 +文件名 (相当于007)
探讨:
探讨问题一:
文件的所在者和所在组同组 但是 二者的权限不一致的情况时,所在者的权限依据谁
由此可知 所在者的权限就是所在者所被文件分配的权限
探讨问题二:
当我们使用chown -R _:_ +目录的递归用法之后 隐藏子目录是否发生变化呢
(1)如何创建隐藏目录 (正常创建文件 前面加个“.”点前缀)
touch . +文件名
(2)显示隐藏目录
ls -a
省略了 chown 的展示 但是证明可以递归当隐藏目录/文件
探讨问题三:
当我们改变完一个用户的所在组,之后想去访问新的所在组中的一个文件的时候 ,注意刚修改完组别之后要重新连接以下,不然对该想访问的文件依旧是其他组的身份