首页 > 系统相关 >Linux基础之用户和组

Linux基础之用户和组

时间:2024-04-30 17:37:30浏览次数:23  
标签:删除 用户组 sudo 基础 用户 密码 Linux root

目录

Linux 是一个多用户多任务的分时操作系统,为了对文件和资源进行更好的权限管理,产生了用户和组。在Linux中,每个用户都有一个唯一的用户标识号UID,每个组也有一个唯一的组标识号GID。用户可以属于一个或多个组。

用户的分类

  • 超级用户:也称为 root 用户,是系统的管理员,拥有对系统的完全控制权限。

  • 普通用户:大多数的用户都属于此类,使用系统来完成日常任务。

  • 服务用户:专门用于运行系统服务的,比如Web服务器、数据库服务器等,通常被用来限制服务的权限。

还有其他的为了系统正常工作所必需的用户,比如虚拟用户、系统用户等。

在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的文件中。

  1. 用户账号文件 /etc/passwd,每行定义一个用户账号信息,每行由7个字段组成,字段之间用 : 分隔
root:x:0:0:root:/root:/bin/bash

# 账号名称:密码:UID:GID:个人资料:主目录:Shell
  1. 用户密码文件 /etc/shadow,每行定义了一个用户密码信息,行中各字段用 : 隔开
root:$6$C86UcMH5uLEF1cuZ$gFTarzTT8RTy/9SPzJeA0gHIyH78ZgmkWvF14pR6thjdgqSQtr4RuoL4f87Hcfb.5Ux2lrDVFAkgUTkKiSMWh1::0:99999:7:::

# 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  1. 用户组账号文件 /etc/group,每行定义了一个组信息,行中各字段用 : 隔开
root:x:0:

# 组名:组密码:gid:成员列表
  1. 用户组密码文件 /etc/gshadow,每行定义了一个组密码信息,行中各字段用 : 隔开
root:*::

# 组名:组密码:组管理员:组成员

关于用户的操作

添加用户useradd

用户组分为两种:

  • 基本组:建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组。
  • 附加组:可以容纳多个用户,组中的用户都具有组所拥有的权利。

创建一个用户:

sudo adduser username

常用选项:

  • -m 创建用户的同时,自动创建用户的主目录

  • -s 用于设置用户的使用的shell,如果设置 -s /bin/nologin 则表示用户不能使用命令行

  • -u 用于设置用户uid,默认是自增的,通过该命令可以自定义,但要注意必须是1000+且不能重复

  • -g 设置用户的基本组,可以是gid也可以是组名称。组必须得存在

  • -G 设置用户的附加组,可以是gid也可以是组名称。组必须得存在

设置用户的属性usermod

常用选项:

  • -L 设置密码锁定,禁止用户登录

  • -U 解锁用户账户,允许用户登录

  • -l new_login 修改用户的登录名

  • -s shell 修改用户的登录shell

比如:

sudo usermod  -s /bin/bash smileleooo

# 修改用户smileleooo的登录shell

设置用户的密码passwd

常用选项:

  • -l 锁定用户账户,锁定账户后,用户将无法登录

  • -u 解锁被锁定的用户账户

  • -d 禁用密码,使用户无法使用密码登录,通常与 -l 选项一起使用

  • -e 强制用户在下次登录时更改密码

  • -S 显示用户密码的状态信息

比如:

sudo passwd -S root

# 显示root用户密码的状态信息

删除用户userdel

删除一个用户:

sudo userdel smileleooo

这将会删除名为smileleooo的用户账户。但是默认不会删除与用户相关的文件和目录。

sudo userdel -r smileleooo

这样就会连同用户的主目录一起删除。

用户权限控制sudo

sudo 允许普通用户以超级用户(root)的权限执行命令。/etc/sudoers 文件文件定义了哪些用户可以使用 sudo 命令以及可以执行哪些命令。

sudo文件中对权限的描述,每一行定义了一个用户或用户组的授权信息,包括用户名、主机名(或 ALL 代表所有主机)、以及授权的命令。

比如:

smileleooo ALL = (root) /usr/bin/apt-get

# 允许smileleooo用户以root的身份执行apt-get命令

临时提权:可以在命令前加上 sudo 临时提升权限,而不必切换到超级用户身份,一般需要用户输入密码验证使用者身份。

sudo的常用命令:

  • sudo -l :列出当前用户可以执行的命令

  • sudo -u 用户名 权限命令 :以指定用户的身份执行需要权限的命令

  • sudo -b 命令 :让命令在后台执行

关于用户组的操作

创建用户组 groupadd

  • -r 表示添加系统用户,它的默认id是1-999

  • -g 指定用户组id

修改用户组属性 groupmod

  • -g 修改用户组id

  • -n 修改用户组名称

添加/删除组成员 gpasswd

  • -a 添加单用户

  • -d 删除用户

  • -M 可同时添加多个用户

删除组账户 groupdel

  • groupdel 组名称

被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组。


若有错误,欢迎指正!o( ̄▽ ̄)ブ

标签:删除,用户组,sudo,基础,用户,密码,Linux,root
From: https://www.cnblogs.com/smileleooo/p/18162287

相关文章

  • Linux安装jmeter
     1、安装jdk2、安装jmeter1.新建一个存放安装包的文件夹命令:mkdir  /home/jmeter2.将下载的安装包传到该文件夹3.解压安装包进入安装目录。输入命令:cd/home/jmeter 输入命令:tarzxvf apache-jmeter-5.4.2.tgz 4.修改配置文件/etc/profile,配置环境变量(......
  • 手机运营商二要素比对接口:验证用户手机与身份信息一致性
     手机运营商二要素比对接口是一种验证用户手机与身份信息一致性的工具。在实名注册、风控审核等场景中,我们经常需要验证用户的手机号码与姓名是否一致,以确保用户身份的真实性。这个接口可以广泛应用于电商、游戏、直播、金融等需要用户实名认证的场景,并且还支持携号转网核验。......
  • linux command
    1、文件管理$catcat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。使用权限所有使用者语法格式cat[-AbeEnstTuv][--help][--version]fileName参数说明-n|[--number]:由1开始对所有输出的行数编号-b|[--number-nonblank]:和-n相似,只不过对于空白行......
  • 火车票订票系统的用户分类
    火车票订票系统的用户主要分为以下几类:(1)普通用户:这些用户是系统的最终使用者,他们可以通过注册和登录来访问系统。普通用户可以执行以下操作:1.注册和登录:用户可以注册账号并登录系统。2.购票:用户可以购买火车票,包括直达购票和换乘购票。3.改签和退票:用户可以改变出行时间或位置......
  • 用户管理
    添加账号useradd[选项]用户名-ccomment指定一段注释性描述-d目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录-m用于创建用户的家目录。如果-d选项已经指定了家目录的路径,并且该目录不存在,则-m选项会告诉useradd创建该目录。如果-d选项没有指定(或......
  • 较为平滑的 Linux ps 命令入门
    初衷一些无关紧要的Balabala。在国内外的各类网站上,关于Linux的几乎每一条命令都可以找到很多介绍,其中自然有许多得到了广泛认可的课程和文档。在具有一定基础知识的前提下直接参考这些有价值的资料无疑是具有极高效率的做法,个人写一条介绍命令用法的博客实在是浪费自己的时......
  • 20_Linux I2C 驱动
    LinuxI2C驱动一.I2C简介I2C是很常见的一种总线协议,I2C是NXP公司设计的,I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条是SDA(串行数据线),因为I2C这两条数据线是开漏输出的,所以需要接上拉电阻,总线空闲的时候SCL和SDA处于高电平。I2C......
  • 17_Linux中断
    Linux中断1.什么是中断?CPU在正常运行期间,由外部或者内部引起的事件,让CPU停下当前正在运行的程序,转而去执行触发他的中断所对应的程序,这个就是中断。举例:我现在正在厨房做饭,突然电话响了,然后我关火去接电话,接完电话在回去开火继续做饭,这个过程就是中断的一个过程。在这个看似......
  • Linux图形化界面怎么进入?CentOS 7图形界面切换
    CentOS 7默认只安装命令行界面。要切换到图形界面,需要先检查系统是否安装图形界面,在终端输入以下命令:systemctlget-default若是返回结果是“multi-user.target”表示系统没有安装图形界面;若是返回结果是“graphical.target“表示系统安装了图形界面。 另外如果你的Cent......
  • java基础面试
    ThreadLocal:ThreadLocal并不解决线程间共享数据的问题ThreadLocal通过隐式的在不同线程内创建独立实例副本避免了实例线程安全的问题每个线程持有一个Map(ThreadLocalMap)并维护了ThreadLocal对象与具体实例的映射,该Map由于只被持有它的线程访问,故不存在线程安全以及锁的......