1.用户和用户组的概念

Linux是一个多用户系统,要使用系统资源就必须在系统内拥有合法的用户账号, Linux系统可以存在多个用户,但是需要使用唯一的用户名来区分不同的用户,同时所有非系统用户都需要设置密码才可以登录到系统。

和人类不同, Linux系统只能使用数字来记录用户。在实现上,Linux系统采用一个32位的整数来记录用户,这意味着在一套 Linux系统中最多可以记录40亿个不同的用户。这个用来区分不同用户的数字被称为 user id,简称UID。

在 Linux系统中,有三类用户,分别是系统用户、普通用户和根用户。普通用户是 Linux的真实用户,这类用户可以通过用户名和密码登录到系统中,通常普通用户的UD大于500;系统用户是系统运行时的一些特殊用户,这类用户往往不能登录到系统中,但是一些进程需要使用这类用户运行,比如系统中的htpd进程就是使用用户 apache运行的;根用户又叫root,它的UID为0,也是系统中的超级用户,拥有至高无上的权限。

除了用户之外, Linux系统中还存在用户组,而用户组也是用数字来区分的,即 Group ID,简称为GID。

UID和GID之间存在某些关系。比如 Centos系统在创建用户时,系统会在创建这个用户的同时,创建一个同名的用户组。而在内部,系统在分配给该用户一个UID的同时会创建一个用户组(这个用户组也会得到一个唯一的GID),并且默认情况下UID的值等于GID,创建出来的这个用户默认属于这个用户组。用户组除了在创建用户时被创建,也可以独立创建出来。

上面的解释似乎有点晦涩,这里举个例子:在学校里,每个学生都会被分配到一个学号,这个学号一定是唯一的,所以才能区分不同的学生我们可以拿学号类比一个UID;同时,每个学生都可以自己创建自己的兴越小组,这个兴趣小组的编号类比于系统中的GID,为了保证唯一,创建的这个兴趣小组的编号的数值可以简单地等于UID,这样可以保证GID也是唯一的。当然,默认情况下,一开始每个兴趣小组的成员都只有一个。当某个学生对其他某个兴趣小组感兴趣时,他可以随时加入其他的小组这时该学生就属于两个组了,而他加入其他小组的个数越多,他从属于的组就越多, Linux中也是一样,一个用户在創建后,至少属于一个组,而且后期随时可以加入、退出不同的组。

2新增和删除用户

在 Centos中新増和删除用户可以分别使用 useradd和 userdel命令完成。比如现在想要添加一个用户名为john的用户:

{root@localhost-}#useradd john

需要注意的是,如果仅使用 useradd添加用户,该用户并不能登录到系统,必须给该用户设置密码后才可以。同时请记住,新増一个用户的操作,也就默认新増了一个同名的用户组(在这里意味着同时新増了一个名为 john的用户组)。

{root@localhost-}# passwd john

Changing password for user john

New password

Retype new password:

passwd: all authentication tokens updated successfully

刪除用户

{root@localhost-}#userdel john

在一个账号使用一段时间后,该用户往往会在个人家目录中留下不少个人文件,使用上面的命令删除用户,这些文件还会得以保留。如果确认该用户的文件需要在删除用户时也一并彻底删除,可使用以下命令完成:

{root@localhost-}#userdel -r john

3.新增和删除用户组

也可以使用 groupadd/ groupdel单独创建/删除用户组。示例如下:

{root@localhost-}#groupadd groupl

{root@localhost-}# groupdel groupl

4.用户切换

很多情况下需要切换用户,比如原先使用了一个普通用户登录系统后来由于权限问题需要切换为root执行相关命令。或是需要从普通用户1切换为普通用户2,或是从root切换为普通用户等。切换用户的命令为su。

root由于拥有至高无上的权限,所以,root用户可以随时切换为任意的用户,比如下面的例子中,root用户切换为john,注意用户切换成功后,命令提示行中的用户变为用户john了:

{root@localhost-}# su-john

{john@localhost-}$

但是,从普通用户切换至root,是必须要知道root的密码的,下面的例子中第一次故意输入了一个错误的密码,系统会拒绝这次用户切换第二次输入正确的密码后,就可以正确切换为root了。

{john@localhost-}$ su-root

password:

su: incorrect passwd

{john@localhost-}$

{john@localhost-}$ su-root

password:

{root@localhost-}#

最后,从一个普通用户切换为另一个普通用户的操作,也需要知道被切换的用户的密码,原因应该很好理解。当然,这里也存在一个很明显的问題:用户1切换为用户2的前提是用户1必须知道用户2的密码,这似乎给密码安全带来了一些问題。那么有没有方法可以解决这个问题呢?答案是肯定的。感兴趣的读者可以搜索查看一下sudo命令。

linux 用户 组区别吗,Linux系统的用户和用户组有什么区别相关推荐

  1. linux限制组访问权限,linux用户和组管理以及文件权限访问控制ACL策略

    01.通配符 文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件. 通配符采用特定的符号,表示特定的含义,此符号称为元 meta 字符. 常见的通配符如下: * 匹配零个或多个字符,但不匹配 ...

  2. Linux 命令之 who -- 打印当前登录用户/显示目前登入系统的用户信息。

    文章目录 命令介绍 常用选项 参考示例 打印用户登录信息 打印全面的信息 打印系统登录进程 显示登录系统的所有用户名称和总人数 命令介绍 who 命令用来打印当前登录用户信息,包含了系统的启动时间 . ...

  3. Linux笔记——运行模式之调度系统-作业管理-用户命令

    跑模式自然需要用到调度系统来进行作业管理,根据我在不同服务器上的使用经验总结几个非常常用的命令. 调度系统是个非常复杂的东西,所以细节不说太多了,要用的时候对应去查. 相关概念: 集群:利用高性能通信 ...

  4. linux 快组描述符,Linux 进程描述符 task struct

    大家都知道进程,可是知道linux是怎么管理其进程的吗?每一个进程都有一个进程描述符,具体是task_struct结构体存储相关的信息,在linux/sched.h文件里定义,那么我们先看看linux ...

  5. linux chown 命令 更改设置文件对应的用户和组

    更改设置文件对应的用户和组 chown语法: chown [选项]-[所有者][:[用户组]] 文件-- root@localhost ~]# chown root.root 1.txt # 同时修改 ...

  6. linux设置用户和群主,Linux的用户和组群管理

    Linux是一个多用户的操作系统用户和用户组的管理是系统管理员的重要工作之一本文的内容包括如何利用图形化工具rfuser和在命令行界面下完成用户账号工作组的建立和维护并正确设置用户权限和安全性问题 利 ...

  7. linux centos查看用户列表,查看centos中的用户和用户组_Centos查看系统中用户和用户组的方法...

    最近朋友刚接触Linux系统,想要查看系统中都又哪些用户和用户所属的组,接下来吾爱编程就为大家介绍一下Centos查看系统中用户和用户组的方法,有需要的小伙伴可以参考一下: 1.查看系统中的用户: C ...

  8. linux串口进单用户模式,进入SUSE Linux Enterprise Server 12系统单用户模式的方法

    本文介绍如何进入 SUSE Linux Enterprise Server 12(SLES 12)系统的单用户模式,它是一款服务器操作系统,版本是 SLES 12-SP3,但同样的方法可用在任何版本的 ...

  9. linux添加用户后怎么查看,linux怎样查看系统新添加的用户?

    linux怎样查看系统新添加的用户? 答案:4  信息版本:手机版 解决时间 2019-10-06 23:42 已解决 2019-10-06 06:26 如题!老板把服务器让别人配的,但是现在屡次发生 ...

  10. 千峰云计算linux教程650集,linux系统运维从入门到精通教程(Linux安装极速入门,零基础必备)

    第一天 1. 完成VMware下载,centos7下载,完成配置,获得模拟服务器一台. 2. 使用root登录. 服务器 (可以当初普通计算机,与普通的计算机内部结构相差不大) VMware是安装虚拟 ...

最新文章

  1. 网络标准和OSI模型(1)
  2. linux下chmod使用
  3. fs:[124]对应CurrentThread
  4. Java 8 - 正确高效的使用并行流
  5. 【吾日三省吾身】2015.6.03-涅槃行动第十六天
  6. 如何实现文章中文字的打字效果
  7. ext不能选中复制属性_复制拷贝文件不怕再出错,一个超级好用的小工具,支持多线程工作...
  8. 数据结构与算法--最小的k个数
  9. 图论 —— 图的遍历
  10. 用C#新建XML文件
  11. 分别在(ModelAtrs)Ascend、(Ubuntu16.04服务器+18.04镜像)GPU、(Ubuntu18.04)CPU下通过MindSpore实现(cifar10)图像分类
  12. Android的历史、版本与开发
  13. mysql workbench 存储过程_MySQL Workbench创建存储过程教程示例
  14. linux下的C语言开发(网络编程)
  15. 多个ORACLE HOME时的程序连接
  16. 再次测试用OLW本地的桌面应用撰写博客园博文
  17. jqGrid获取数据库数据的方式
  18. 4k视频写入速度要求_看4K视频到底需要多快的网速?
  19. idea安装教程(傻瓜式操作、永久使用)
  20. RL 参数影响 和 RL 结果分析

热门文章

  1. 【渝粤教育】广东开放大学 嵌入式数据库 形成性考核 (48)
  2. Approximation and fitting、Statistical estimation
  3. 【自适应盲均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真
  4. 12000+字Java反射,一起全面了解Java反射机制,为学习框架铺路
  5. 深入浅出时序逻辑电路(1)
  6. bjd luts_BJD娃娃背后的圈层文化:一个“成品娃”拍出22万元天价!
  7. oracle存储过程深入,深入了解oracle存储过程的优缺点
  8. Mac--PHP已经开启gd扩展验证码不显示
  9. [Sdoi2010] 地精部落
  10. documentFragment深入理解