Linux组
概述
Linux中的每一个用户都必须属于一个组,如果我们在创建用户时没有为其分配组,则系统默认将该用户自成一组,组名和用户名相同。
在Linux系统中,每一个文件有三个概念,文件所有者、文件所在组、文件其他组(除了该用户所在的组的其余组)。
在Linux中不同的文件类型会显示成不同的颜色,其中蓝色代表目录,白色代表普通文件,绿色代表该用户有执行此文件的权限。
文件所有者
谁创建了这个文件,谁就是这个文件的所有者。我们可以通过ls -ahl
查看当前文件目录的详细信息。
#修改文件所有者(用户名和文件名必须存在)
chown 用户名 文件名
#将/home/main.html文件的所有者改为cxf
chown cxf /home/main.html
组创建
#组创建
groupadd 组名
#创建 sy 用户并将其分配到 gl组
groupadd gl
useradd -g gl sy
#为该用户分配密码
passwd sy
#切换到sy用户自己的家目录并创建main.html并查看该文件所在组
su - sy
pwd
touch main.html
ls -ahl
改变文件所在组
注:使用普通用户一般不可更改文件所在组,该操作一般由管理员执行
#如果是文件目录,则需要加上 -R 选项
chgrp 新组名 文件/文件目录名
将sy用户创建的main.html文件更改到root组
修改用户所在组
usermod -g 新组名 用户名
#将sy用户所在组修改到wf组
groupadd wf
usermode -g wf sy
id sy
我们可以通过管道命令查看是否有某一组(组别信息都存储在/etc/group文件中)
cat /etc/group | grep 要查找的组名
文件的权限
下图是我们使用ls -ahl
输入的/home/下的内容
其中第一列就是文件的详细信息,包含文件的类型(第0位),所有者对文件的操作权限(第1-3位),所在组对文件的操作权限(第4-6位),其他组队文件的操作权限(第7-9位)
文件类型(d,-,l,c,b)
d(directory)表示目录
-表示普通文件
l(link)表示软链接,类似于windows中的快捷方式
c(char)表示字符设备文件,如鼠标,键盘(该类型文件多在/dev/目录下)
b(block)表示块设备,如硬盘
rwx权限
rwx作用到单个文件
r(read)表示可以查看文件内容
w(write)表示可以修改文件内容
x(execute)表示可以执行该文件,进入该文件并修改文件内容
rwx作用到文件目录
r(read)表示可以查看文件内容、查看子目录内容(ls可查看)
w(write)表示可以修改文件内容,对子目录中的内容进行增删改
x(execute)表示可以进入该文件目录
注:
只有对文件有写的权限,才可以对子文件中的内容进行增删改
执行权限是指可以用cd
命令进入该文件
对于文件的rwx权限也可以用数字来表示,r=4,w=2,x=1,rwx=7
文件其他信息
第二列代表普通文件的硬连接数或文件夹的子目录数
第三列表示创建该文件的用户
第四列表示该文件所在组
第五列表示文件的字节大小
第六列是文件的修改日期
第七列是文件名
改变文件权限
#第一种方式 + - =改变权限
u表示文件所有者,g表示文件所在组,o表示其他组,a表示全部人
#赋予权限
chmod u=rwx,g=rx,o=x 文件/文件目录名
#给o增加权限
chmod o+w 文件/文件目录名
chmod g+r+w+x index.html
#给a去除权限
chmod a-x 文件/文件目录名
#第二种方式 用数字改变权限
#r=4,w=2,x=1(数字从1-7均可覆盖)
chmod u=rwx,g=rx,o=x 文件/文件目录名
#等价于
chmod 751 文件/文件目录名
改变文件所有者
#改变文件所有者
chown newowner 文件/文件目录名
#改变文件所有者和所在组(如果是目录,需要加上选项 -R)
chown newowner:newgroup 文件/文件目录名
#将/home/index.html文件所有者改为penrose
chown penrose /home/index.html
假设cxf和penrose在同一组,如果cxf用户想要查看和修改penrose用户下的index.html内容,则需要用root用户将对 /home/penrose的文件夹的相应权限赋予同组内的人员
chmod 770 /home/penrose
,这是cxf用户才有进入/home/pernose目录下的权限