在Linux中的每个用户必须属于一个组,不能独立于组外
在Linux中每个文件的所属者、所属组、其它组的概念
例如有一个文件是user1创建的,那么这个文件的所属者就是user1,这个文件在默认情况下属于user1所在的组当然,这个所属组也可以改变,这就是复杂的地方,那么所属组之外的就是其它组
1.文件所属者
一般为文件的创建者,谁创建了该文件,就自然成为该文件的所属者
(1)查看文件的所属者
ls -ahl (a表示查看所有,包括隐藏文件、h表示以人类的方式查看、l表示以列表方式列出)
例子:创建一个组police,再创建一个用户tom,将tom放在police组,然后使用tom来创建一个文件ok.txt
这时候我们已经创建了一个police组,并且把tom用户放到ploice组中(如果没有是useradd tom的话,系统会自动生成和tom同名的一个组,并把同名用户放到tom组内),顺便设置密码
然后再在Xshell中打开一个新的连接
登录tom用户
成功登录进来(因为Linux是多用户的终端,可以同时多个用户访问)
查看目前的用户是在哪个组里面
创建一个ok.txt
很明显从上图看出,文件的所属者是tom,tom的所属组是police,层级关系就很简单
(2)修改文件所属者
chown 用户名 文件名
(chown=change owner)
-R 如果修改的文件是个目录,则使其下所有子文件或者目录递归生效(例如 chown -R tom kkk/ 意思是吧kkk/目录下的所有文件递归修改到tom所属者内)
例子:使用root用户创建一个文件 apple.txt,然后将其所属者修改成tom
很明显看出所属者是变成tom了,但是所属组肯定是没变的
只有root权限才能修改文件的所属者,其实就是给tom权限去rw(读写)
2.所属组的创建
groupadd 组名
重点:修改文件所属组
chgrp 组名 文件名
-R 如果修改的文件是个目录,则使其下所有子文件或者目录递归生效(例如 chgrp -R tom kkk/ 意思是吧kkk/目录下的所有文件递归修改到tom所属组内)
例子:使用root用户创建文件orange.txt,看看当前的文件属于哪个组。然后将这个文件所在组,修改到police组
3.其它组
除文件的所属者和所属组的用户外,系统的其它用户都是文件的其它组
改变用户所在组
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录
例子:创建一个土匪组(bandit)将tom这个用户从原来所在的police组,修改到bandit组