【Linux运维】04-Linux用户管理

本文深入讲解了Linux系统中的用户和用户组概念,包括用户权限分配、主组与附加组、添加、修改和删除用户组及用户的方法,还涉及了密码设置、切换用户、配置文件等内容,适合运维和开发人员参考。

小伙伴们好,我是「 行走的程序喵」,感谢您阅读本文,欢迎一键三连~

😻 【Java基础】专栏,Java基础知识全面详解:👉点击直达

🐱 【Mybatis框架】专栏,入门到基于XML的配置、以及基于注解的高级开发详解:👉点击直达

🐵 【Linux运维】专栏,从系统安装到运维大师进阶教程笔记全记录:👉点击直达

放弃不难,但坚持一定很酷


一、用户组和用户概念

​ Linux 系统是一个多用户多任务的操作系统,所谓多用户多任务,是指支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

​ 每个账号都拥有一个唯一的用户名和各自的密码,用户在登录时输入正确的用户名和密码后,就能够进入系统,默认会进入到这个用户自己的主目录

​ 针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源。

​ 用户组是具有相同特征用户的逻辑集合,简单来说,就是具有相同权限的用户的集合

  • 用户和用户组 的关系

    一个用户可以属于一个用户组,具有此用户组的权限 ;

    一个用户可以属于多个用户组,此时具有多个组的共同权限。

  • 主组

    用户创建时默认所属的组,每个用户的主组只能有一个。创建用户时会同时创建一个和用户名相同的组。

  • 附加组

    每个用户只能有一个主组,除主组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组

  • 相关配置文件

    ⭐ /etc/passwd 用户配置文件,存储用户的基本信息

    ⭐ /etc/group 存储用户组的信息

    ⭐ /etc/shadow 存储用户的密码信息

二、用户组操作

2.1、添加用户组

  • 语法

    # groupadd -[选项] 用户组名称
    
    选项说明:
    -g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复
    
  • 示例

    在系统中添加一个hr的用户组
    # groupadd hr
    
    在系统中添加一个test的用户组并指定定编号1100
    # groupadd -g 1100 test
    

2.2、修改用户组

  • 语法

    # groupmod [选项 选项的值] 原来组的组名称
    
    选项说明:
    -g :gid缩写,设置一个自定义的用户组ID数字,1000以后
    -n :name缩写,设置新的用户组的名称
    
  • 示例

    把hr用户组更名为szhr
    # groupmod -n szhr hr
    
    把test用户组的组编号由1100更改为1003
    # groupmod -g 1003 test
    
    把test组的组名称更改为admin且用户组的组编号更改为1004
    # groupmod -g 1004 -n admin test
    

2.3、删除用户组

  • 语法

    # groupdel 用户组名称
    

2.4、用户组相关配置文件

​ ⭐ /etc/group 存放用户组信息

# tail -3 /etc/group

输出:
root:x:0:
hr:x:1000:

文件解析:
第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

三、用户操作

3.1、添加用户

  • 语法

    # useradd [选项 选项的值] 用户名称
    
    选项说明:
    -g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)。如果不指定该选项,默认情况下,系统会自动在用户组中创建一个与用户名同名的用户组,这个组就是这个用户的主组
    
    -s :代表指定用户可以使用的Shell类型,默认	为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。
    /bin/bash => 给人使用的(运维工程师)
    /sbin/nologin => 给软件使用的
    
    -G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
    
    -u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
    
    -c :代表用户的备注信息
    
    -d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
    
    -n :取消建立以用户名称为名的群组(了解)
    
  • 注意

    新增的用户没有密码,不能登录系统!

  • 示例

    在系统中创建一个linuxuser账号
    # useradd linuxuser
    
    在系统中创建一个账号zhangsan,指定用户所属的主组为admin
    # useradd -g admin zhangsan
    
    在系统中创建一个账号lisi,指定主组为admin,此用户只能被软件所使用,不能用于登录操作系统
    # useradd -g admin -s /sbin/nologin lisi
    
    在系统中创建一个wangwu,指定主组为wangwu,附属组为admin
    # useradd -G admin wangwu
    

3.2、修改用户

  • 语法

    # usermod [选项 选项的值] 用户名称
    选项说明:
    -g :修改用户所属的主组的编号
    -l :login name修改用户的名称
    -s :修改用户可以使用的Shell类型,如/bin/bash => /sbin/nologin
    
    扩展:
    -L:锁定用户,锁定后用户无法登陆系统lock
    -U:解锁用户unlock
    
    了解:
    -G :修改用户附属组的编号信息
    -d :修改用户的家目录
    -c :修改用户的备注信息
    
  • 示例

    修改zhangsan账号信息,更名为zs
    # usermod -l zs zhangsan
    
    修改wangwu账号信息,把用户的主组的编号更新为1000(admin)
    # usermod -g 1000 wangwu
    
    禁止linuxuser账号登录Linux操作系统
    # usermod -s /sbin/nologin linuxuser
    
    禁止linux用户登录操作(锁定)
    # usermod -L linux
    
    解锁linux用户
    # usermod -L linux
    

3.3、设置用户密码

  • 语法

    # passwd 用户名称
    
    为某个用户设置密码(添加或修改),可以给自己也可以给别人设置
    
  • 示例

    修改自己的密码
    # passwd
    
    为linux账号添加一个密码
    # passwd linux
    
    【注意】以上操作根据提示输入即可
    

3.4、删除用户

  • 语法

    # userdel [选项] 用户名称
    
    选项说明:
    -r :删除用户的同时,删除用户的家(默认不删除)
    

删除账号流程:① 删除账号 ② 确认是否删除用户家 ③ 删除用户主组(没有其他用户)

  • 扩展

    要删除名为“linux”的用户账号时,系统提示当前账号正在被某个进程所使用

    【解决方案】

    第一种方案:找到登录的这个用户,然后将其直接注销

    第二种方案:

    # kill [-9] 进程的ID编号
    选项说明:-9代表强制结束某个进程
    主要功能:用于结束某个进程的继续运行
    

    案例:结束11565进程

    # kill 11565
    

    简单粗暴,kill 对应用户的全部进程(尽量斩草除根,结束父进程)

    # ps -ef | grep linux
    
    ps命令:查看进程
    -ef :查看系统的所有进程
    |:管道命令
    grep linux:搜索包含了linux关键词的所有进程
    

    结束完成后,再次使用userdel删除即可

3.5、查看用户信息

  • 语法

    # id 用户名
    
  • 示例

    # id linuxuser
    
    输出:
    uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser)
    
    说明:
    uid:用户编号
    gid:用户所属的主组的编号
    groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息
    

3.6、切换用户

  • 语法

    # su [-] 用户名
    
    选项:
    - :横杠(减号),代表切换用户的同时,切换目录到用户的家
    

从超级管理员切换到普通用户,root => admin,不需要输入admin的密码

从普通账号切换到超级管理员,admin=> root,需要输入root的密码

从普通账号切换到普通账号,admin=> linuxuser,也需要输入linuxuser密码

3.7、用户相关配置文件

/etc/passwd 每创建一个用户,其就会在此文件中追加一行,存放用户信息。

# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash

共7列
第1列:用户名称
第2列:用户的密码,使用一个x占位符,真实密码存储在/etc/shadow(1-用户名,2-加密密码)
第3列:数字,用户的ID编号
第4列:数字,用户的主组ID编号
第5列:代表注释信息,useradd -c "备注信息" 用户名称
第6列:用户的家目录,默认在/home/用户名称
第7列:用户可以使用的Shell类型,useradd -s /bin/bash或/sbin/nologin 用户名称

/etc/shadow 存放用户密码

​ 由于 /etc/passwd文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了shadow文件中。

​ /etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

​ 存储的是加密后的密码,就是 $ 开头的字符串,如果显示为 !! ,则表示这个用户没有设置密码。

3.8、wheel组(了解)

​ Linux系统中,理论上只有在wheel组中的普通用户,才可以通过su命令切换到root账户,默认所有普通用户都能切换到root,只要知道root密码,换句话说,默认此配置不生效。


往期精彩内容

🔥 《Java入门到精通学习手册》
🔥 《Mybatis连接池、事务控制和复杂查询》

持续更新更多内容… 欢迎小伙伴们前来围观~

感谢小伙伴们的厚爱!都到这里了,来个👍三👍连👍再走吧~

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走的程序喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值