Linux组基本介绍
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
1.所有者
2所在组
3.其它组
4.改变用户所在的组
文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
指令:
ls -ahl
应用实例
文件或目录所有者
修改文件所有者
指令:
chown 用户名 文件名
应用案例
使用root 创建一个文件apple.txt,然后将其所有者修改成tim
执行命令:chown tim apple.txt
组的创建
基本指令
groupadd 组名
应用实例
创建一个组,monster;创建一个用户fox ,并放入到 monster组中
文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
基本指令 :
ls -ahl
应用实例
用户fox
的组为monster
,所以当用户fox
创建ok.txt
文件时,该文件的组就是monster
修改文件所在的组
基本指令:
chgrp 组名 文件名
应用实例:使用root用户创建文件orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到fruit组。
① root用户创建文件orange.txt
② 创建fruit组
③ 将这个文件所在组,修改到fruit组
其它组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
改变用户所在组
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录
特别说明:用户需要有进入到新目录的权限
应用实例
将milan这个用户从原来所在组,修改到botany组。(注意,修改前,一定要查看要修改的组是否存在,方法:cat /etc/group
)
将milan
这个用户从原来所在组milan
,修改到botany组
权限的基本介绍
ls -l
中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位说明(-rwxrw-r–)
-
第0位确定文件类型(d , - , l , c , b)
I是
链接
,相当于windows的快捷方式
d是
目录
,相当于windows的文件夹c是
字符设备
文件,鼠标,键盘
b是块设备
,比如硬盘
-
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
-
第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group
-
第7-9位确定其他用户拥有该文件的权限—Other
rwx权限详解,难点
rwx作用到文件
-
[r]代表可读(read):可以读取,查看
-
[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该来所在的目录有写权限,才能删除该文件.
-
[×]代表可执行(execute):可以被执行
rwx作用到目录
- [r ]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
- [x]代表可执行(execute):可以进入该目录
文件及目录权限实际案例
ls -l
中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
-
10个字符确定不同用户能对文件干什么
第一个字符代表文件类型:- l d c b
其余字符每3个一组(rwx)读®写(w)执行()
第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是读不能写和执行
-
可用数字表示为: r=4,w=2,x=1因此rwx=4+2+1=7
-
其它说明
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
内容 含义 1 文件:硬连接数 目录:子目录数+文件数 root 用户 root 组 1213 文件大小(字节),如果是文件夹,显示4096字节 Feb 2 09:39 最后修改日期 abc 文件名
修改权限-chmod
基本说明:
通过chmod指令,可以修改文件或者目录的权限。
第一种方式:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
chmod u=rwx,g=rx,o=x 文件/目录名
修改文件/目录名的权限,使所有者拥有读写执行的权限,使所有组拥有读和执行的权限,使其它组仅拥有执行的权限
chmod o+w 文件/目录名
修改文件/目录名的权限,使其它组仅拥有写的权限
chmod a-x 文件/目录名
修改文件/目录名的权限,使所有人拥有执行的权限
案例演示
1)给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
chmod u=rwx,g=rx,o=rx abc
2)给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x g+w abc
3)给abc文件的所有用户添加读的权限
chmod a+r abc
第二种方式:通过数字变更权限
r=4 w=2 x=1rwx=4+2+1=7
chmod u=twx,g=rx,o=x 文件/目录名
相当于chmod 751文件目录名
案例演示:将/home/abc.txt文件的权限修改成 rwxr-xr-x,使用给数字的方式实现·
chmod 755 abc
修改文件所有者-chown
基本介绍
chown newowner 文件/目录
改变所有者
chown newowner:newgroup 文件/目录
改变所有者和所在组-R 如果是目录则使其下所有子文件或目录递归生效
案例演示
请将/home/fox/abc.txt文件的所有者修改成tim
chown tim /home/fox/abc.txt
请将/home/fox目录下所有的文件和目录的所有者都修改成tim
chown -R tim /home/fox
修改文件/目录所在组-chgrp
基本介绍
chgrp newgroup 文件/目录
改变所在组
-R 如果是目录则使其下所有子文件或目录递归生效
案例演示
请将/home/fox/abc.txt 文件的所在组修改成 botany
chgrp botany /home/fox/abc.txt
请将/home/fox目录下所有的文件和目录的所在组都修改成 botany
chgrp -R botany /home/fox
权限管理应用实例
最佳实践-警察和土匪游戏
两个组(police , bandit)
两个警察(jack, jerry)
两个土匪(xh, xq)
-
创建组:
groupadd police
、groupadd bandit
执行
cat /etc/group
查看组是否建立成功。
-
创建用户:
useradd -g police jack
;useradd -g police jerry
useradd -g bandit xh
;useradd -g bandit xq
为四个用户创建密码:
-
jack创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限
创建一个文件:
vim jack.txt
自己可以读写(6),本组人可以读(4),其它组没人任何权限(0):
chmod 640 jack.txt
-
jack修改该文件,让其它组人可以读,本组人可以读写
chmod o=r,g=rw jack.txt
-
xh投靠警察,看看是否可以读写.
将xh的组修改为police,usermod -g police xh
说明:如果要对目录内的文件进行操作,需要有对该目录的相应权限
1.建立两个组(神仙(Sx),妖怪(yg))
2.建立四个用户(唐僧(ts),悟空(wk),八戒(bj),沙僧(ss))
3.设置密码
4.把悟空,八戒放入妖怪唐僧沙僧在神仙
5.用悟空建立一个文件(monkey.java 该文件要输出i am monkey)
6.给八戒一个可以r w的权限,八戒属于组中,只需修改组权限。
7.八戒修改monkey.java加入一句话(i am pig)
8唐僧沙僧对该文件没有权限,唐僧沙僧属于sx组
,修改该文件其它组权限为0
9.把沙僧放入妖怪组
10.让沙僧修改该文件 monkey,加入一句话(“我是沙僧,我是妖怪!");
11.对文件夹rwx的细节!!!
x:表示可以进入到该目录,比如cd
r:表示可以ls,将目录的内容显示
w:表示可以在该目录,删除或者创建文件