Linux随笔03

第3章 用户管理:

3.1 用户/组概览

  Linux系统是多用户、多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一个特定的所拥有。如果需要使用系统资源,首先必须向系统超级用户申请为普通用户,然后以普通用户的身份进入系统。超级用户可以对普通用户进行跟踪,并设置他们的访问权限,这样可以保证系统的安全。

  每个用户都属于一个用户组或者多个组,系统可以对一个用户组中的所有用户进行集中管理。组与组的控制权限是不同点,系统根据不同的需求,把用户分别放在不同的组中。

 

  3.1.1 用户标识:UID与GID

  Linux系统不能识别用户名信息,所以每个用户都有唯一的系统可识别的UID,它类似于居民身份证编号。

 

  id命令可以查看当前用户登录信息。

  默认情况下,不带任何参数的 `id` 命令将显示当前用户的用户ID和用户组ID

 

  UID为用户的ID。是用户标识符,用于唯一标识一个用户。

  在计算机领域,UID通常是一个整数或字符串,用于在系统中区分不同用户。UID可以由系统自动生成,也可以由用户自行设置。

  在某些系统中,UID还与用户的权限、角色等信息相关联。

   在编程中,UID常用于实现用户注册、登录、权限控制等功能。

  例如,在数据库中存储用户信息时,UID可以作为用户的唯一键;在服务器端处理用户请求时,可以根据UID查找用户相关信息。

 

  GID为用户所属组的ID。是一种用于标识某个特定实体的标识符。

  在计算机领域,GID通常用于分布式系统、数据库和网络编程中。

  GID的主要特点是全局唯一性和稳定性,以确保在多个进程、系统或网络节点之间正确地唯一标识某个实体。

 

  groups为用户属于的所有组的ID。每个用户都有一个默认的所属组,当创建新用户时,如果不指定所属组,系统会自动为该用户创建一个与用户名相同的组,该组的用户列表默认为空。

  groups主要涉及用户与组的归属关系,用户可以属于一个或多个组。通过`id`、`groups`和`usermod`等命令,可以查看和修改用户的所属组。

   

  ll命令:查看文件的所有者(每个文件都有一个所有者)

 

  每个进程是以某个用户的身份运行的,ps aux | less命令可以查看进程。会显示所有进程的详细信息,一页一页地查看

  eg:用ps aux命令查看httpd进程:ps aux | grep httpd

 

 

  3.1.2 用户/组相关文件 

     在Linux系统中,所有用户的用户名和密码都存放在/etc/passwd和/etc/shadow这两个文件中

  在/etc/passwd文件中,一行记录对应一个用户,每行记录又被冒号分隔为7个字段,依次为用户名称、密码占位符、用户UID、主组GID、注释性描述、用户主目录、用户的Shell。

[root@localhost suli]# vim /etc/passwd

 

  在/etc/shadow文件中,每行记录由冒号分隔为9个字段,依次为用户名称、加密后的密码、最近改动密码时间、密码不可变更时间(99999没有限制)、密码重新变更时间、密码过期时间、密码过期宽恕时间、用户失效时间、保留。

[root@localhost suli]# vim /etc/shadow

 

  $id号越大加密程度越高

  UID为0是特权用户,UID为1~499是系统用户,UID为500以上是普通用户。

 

  3.1.3 超级用户

  root用户拥有所有系统权限,而且root用户有权利覆盖文件系统上的所有普通权限。系统中大多数设备只能由root控制,如安装或删除软件、管理系统文件和目录等。普通用户要进行相关操作需要root用户的许可。

 

 

3.2 管理用户/组

  管理用户与用户组主要是创建、更改、删除等操作

  3.2.1 创建用户/组

  useradd命令:创建用户/组

   “!!”:密码未设置。

  在Linux下创建一个用户时,若未指定任何组(主组或附加组),系统会默认给该用户创建一个和用户名相同的组作为用户的主组,如果将多个用户划入一个组,只需要对组设定权限即可,由此也能减少很多后台管理上的麻烦。

  -G参数指定已存在的附加组

  如果在使用useradd命令时加入了错误的设置数据,或者要对一些信息进行详细的修改,除了直接在/etc/passwd与/etc/shadow文件中修改,也可以使用usermod与gpasswd命令

  

  一个用户可以属于很多组,创建组的命令为groupadd

[root@localhost suli]# groupadd sale
[root@localhost suli]# groupadd it
[root@localhost suli]# groupadd market

  用户组的信息保存在/etc/group文件中,上面创建的组在该文件的尾部,使用tail命令查看,所有新创建组并没有成员

[root@localhost suli]# tail /etc/group

 

  一般情况并不需要专门指定组的GID,系统会自动依次增加数值。如果需要指定GID,添加-g参数或者-gid

 

  useradd命令中的参数

参数 说明
-d 指定用户的主目录
-u 指定用户特定的UID(整数)
-g 指定用户主组的名称或ID
-G 指定用户的附加组列表
-s 指定用户的登录Shell

 

 

  3.2.2 删除用户/组

  userdel命令:删除一个用户。添加-r可以同时在/home目录与mail spool中删除该用户。若用户不存在可以使用rm-rf手动删除

 

   groupdel命令:删除一个用户组。如果某个初始用户正在使用该用户组,则无法删除,此时需要修改该用户的GID或者直接删除该用户

 

 

  3.2.3 修改用户密码

   passwd命令:修改密码。只有root用户可以修改其他用户的密码,普通用户修改密码时需要提供原密码,root用户修改普通用户的密码不需要提供原密码。

 

  3.2.4 安全用户

  在创建用户时,通过-s参数指定用户登录shell为/sbin/nologin,可以将其设置为安全用户。

  当指定某个用户的登录为Shell为/sbin/nologin时,此用户无论通过本地还是远程登陆的方式都将不能登录系统,也无法实现系统管理,但该用户仍可以使用FTP和邮件服务这种不需要登录系统的服务,这样的用户一般称为安全用户

  在创建用户时,如果该用户没有必要登录系统,应该将此用户的登录Shell修改为/sbin/nologin,以消除安全隐患

  Shell是用户登录系统执行的第一个程序,它并不是固定的,可以根据需求在/etc/passwd文件中随意更改,然后将root用户下的/bin/bash/替换成/usr/sbin/reboot,完成后保存

  echo$SHELL命令:查看用户shell为...

 

 

  3.2.5 配置文件 

  /etc/login.defs/etc/default/useradd是命令useradd的配置文件,决定useradd创建用户默认的参数,文件中的配置对root用户无效

 

  

  3.2.6  su/sudo命令

  su命令可以进行身份切换。

  普通用户切换至root用户需要密码,root用户切换至普通用户不需要密码

  加入wheel组的普通用户可以使用sudo命令来执行系统相关操作,用户使用sudo时,必须先输入密码

  

 

 

 

 

posted @   苏梨  阅读(13)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示