Linux实操-组管理和权限管理

Linux实操-组管理和权限管理

Linux实操-组管理和权限管理

[TOC]

Linux实操-组管理和权限管理 ※

Linux组基本介绍

在linux中的每个用户必须属于一个组,不能独立于组外。

在linux中每个文件有所有者、所在组、其它组的概念。

1) 所有者
2) 所在组
3) 其它组
4) 改变用户所在的组

文件/目录所有者问题

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

查看文件的所有者

指令

1
ls –ahl

应用实例

创建一个组police,再创建一个用户tom,将tom放在police组 ,然后使用tom来创建一个文件ok.txt,看看情况如何。

1
2
groupadd police
useradd -g police tom

ls-1

修改文件所有者

指令

1
chown 用户名 文件名

应用案例

使用root创建一个文件apple.txt,然后将其所有者修改成tom

1
2
3
4
touch apple.txt
ls -ahl
chown tom apple.txt
ls -ahl

ls-2

组的创建

基本指令

1
groupadd 组名

应用实例

  • 创建一个组,monster
1
groupadd monster
  • 创建一个用户fox,并放入到monster组中
1
useradd -g monster fox

group-1

文件/目录所在组

当某个用户创建了一个文件后,默认情况下,这个文件的所在组就是该用户所在的组。

查看文件/目录所在组

基本指令

1
ls –ahl

修改文件所在的组

基本指令

1
chgrp 组名 文件名

应用实例

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

chgrp-1

其他组

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

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。

基本指令

1
usermod –g 组名 用户名
  • 改变该用户登陆的初始目录
1
usermod –d 目录名 用户名

应用实例

创建一个土匪组bandittom这个用户从原来所在的police组,修改到bandit 组。

1
usermod -g bandit tom

usermod-1

权限的基本介绍

指文件目录的权限

1
ls  -l

中显示的内容如下:

1
-rw-r--r--. 1 tom police 0 5月  15 20:58 ok.txt

权限-1

1
文件类型(1) 所有者权限(3) 所在组权限(3) 其他用户权限(3). 硬链接与目录数目 文件拥有者名 文件所在组名 文件大小 最后修改时间 文件名

- rw- r-- r--0-9位说明

  • 第0位-确定文件类型

-:普通文件
d:目录
l:连接文件
c:字符设备文件[键盘,鼠标]
b:块设备文件[硬盘]

  • 第1-3位rw-确定所有者(该文件的所有者)拥有该文件的权限。

r:读
w:写权限
x:执行权限
-:没有权限

  • 第4-6位r--确定所属组(同用户组的)拥有该文件的权限

只有读的权限。

  • 第7-9位r--确定其他用户拥有该文件的权限

1

如果是文件,表示硬链接的数目
如果是目录,则表示有多少个子目录

0

表示文件大小
如果是目录,则统一为4096

rwx权限详解

rwx作用到文件※

  • r代表可读(read)

可以读取,查看。

  • w代表可写(write)

可以修改,但是不代表可以删除该文件。
删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。

  • x代表可执行(execute)

可以被执行

rwx作用到目录※

  • r代表可读(read)

可以读取,ls查看目录内容

  • w代表可写(write)

可以修改,目录内创建+删除+重命名目录

  • x代表可执行(execute)

可以进入该目录

文件及目录权限实际案例

ls -l中显示的内容如下

1
drwx------. 4 admin admin 4096 5月 9 05:36 admin

10个字符确定不同用户能对文件干什么

mod

第一个字符代表文件类

-:文件
d:目录
l:链接

其余字符每3个一组

r:读
w:写
x:执行

第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件所在组的用户的权限是读、写但不能执行
第三组r--:不与文件拥有者同组的其他用户的权限是读不能写和执行

可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7

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

修改权限

通过chmod指令,可以修改文件或者目录的权限。

第一种方式:+ 、-、= 变更权限

u:所有者
g:所有组
o:其他人
a:所有人(u、g、o的总和)

  • 给所有者rwx, 给所在组的用户rx, 给其他人x
1
chmod u=rwx,g=rx,o=x 文件、目录
  • 给其它用户增加w的权限
1
chmod o+w 文件、目录
  • 给所有用户去掉x权限
1
chmod a-x 文件、目录

案例演示

  • 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
1
chmod u=rwx,g=rx,o=rx abc
  • 给abc文件的所有者除去执行的权限,增加组写的权限。
1
chmod u-x,g+w abc
  • 给abc文件的所有用户添加读的权限 。
1
chmod a+r abc

chmod-1

第二种方式:通过数字变更权限

r=4,w=2,x=1
rwx=4+2+1=7

1
chmod u=rwx,g=rx,o=x 文件、目录

相当于

1
chmod 751 文件、目录

案例演示

  • /home/abc.txt文件的权限修改成rwxr-xr-x,使用给数字的方式实现。
1
2
chmod u=rwx,g=xr,o=x /home/abc.txt
chmod 751 /home/abc.txt

修改文件所有者

基本介绍

  • 改变文件的所有者
1
chown newowner file
  • 改变用户的所有者和所有组
1
chown newowner:newgroup file
  • 如果是目录 则使其下所有子文件或目录递归生效
1
-R

案例演示

  • /home/abc.txt文件的所有者修改成tom。

chown-1

1
chown tom /home/abc.txt
  • /home/kkk目录下所有的文件和目录的所有者都修改成tom

需要root权限

1
chown –R tom /home/kkk
  • home下的所有文件和目录的所有者都改成 tom,将所在组改成police
1
chown –R tom:police /home/

改变文件所在组

基本介绍

  • 改变文件的所有组
1
chgrp newgroup file

案例演示

  • /home/abc.txt文件的所在组修改成shaolin
1
chgrp shaolin /home/abc.txt
  • /home/kkk目录下所有的文件和目录的所在组都修改成shaolin
1
chgrp -R shaolin /home/kkk

权限实践-警察土匪游戏

police,bandit

jack,jerry:警察
xh,xq:土匪

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

要给用户提前指定密码。

1
2
3
4
su - jack
vim jack1.txt
~hello jack1
chmod 640 jack1.txt

权限实践-1

  • jack 修改该文件,让其它组人可以读, 本组人可以读写。
1
chmod o=r,g=rw jack1.txt

权限实践-2

  • xh投靠警察,看看是否可以读写。
1
2
3
su - xh
cd /home/jack/
~权限不够

权限实践-3

使用root修改xh所在组

1
2
3
su
usermod -g police xh
id xh

权限实践-4

xh用户可以进入jack目录并且可以修改文件

1
2
3
4
5
6
su - jack
chmod g=rw jack/

su - xh
cd /home/jack //可以进入
vim jack1.txt //可以写

xq用户没有权限进行修改

课后练习1

  • 建立两个组神仙,妖怪
1
2
groupadd shenxian
groupadd yaoguai
  • 建立四个用户唐僧悟空八戒沙僧
1
2
3
4
useradd tangseng
useradd wukong
useradd bajie
useradd shaseng
  • 设置密码

  • 悟空八戒放入妖怪组;唐僧沙僧放入神仙

1
2
3
4
usermod -g yaoguai wukong
usermod -g yaoguai bajie
usermod -g shenxian tangseng
usermod -g shenxian shaseng
  • 悟空建立一个文件monkey.go该文件要输出i am monkey

wukong用户登录

1
2
3
vim monkey.go
~i am monkey
~:wq
  • 八戒一个可以rw的权限

wukong用户登录

1
chmod 770 monkey.go
1
chmod 751 /home/wukong/
  • 八戒修改monkey.go加入一句话i am pig

bajie用户登录

1
2
3
4
cd /home/wukong/
vim monkey.go
~i am pig
~:wq
  • 唐僧沙僧对该文件没有权限

wukong用户登录

1
chmod 770 monkey.go
  • 沙僧放入妖怪

root用户登录

1
usermod -g yaoguai shaseng
  • 沙僧修改该文件monkey.go,加入一句话`我是沙僧,我是妖怪!

shaseng用户登录

1
2
3
4
cd /home/wukong
vim monkey.go
~我是沙僧,我是妖怪!
~:wq
文章作者: HibisciDai
文章链接: http://hibiscidai.com/2020/05/13/Linux实操-组管理和权限管理/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
支付宝打赏
微信打赏