【Linux操作系统教程】用户管理与权限管理你真的懂了吗(三)

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD

如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好测试✌️。

如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

文章目录

一、背景

最近经常使用root用户去操作一些文件,导致普通用户无法访问,所以就开始改文件权限和文件所属组,感觉这一块的知识点还是有必要掌握,记在脑子里之后这样就不用另外查阅资料啦。

在Linux系统中可以配置多个用户、多个用户组,也可以将用户加入多个用户组中。

当在命令行输入ls -l时,可以看到下图展示的内容,接下来我们一一讲解。

  • 第一列,表示文件,文件夹的权限控制信息
  • 第二列,表示文件、文件夹所属用户
  • 第三列,表示文件、文件夹所属用户组

权限控制信息

咱们先来聊聊权限控制,权限控制信息这一列总共有10个槽位,例如 drwxr-xr-x

  • 第一列表示文件类型:d 表示文件夹,-表示文件,l表示软连接
  • rwx分别表示读写执行,分别可以用数字 4 2 1 代替;针对文件权限信息,可以使用root权限自由修改,我们一会就会聊到。

二、用户管理

  1. 创建用户

    格式:useradd [-g -d ]用户名

    bash 复制代码
    参数 -g 表示指定用户的组,如果不指定-g,则会创建用户组并自动加入,-g后面的用户组需要已经存在的。
    参数 -d 表示指定用户home路径,如果不指定,则默认是在/home/用户名
    bash 复制代码
    useradd zeng1
    useradd zeng2 -g TestGroup -d /home/zeng
  2. 删除用户

    格式:userdel [-r] 用户名

    bash 复制代码
    参数 -r 表示删除用户的HOME目录,不使用-r,删除用户时,HOME 目录保留
    bash 复制代码
    userdel -r zeng1
  3. 查看用户所属组
    id 用户名

    如果id后面没有加用户名,则表示查看自身

  4. 修改用户所属组
    usermod -aG 用户组 用户名 :将指定用户加入指定的用户组。

  5. 查看当前系统中有哪些用户
    getent passwd

    在上图展示的信息分别为 用户名:密码(x):用户名ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash),enmmm,这一块就先简单了解下吧。

  6. 切换用户------su命令

    su命令来源于Switch User
    su zeng1

    需要注意以下几点:

    (1)切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键 ctrl + d

    (2)使用普通用户,切换到其它用户需要输入密码,如切换到root用户。

    (3)使用root 用户切换到其它用户,无需密码,即可直接切换。

  7. 命令授权 ------sudo
    sudo 命令 在其它命令之前,带上sudo,即可为这一条命令临时赋予root权限。

三、用户组

  1. 创建用户组
    groupadd 用户组名

    bash 复制代码
    groupadd TestGroup
  2. 删除用户组
    groupdel 用户组名

    bash 复制代码
    groupdel TestGroup
  3. 查看系统全部组信息
    getent group

四、修改文件、文件夹的所属用户和用户组------chown

使用命令chown

  1. 修改所属用户
    在root用户下创建一个文件Project,所属用户为root,现在通过chown zeng1 Project ,将所属组修改为zeng1,具体操作如下图所示:

  2. 修改所属用户组
    chown :TestGroup Project: 将Project 所属用户组修改为TestGroup
  3. 其他案例
bash 复制代码
chown root:test hello.txt 将hello.txt 所属用户修改为root,用户组修改为test
chown -R root test 将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

五、更改权限------chmod

chmod u=rwx,g=rx,o=x hello.txt 更改文件权限
chmod -R u=rwx,g=rx,o=x hello ,更改文件夹权限
注意:-R 对文件夹内的全部内容应用同样规则。

权限 描述 案例
0 表示无任何权限 ---
1 仅有x权限 --x
2 仅有w权限 -w-
3 有w和x权限 -wx
4 仅有r权限 r--
5 有r和x权限 r-x
6 有r和w权限 rw-
7 有rwx权限 rwx
bash 复制代码
chmod 515 hello.txt
chmod 326 hello.txt

在工作中经常使用的命令是chmod和chown,所以这一块要熟知下。

德拉克罗瓦曾说过:无论哪一行,都需要职业的技能。天才总应该伴随着那种导向一个目标的有头脑的不间断的练习,没有这一点,甚至连最幸运的才能,也会无影无踪地消失。

相关推荐
我的运维人生19 小时前
利用Python与Ansible实现高效网络配置管理
网络·python·ansible·运维开发·技术共享
我命由我123452 天前
ADB 之 logcat 极简小抄(过滤日志、保存日志到文件)
android·运维·adb·android studio·安卓·运维开发·android-studio
Aomnitrix2 天前
网络协议全景:Linux环境下的TCP/IP、UDP
linux·运维·网络·c++·网络协议·tcp/ip·运维开发
小阿轩yx4 天前
小阿轩yx-案例:Zabbix监控kubernetes云原生环境
linux·云原生·kubernetes·云计算·zabbix·运维开发
小阿轩yx4 天前
小阿轩yx-Zabbix企业级分布式监控环境部署
linux·分布式·云计算·zabbix·运维开发·企业级监控部署
成都古河云5 天前
智慧体育场馆:科技引领未来运动体验
大数据·网络·人工智能·科技·物联网·运维开发
Linux运维老纪5 天前
基于k8s手动部署rabbitmq集群(Manually Deploying RabbitMQ Cluster Based on k8s)
linux·云原生·kubernetes·rabbitmq·运维开发
我的运维人生5 天前
Pyecharts数据可视化大屏:打造沉浸式数据分析体验
信息可视化·数据挖掘·数据分析·运维开发·技术共享
一瓢一瓢的饮 alanchan5 天前
【运维监控】Prometheus+grafana监控zookeeper运行情况
linux·运维·zookeeper·运维开发·grafana·prometheus·运维监控
Linux运维老纪5 天前
基于zabbix实现监控Jenkins过程---超详细
linux·云计算·jenkins·zabbix·运维开发