文章

Linux复习组和权限管理

Linux复习组和权限管理

组管理

1
在linux 中的每个用户必须属于一个组,不能独立于组外。在linux 中每个文件有所有者、所在组、其它组的概念。
1
2
3
4
1)	所有者
2)	所在组
3)	其它组
4)	改变用户所在的组

文件所有者

1
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
1
2
3
4
5
6
7
8
1)	指令:ls -ahl
2)	应用实例:创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个文	件 ok.txt,看看情况如何

groupadd police
useradd -g police tom
passwd tom

touch ok.txt

修改文件所有者

1
指令:chown 用户名 文件名
1
2
3
要求:使用root 创建一个文件apple.txt ,然后将其所有者修改成 tom

chown tom apple.txt

组创建

1
groupadd 组名
1
2
3
4
5
6
7
创建一个组,monster
创建一个用户 fox ,并放入到 monster 组中

groupadd monster
useradd -g monster fox

id fox

查看组

1
当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
1
2
基本指令
	ls –ahl

修改文件所在组

1
2
基本指令
	chgrp 组名 文件名
1
2
3
使用root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 police 组。

chgrp police orange.txt

其他组

1
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.

修改用户所在组

1
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root 的管理权限可以改变某个用户所在的组。
1
2
1)	usermod –g 组名 用户名
2)	usermod –d 目录名 用户名 改变该用户登陆的初始目录。
1
2
3
4
创建一个土匪组(bandit)将 tom 这个用户从原来所在的police 组,修改到 bandit(土匪) 组

usermod -g bandit tom
id tom

权限

1
2
3
4
5
6
7
8
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 
0-9 位说明

1)	第0 位确定文件类型(d目录, -普通文件 , l软连接 , c字符设备(键盘,鼠标) , b块文件(硬盘))
2)	第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。---User
3)	第4-6 位确定所属组(同用户组的)拥有该文件的权限,---Group
4)	第7-9 位确定其他用户拥有该文件的权限 ---Other

rwx权限

  • 作用到文件
1
2
3
1)	[ r ]代表可读(read): 可以读取,查看
2)	[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录	 有写权限,才能删除该文件.
3)  [ x ]代表可执行(execute):可以被执行
  • 作用到目录
1
2
3
1)	[ r ]代表可读(read): 可以读取,ls 查看目录内容
2)	[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
3)	[ x ]代表可执行(execute):可以进入该目录
  • 案例
1
2
3
4
5
6
7
8
ls -l 中显示的内容如下:(记住)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

第一个字符代表文件类型: 文件 (-),目录(d),链接(l)
其余字符每3 个一组(rwx) 读(r) 写(w) 执行(x)
第一组rwx : 文件拥有者的权限是读、写和执行
第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r-- :不与文件拥有者同组的其他用户的权限是读不能写和执行
1
2
3
4
5
6
7
8
可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7

1						文件:硬连接数或 目录:子目录数
root					用户
root					组
1213					文件大小(字节),如果是文件夹,显示 4096 字节
Feb 2 09:39 abc			最后修改日期
abc						文件名

修改文件或目录权限

1
通过chmod 指令,可以修改文件或者目录的权限
  • 第一种方式:+ 、-、= 变更权限
1
2
3
4
5
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

1) chmod u=rwx,g=rx,o=x 文件目录名
2) chmod o+w 文件目录名
3) chmod a-x 文件目录名
1
2
3
给abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。

chmod u=rwx,g=rx,o=rx abc
1
2
3
2) 给abc 文件的所有者除去执行的权限,增加组写的权限

chmod u-x,g+w abc
1
2
3
3) 给abc 文件的所有用户添加读的权限

chmod a+r abc
  • 第二种方式:通过数字变更权限
1
2
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件目录名
1
2
3
4
5
6
7
要求:将 /home/abc.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现:

rwx=4+2+1=7
r-x=4+1=5
r-x=4+1=5

chmod 755 /home/abc.txt

修改文件所有者

1
2
3
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效
1
2
3
1) 请将 /home/abc .txt 文件的所有者修改成 tom

chown tom /home/abc.txt
1
2
3
4
2) 请将 /home/kkk 目录下所有的文件和目录的所有者都修改成tom
首选我们应该使用root 操作。

chown -R tom /home/kkk

修改文件所在组

1
chgrp newgroup file 改变文件的所有组
1
2
3
请将 /home/abc .txt 文件的所在组修改成 bandit (土匪)

chgrp bandit /home/abc.txt
1
2
3
请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 bandit(土匪)

chgrp -R bandit /home/kkk

警匪游戏

1
2
3
police组 , bandit组
jack, jerry: 警察
xh, xq: 土匪
1
2
3
(1) 创建组
bash> groupadd police 
bash> groupadd bandit
1
2
3
4
5
6
(2) 创建用户

useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
1
2
3
4
(3) jack 创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限

切换到jack用户
chomd 640 jack01.txt
1
2
3
4
(4) jack 修改该文件,让其它组人可以读, 本组人可以读写

jack用户下
chmod o=r,g=rw jack01.txt
1
2
3
4
5
6
7
8
9
10
(5) xh 投靠 警察,看看是否可以读写

先用root 修改xh 的组 :
usermod -g police xh

使用jack 给他的家目录 /home/jack 的所在组一个rx的权限
[jack@hadoop1 home]$ chmod g=rx jack/

xh 需要重新注销在到jack 目录就可以操作 jack 的文件
[xh@hadoop1 jack]$ vim jack01.txt
本文由作者按照 CC BY 4.0 进行授权