Linux组管理与权限管理

  • 简介
  • 1. Linux 组基本介绍
  • 2. 文件/目录的所有者
  • 2.1 查看文件的所有者:ls -ahl
  • 2.2 修改文件所有者:chown 用户名 文件名
  • 3. 组的创建:groupadd 组名
  • 4. 文件/目录的所在组
  • 4.1 查看文件/目录所在组:ls -ahl
  • 4.2 修改文件所在的组:chgrp 组名 文件名
  • 5. 其它组
  • 6. 改变用户所在组
  • 6.1 改变用户所在组:usermod -g 组名 用户名
  • 6.2 应用实例
  • 7. 权限的基本介绍
  • 8. *rwx 权限详解(文件与目录的区别)
  • 8.1 rwx 作用到文件
  • 8.2 rwx 作用到目录
  • 8.3 权限操作的注意事项
  • 9. 文件及目录权限实际案例
  • 10. 修改文件/目录的权限-chmod
  • 修改权限的两种方式
  • 11. 修改文件所有者&所有组-chown
  • 12. 修改文件所在组-chgrp


简介

用户管理命令:

  • useradd 添加新用户
  • passwd 设置用户密码
  • id 查看用户是否存在
  • cat /etc/passwd 查看创建了哪些用户
  • su 切换用户
  • userdel 删除用户
  • who 查看登录用户信息
  • sudo 设置普通用户具有root权限
  • usermod 修改用户

用户组管理命令:

  • groupadd 新增组
  • groupdel 删除组
  • groupmod 修改组
  • cat /etc/group 查看创建了哪些组

文件权限类命令:

  • ls -ahl 文件属性
  • chmod 改变权限
  • chown 改变所有者
  • chgrp 改变所属组

1. Linux 组基本介绍

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

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

2. 文件/目录的所有者

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

2.1 查看文件的所有者:ls -ahl

1.指令:

ls -ahl

2.应用实例

创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个文件 ok.txt,查看文件的所有者。

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_hg

2.2 修改文件所有者:chown 用户名 文件名

1.指令: chown——change own

chown 用户名 文件名

2.应用案例

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

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_bc_02

3.注意:修改文件所有者,并不会改变文件的所有组。

3. 组的创建:groupadd 组名

1.基本指令

groupadd 组名

2.应用实例:见2.1

4. 文件/目录的所在组

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

4.1 查看文件/目录所在组:ls -ahl

基本指令:

ls –ahl

4.2 修改文件所在的组:chgrp 组名 文件名

1.基本指令:chgrp——change group

chgrp 组名 文件名

2.应用实例

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

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_bc_03

3.注意:修改文件所有组,并不会改变文件的所有者。

5. 其它组

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

6. 改变用户所在组

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

6.1 改变用户所在组:usermod -g 组名 用户名

usermod –g 组名 用户名

注意

  • 当在root下使用usermod改变用户所在组时,并不会改变该用户家目录及目录下所有文件的所在组;
  • 可以使用:chgrp -R 组名 家目录

usermod –d 目录名 用户名 (功能描述:改变该用户登陆的初始目录)

6.2 应用实例

创建一个土匪组(bandit) 将 tom 这个用户从原来所在的 police 组, 修改到 bandit(土匪) 组

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_hg_04

7. 权限的基本介绍

权限:主要指的是文件和目录的权限

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

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

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_hg_05

0-9 位说明:

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

centos服务器对管理员账号进行三权分立 linux三权分立账号权限_bc_06

8. *rwx 权限详解(文件与目录的区别)

8.1 rwx 作用到文件

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

8.2 rwx 作用到目录

  1. [ r ]代表可读(read):具有浏览目录的权限, 使用ls 查看目录内容
  2. [ w ]代表可写(write):可以修改,具有新建,删除,修改,移动目录内文件的权限
  3. [ x ]代表可执行(execute):对目录了来说该用户具有进入目录的权限。

8.3 权限操作的注意事项

1.目录的只读访问:g=r

  • 不允许同组用户使用 cd 进入目录,必须要有 x 权限才能进入;
  • 但可以使用 ls 查看该目录下的内容

2.目录的只执行访问:g=x

  • 只有执行权限只能进入目录,但不能看到目录下的内容;
  • 要想看到目录下的文件名和目录名,需要可读 r 权限;
  • 虽然看不到目录下的文件名和目录名,但是也可以根据目录文件名(你得知道)及对应权限进行操作。

3.一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外。

4.目录的w位不设置

  • 即使你拥有目录中某文件的w权限也不能写该文件

5.如果把一个文件赋予可执行权限,则系统可以运行该文件中的命令

9. 文件及目录权限实际案例

ls -l 中显示的内容如下: (记住)

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

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

1)第一个字符代表文件类型:

  • d:表示目录
  • -:表示普通文件
  • l:软链接
  • c:字符设备【键盘、鼠标……】
  • b:块文件,硬盘

2)其余字符每 3 个一组(rwx): 读®、 写(w)、 执行(x)

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

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

3)1 :

  • 对于文件:文件的硬连接数
  • 对于目录:目录的子目录数(包含隐藏文件)

4)文件/目录的所属用户:root 用户

5)文件/目录的所属用户组:root 组

6)1213 :

  • 如果是文件:代表文件大小(单位:字节 B);
  • 如果是文件夹:显示 4096

7)Feb 2 09:39 代表:最后的修改日期时间

8)abc 文件名

10. 修改文件/目录的权限-chmod

基本说明:通过 chmod 指令, 可以修改文件或者目录的权限

修改权限的两种方式

chmod [可选项] < mode > <file…>

参数:-R

  • recursive:change files and directories recursively
  • 以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更

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

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

1)chmod u=rwx,g=rx,o=x 文件目录名:=代表赋予权限

2)chmod o+w 文件目录名 :+代表增加权限

3)chmod a-x 文件目录名:-代表除去权限

案例演示:

  1. 给 abc 文件 的所有者读写执行的权限, 给所在组读执行权限, 给其它组读执行权限
  2. 给 abc 文件的所有者除去执行的权限, 增加组写的权限
  3. 给 abc 文件的所有用户添加读的权限

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

  • 规则: r=4 w=2 x=1 ,rwx=4+2+1=7
  • chmod u=rwx,g=rx,o=x 文件目录名 相当于 chmod 751 文件目录名

案例演示:

要求: 将 /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

11. 修改文件所有者&所有组-chown

同时改变文件所有者和所有组:

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

案例演示:

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

chown -R tom kkk/

12. 修改文件所在组-chgrp

1.基本介绍

  • chgrp newgroup file 改变文件的所有组
  • -R :如果是目录,则使其下所有子文件或目录递归生效

案例演示:

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

chgrp -R bandit /home/kkk