• Linux用户管理之su、whoami、groupadd、groupmod、groupdel命令讲解


    Linux su命令用于把当前用户变更为其他使用者的身份,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换,除 root 外,需要输入该使用者的密码,这是什么意思呢?

    普通用户之间切换以及普通用户切换至root用户,都需要输入对方的密码才能实现切换;从root用户切换至其他用户,无需对方密码,直接可切换成功。

    一、Linux用户切换命令:su

    su 命令的格式如下:

    su [选项] 用户名

    该命令常用的选项及各自的含义如下:

    • -:不仅把当前用户切换到指定用户,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项如果省略用户名,则默认切换到 root 用户。

    • -l:作用和上一个参数 - 类似,也就是在切换用户身份的同时,完整切换工作环境,但后面必须要加上需要切换的账号

    • -p-m:表示切换为指定用户的身份,但不改变当前的工作环境

    • -c:仅切换用户执行一次命令,执行后自动切换回来

    1、比如当前登录系统的用户是 chuan,我想切换到 root 用户:

    $ su root

    2、切换帐号为 root 并在执行 ls 命令后自动切换到原来的用户:

    $ su -c ls root

    image
    具体什么意思呢?我现在登录的账号是 chuan,在执行su -c ls root命令之后,首先要我们输入root用户密码,输入回车之后,系统会以root用户执行ls命令,执行完成之后,立马自动切换回chuan用户了。

    3、注意,使用 su 命令时,有 - 和没有 - 是完全不同的

    - 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。

    4、切换回以前的用户

    比如当前登录用户是chuan,执行了su root命令之后,想切换回chuan用户,执行 exit 命令即可。

    二、whoami 命令和 who am i 命令

    别看这两个个命令字母都是一样,唯一的差别是第二个命令多了两个空格,但是这是两条完全是不同的,前者用来打印当前执行操作的用户名,后者则用来打印登陆当前 Linux 系统的用户名。

    比如我现在登录的是chuan用户,分别执行这两条命令看下:

    image

    然后我用su命令切换到root用户:

    image

    可以看出,在未切换用户之前,whoamiwho am i 命令的输出都是chuan用户的信息,但使用 su 命令切换用户后,使用 whoami 命令打印的是切换后的用户名,而 who am i 命令打印的仍然是登陆系统时所用的用户名。

    三、添加用户组命令:groupadd

    添加用户组的命令是 groupadd,新工作组的信息将被添加到系统文件中,命令格式如下:

    groupadd [选项] 组名

    该命令常用的选项及各自的含义如下:

    • -g:指定新建工作组的id
    • -r:创建系统工作组,系统工作组的组ID小于500

    用户组相关的文件:

    • /etc/group 组账户信息。
    • /etc/gshadow 安全组账户信息。

    比如建立一个新组,组名是groupname1,并设置组ID加入系统:

    groupadd -g 344 groupname1

    我们查看一下用户组文件/etc/group:

    image

    四、修改用户组信息:groupmod

    该命令用于更改群组识别码或名称,命令格式如下:

    groupmod [选项] 组名

    该命令常用的选项及各自的含义如下:

    • -g GID:修改组 ID
    • -n 新组名:修改组名

    比如把上一步创建的组名 groupname1 修改为 testgroup

    $ groupmod -n testgroup groupname1

    image

    提示:组名和 GID 不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的。

    五、删除用户组信息:groupdel

    groupdel 命令用于删除指定的工作组,倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。命令格式如下:

    groupdel 组名

    通过前面的学习我们知道,使用 groupdel 命令删除群组,其实就是删除 /etc/gourp 文件和 /etc/gshadow 文件中有关目标群组的数据信息。

    比如现在系统中有名为 groupname2的群组,通过查看上述两个文件可以看到该群组的信息。执行用户组删除命令之后,再次查看上述两个文件信息已经查询不到了:

    image

    注意:使用 groupdel 不能随意删除群组,如果有群组还是某用户的初始群组,则无法删除。

    image

    如上图,执行命令 groupdel chuan 删除名为chuan的群组删除失败。

    Linux用户管理到这里就基本讲解完毕了,下一章开始未大家开始讲解Linux软件包管理相关知识。

    image

  • 相关阅读:
    Android JNI用于驱动測试
    shell实例浅谈之三产生随机数七种方法
    WEB安全实战(二)带你认识 XSS 攻击
    前端和云端性能分析工具分析报告
    【翻译】Ext JS——高效的编码风格指南
    dubbo协议
    JavaBean对象转map
    messagePack编解码
    主流编码框架
    java编解码技术,json序列化与二进制序列化
  • 原文地址:https://www.cnblogs.com/jiupai-Linux/p/13497730.html
Copyright © 2020-2023  润新知