前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux用户管理

linux用户管理

作者头像
星哥玩云
发布2022-09-15 15:06:10
5K0
发布2022-09-15 15:06:10
举报
文章被收录于专栏:开源部署

一、用户和组的相关概念

账号的概念和分类

  • 账号:是一种用来记录单个用户或是多个用户的数据。Linux中每一个合法的用户都必须要拥有账号,才能使用 。它不仅可以用来验证用户身份,还决定了一个用户在系统中可以从事什么工作

在Linux 上的账号可以分成两类:

  • 用户账号 用来储存单一用户的数据,你可以使用一个用户账号,来储存某一个用户的数据。
  • 群组账号 用来储存多个用户的信息,每一个群组账号可以用来记录一组用户的数据。

我们可以把 Linux 的所有账号依照下面两种方法进行分类:

  • 依照账号的位置。
  • 依照账号的功能。

依照账号存储的位置

​账号数据存放在不同的地方,其可使用的范围就会不太一样,账号的使用范围我们称为视野。依照账号储存的位置与视野不同,我们可以区分本机账号与网域账号两种:

本机账号: 账号密码储存于本机硬盘中,我们称为本机账号。 本机账号使用范围只能在账号建立的 Linux 系统上,如果超出范围时,本机账号将无法使用。比如:你在自己电脑上登录用的账号和密码,正常是无法在其它的电脑上使用的。

  • 本机账号的优点:是简单易用,你无须作额外的设置,就可以直接建立本机账号;
  • 本机账号的缺点:则是无法具备延展性(Scalability)。比如:你在一个拥有很多主机的环境中,想拥有一个在每台主机都可以登录的账号时,你就需要在所有的主机上都建立相关的用户

网域账号: 你也可以把大量的计算机组织成为一个网域,然后在网域中的某一台 Linux 上建立账号数据,并且通过某些通信协议,将账号数据分享出来。当其他计算机需要取得账号数据时,再通过网络调用这些分享的账号即可。这种账号我们称为网域账号 (Domain Account)。

  • 网域账号的优点:在于具备延展性。在大规模的环境中,使用网域账号往往能节省管理账号的时间;
  • 但网域账号也有缺点,其最大的缺点就是要配置网域账号前,你必须先建立“域”的环境才行。

依照账号的功能

不管是本机账号或是网域账号,我们还可以把所有账号依照功能分成下面几类

1571285802298.png
1571285802298.png

用户账号部分: 包含了超级用户、普通用户;而普通用户中还可细分为系统用户、真实用户两种。

  • 超级用户:在Linux 系统上拥有完整的控制能力,常被称为系统管理员,在 系统上拥有完整的控制能力,你可以利用超级用户读取或写入 上任何文件、安装或删除软硬件、启动或停止服务,甚至关机与停止系统的执行。 通常只有在管理系统时才会使用超级用户账号登录,所以超级用户常被称为系统管理员 (System Administrator)。由于超级用户的权限不受任何限制,你可以使用该账号来管理 系统;但是,也可能因为操作错误,或者打错命令而造成无法挽救的伤害。 在此,强烈建议你“除非有必要,否则请不要轻易以超级用户身份使用 Linux”! 在 Linux 系统中,默认超级用户的用户为 root,其 UID(用户ID号)一定为 0。
  • 普通用户账号:行为能力会受到限制,只能调用具备权限的文件,如果没有足够的权限,普通用户是完全无法调用的;所以,普通用户账号不太容易危害 Linux 系统。普通用户账号中,我们又可分为两大类:
  • 系统账号 这种类型的账号仅提供给Linux 系统本身使用。在某些软件执行的时候,需要你提供一个普通用户类型的账号。为了满足这些软件而建立的账号,我们称为系统账号 (System Account)。
  • 真实用户 系统用户账号是给软件或程序使用的,那么,什么账号是让我们登录Linux 时使用的呢?答案就是真实用户(Real User)。真实用户账号是为了让其他人登录系统使用的

群组账号部分: 包含了超级用户群组、系统群组以及用户自定义组三大类。

  • 超级用户群组:Linux 有一个叫做 root 的群组,因为这个群组的名称与 root 这个超级用户的名称相同,所以,我们习惯把 root 群组叫做超级用户群组。超级用户群组的 GID 为 0。
  • 系统群组: 与系统账号一样,系统群组是给 Linux 系统本身,或是某个软件所使用
  • 用户自定义组:除了上述的群组外其余的所有群组,皆是由管理者自行定义,因此我们把这些群组称之为用户自定义组

另外,Linux 系统的“用户自定义组“类型中,还有一种名为用户私有群组UPG, User Private Group)的群组。什么是 用户私有群组呢?用户私有群组(UPG, User Private Group)是指 “与用户账号名称相同,且为用户的主要群组”的群组。当你建立新的用户账号时,Linux 会自动建立该用户的私有群组。如,当你建立 test 这个用户账号时,Linux 会自动建立了一个名为 test 的群组,并且让 test群组成为 test 用户账号的主要群组,test 群组即是 test 的私有群组。

​了解完账号的基本概念后,我们一起来看下账号到底记录了哪些信息

二、用户账号管理

  • useradd命令 用户创建命令,创建一个linux用户。
代码语言:javascript
复制
命令介绍
       useradd - 创建一个新用户或更新默认新用户信息

命令语法
       useradd [选项] 登录

       useradd -D

       useradd -D [选项]

命令选项
  -D        默认
  ­
  -u UID    用来指定账号的 UID,如果省略这个参数,useradd会自动以最后一个可用的 UID 作为新账号的 UID。

  -o        告诉 useradd 允许重复的 UID。  

  -g gid    定义用户的主要群组。使用 -g 参数前,GROUP 必须已经存在。 
     
  -d HOME   指定用户的主目录。默认的主目录是建立在  /home/ 目录下,而且目录名称与用户名称相同。
  
  -s SHELL  指定用户登录执行的程序。
                                      
  -c COMMENT   指定用户的批注说明。如果批注文字包含空白,请记得使用双引号 (") 包起来。 
 
  -r           这个参数用来指出建立一个系统用户的账号。    
  
  -M           不创建家目录

  -N           不创建同名组                   



#相关文件
	/etc/passwd
           用户账户信息。

       /etc/shadow
           安全用户账户信息。

       /etc/group
           组账户信息。

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

       /etc/default/useradd
           账户创建的默认值。

       /etc/skel/
           包含默认文件的目录。

       /etc/subgid
           Per user subordinate group IDs.

       /etc/subuid
           Per user subordinate user IDs.

       /etc/login.defs
           Shadow 密码套件配置。

这些参数大多数可以同时使用,可以根据自己的需求指定,例如 创建一个linux用户hello – uid为 1500 – 附加组为 hello – 家目录为 /home/hello – 登陆shell为 /bin/bash – 描述为 “this is a test user”

代码语言:javascript
复制
useradd -u 1500 -G hello -d /home/hello -s /bin/bash -c "this is a test user" hello

关于linux本机用户 本机的用户账号数据储存于/etc/passwd文件中。与其他的配置文件一样,passwd 也是一个文本文件,因此,你可以直接使用文字处理程序,例如 cat 或 less 浏览其中的内容。

代码语言:javascript
复制
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

/etc/passwd 权限必须是0644,每一行代表一个用户的账号数据,每一行又使用冒号(:)分隔为几个部分

代码语言:javascript
复制
USERNAME:PASSWORD:UID:GID:COMMENT:HOMEDIR:SHELL  

- USERNAME:用户识别名称,也是登录的名称
- PASSWORD:密码位,用于存储用户的密码,为了安全起见,密码放在另一个文件中,这里统一用x
- UID:用户识别号,0表示为管理员,非0为普通用户
- GID:组识别号,用来识别用户组的身份,同样0为管理员组,非0为系统群组或者自定义组
- COMMENT:描述信息
- HOMEDIR:家目录位置
- SHELL:shell类型
  • usermod命令 是用来修改用户相关信息的,和useradd使用的参数很多是相同的,用法也是一样的,除此之外usermod命令还有一些额外的参数
代码语言:javascript
复制
命令介绍
       usermod - 修改一个用户账户

命令语法
       usermod [选项] 登录

命令选项
-l NEWNAME   修改账号的用户名称,NEWNAME 即是新的账号名称。

-L           锁定账号,一经锁定的账号将无法用来登录系统。

-U           解除锁定。
  • userdel命令 删除linux用户
代码语言:javascript
复制
命令介绍
       userdel - 删除用户账户和相关文件

命令语法
       userdel [选项] 登录

命令选项
-r          用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。

-f          强制

删除tom用户以及其家目录文件

代码语言:javascript
复制
[root@zutuanxue ~]# userdel -r tom

三、用户查询命令

  • id命令:查询用户uid、gid信息
代码语言:javascript
复制
[root@zutuanxue ~]# id hello
uid=1500(hello) gid=1500(hello) 组=1500(hello)

[root@zutuanxue ~]# id -u hello
1500
  • whoami命令:查询当前登录用户
代码语言:javascript
复制
[root@zutuanxue ~]# whoami
root
  • w命令:查询linux系统中登陆的所有用户
代码语言:javascript
复制
[root@zutuanxue ~]# w
 18:21:43 up  2:01,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.17    16:16    3.00s  0.08s  0.00s w
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、用户和组的相关概念
    • 账号的概念和分类
    • 二、用户账号管理
    • 三、用户查询命令
    相关产品与服务
    访问管理
    访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档