zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Linux 组管理和权限管理

2023-02-18 16:40:55 时间

# Linux 组管理和权限管理

# Linux组基本介绍

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

  • 所有者
  • 所在组
  • 其他组
  • 改变用户所在的组

# 文件/目录 所有者

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

# 查看文件的所有者

指令:ls -ahl

# 修改文件所有者

指令:chown 用户名 文件名

# 组的创建

# 基本指令

groupadd 组名

  • 选项说明

-g gid :用户组ID

-r :建立系统组

# 应用实例

创建一个组,monster groupadd monster 创建一个用户fox,并放入到monster组中 useradd -g monster fox 创建普通用户组 group1,其ID值为1000 groupadd -g 1000 group1

# 文件/目录 所在组

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

# 查看文件/目录所在组

指令:ls -ahl(ll)

# 修改文件/目录所在的组

指令: chgrp 组名 文件名

  • 应用实例

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

# 其他组

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

# 改变用户所在组

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

# 基本指令

usermod 选项 用户名

  1. usermod -g 新组名用户名
  2. usermod -d 目录名用户名、改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。
  • 选项说明

-c comment:修改用户的注释信息

-g group:修改用户所属的主群组

-G group:修改用户所属的附加群租,多个群组以","分隔.

-l name:修改用户账号名称

-L:锁定用户,使其不能登录

-U:解除对用户的锁定

-u UID:修改用户的ID值

-d home:修改用户的主目录

-p passwd:修改用户密码

  • 应用实例:

将zwj这个用户从原来所在组,修改到wudang组 usermod -g wudang zwj

# 权限的基本介绍

ls -l中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9位说明

第О位确定文件类型(d,- , l ,c , b)

-是普通文件

l是链接,相当于windows的快捷方式

d是目录,相当于windows的文件夹

c是字符设备文件,鼠标,键盘

b是块设备,比如硬盘

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

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

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

# rwx权限详解,难点

# rwx作用到文件

  1. [ r ]代表可读(read):可以读取,查看
  2. [ w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  3. [x ]代表可执行(execute);可以被执行

# rwx作用到目录

  1. [ r ]代表可读(read):可以读取,ls查看目录内容
  2. [ w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
  3. [x ]代表可执行(execute);可以进入该目录

# 文件及目录权限实例案例

# ls -l中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

  • 10个字符确定不同用户能对文件干什么 第一个字符代表文件类型: -l dcb 其余字符每3个一组(rwx)读(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

# 基本说明

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

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

  • u:所有者 g:所有组 o:其他人 a:所有人(u,g,o的总和)
  1. chmod u=rwx,g=rx,o=x 文件/目录名
  2. chmod o+w 文件/目录名
  3. chmod a-x 文件/目录名
  • 案列演示:

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

# 修改文件所有者-chown

# 基本介绍

  • chown newowner文件/目录改变所有者
  • chown newowner:newgroup文件/目录改变所有者和所在组
  • -R 如果是目录则使其下所有子文件或目录递归生效
  • 案例演示:

请将/homelabc.txt文件的所有者修改成tom chown tom /home/abc.txt 请将/home/test目录下所有的文件和目录的所有者都修改成tom chown -R tom /home/test

# 修改文件/目录所在组-chgrp

# 基本介绍

chgrp newgroup文件/目录 【改变所在组】

# 案例演示

请将/home/abc .txt文件的所在组修改成shaolin(少林) groupadd shaolin chgrp shaolin /home/abc.txt 请将/home/test目录下所有的文件和目录的所在组都修改成shaolin(少林) chgrp -R shaolin /home/test

# 最佳实践-警察和土匪游戏

police,bandit

jack,jerry:警察

xh,xq:土匪

  1. 创建组

groupadd police;groupadd bandit

  1. 创建用户

useradd -g police jack;useradd -g police jerry useradd -g bandit xh;useradd -g bandit xq

  1. jack创建一个文件,自己可以读r写w,本组人可以读,其它组没人任何权限首先jack 登录 ;

首先登陆jack,vim jack.txt;chmod 640 jack.txt

  1. jack修改该文件,让其它组人可以读,本组人可以读写

chmod o=r,g=wr jack.txt

  1. xh投靠警察,看看是否可以读写.

usermod -g police xh

  1. 测试,看看xh是否可以读写,xq是否可以,小结论,就是如果要对目录内的文件进行操作,需要要有对该目录的相应权限

可以用root或者jack把home下jack所在组的读写权限打开,xh就可读写 在jackhome目录下 执行chmod 770 jack