EmmmuaCode EmmmuaCode
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)

wufan

海内存知己,天涯若比邻。
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)
  • Linux

    • Linux基础篇
    • Linux 目录结构
    • Linux 远程登录到Linux服务器
    • Linux Vi和Vim编辑器
    • Linux 虚拟机关机、重启和用户登录注销
    • Linux 用户管理
    • Linux 实用指令
    • Linux 组管理和权限管理
      • Linux组基本介绍
      • 文件/目录 所有者
        • 查看文件的所有者
        • 修改文件所有者
      • 组的创建
        • 基本指令
        • 应用实例
      • 文件/目录 所在组
        • 查看文件/目录所在组
        • 修改文件/目录所在的组
      • 其他组
      • 改变用户所在组
        • 基本指令
      • 权限的基本介绍
      • rwx权限详解,难点
        • rwx作用到文件
        • rwx作用到目录
      • 文件及目录权限实例案例
        • ls -l中显示的内容如下:
      • 修改权限-chmod
        • 基本说明
        • 第一种方式:+,-,=变更权限
      • 修改文件所有者-chown
        • 基本介绍
      • 修改文件/目录所在组-chgrp
        • 基本介绍
        • 案例演示
      • 最佳实践-警察和土匪游戏
    • Linux 定时任务调度
    • Linux 磁盘分区、挂载
    • Linux 网络配置
    • Linux 进程管理
    • Linux RPM与YUM
    • Linux 搭建JavaEE环境
    • Linux Shell编程
    • Linux Python开发平台Ubuntu
    • Python定制篇-APT软件管理和远程登录
    • Linux 日志管理
    • Linux 定制自己的Linux
    • Linux 源码介绍&内核升级
    • Linux 备份与恢复
    • Linux 可视化管理-webmin和bt运维工具
  • Docker

    • Docker 简介
    • Docker 安装
    • Docker 常用命令
    • Docker 镜像原理
    • 本地镜像发布到阿里云
    • 将本地镜像推送到私有库
    • Docker 数据卷
    • Docker 软件安装
  • Maven

    • Maven 简介
    • Maven 基础
    • Maven 高级
  • Git 基础

    • Git 概述
    • Git 安装
    • Git 常用命令
    • Git 分支操作
    • Git 团队协作机制
    • IDEA 集成Git
    • IDEA 集成 GitHub
    • 自建代码托管平台-GitLab
  • studynotes
  • project-management
  • Linux
wufan
2021-12-20
目录

Linux 组管理和权限管理

# Linux 组管理和权限管理

# Linux组基本介绍

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

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

01

# 文件/目录 所有者

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

# 查看文件的所有者

指令: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

#Linux
上次更新: 2024/04/21, 09:42:22
Linux 实用指令
Linux 定时任务调度

← Linux 实用指令 Linux 定时任务调度→

最近更新
01
微信支付功能的实现与流程
11-21
02
购物车与结算区域的深入优化与功能完善
11-21
03
购物车与结算区域的功能实现与优化
11-21
更多文章>
Theme by Vdoing | Copyright © 2023-2024 EmmmuaCode | 黔ICP备2022009864号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式