Linux账户管理实践

本文详细介绍了在Ubuntu 20.04 LTS系统中如何创建、管理用户和用户组,包括新建用户、分配sudo权限、编辑sudoers文件、理解/etc/passwd文件以及用户和组的删除。通过实例操作,解析了用户登录差异、用户权限设置等关键步骤,为服务器资源管理和权限控制提供实用教程。
摘要由CSDN通过智能技术生成

1、环境准备

  • ubuntu20.04 LTS

  • 所有操作都在root账户下操作

2、新建用户组和用户

#首先新建一个组
sudo groupadd develop
#下面是两种创建用户方式,第一种会自动配置好,推荐
adduser shawn
#第二种创建用户方式,必须设置密码,否则登录不上;其中-g是否在新建时加入组,若是,则不会单独生成新的组
useradd -m guest [-g develop]
passwd guest

请添加图片描述

查看一下用户组状态,输入cat /etc/group查看组的信息,默认新建的用户自己的用户名为一组

在这里插入图片描述

3、group组操作

#用户操作在/etc/passwd都有记录
#usermod -aG group_name user_name
#gpasswd -a user_name group_name
#-g是更改用户的主组
#-G是更改用户的附加组
usermod -aG develop shawn
#将用户加到新的组里
gpasswd -a guest develop
#将用户移出某个组
#gpasswd -d [user_name] [group_name]
gpasswd -d guest develop
#删除组,这里我已经移动到develop了所以成功删除
groupdel shawn

4、登录

然后进行分别登陆,发现两个终端有点不一样!可以发现第二种方式创建的用户有点问题,只有一个$符号,这是怎么回事?

请添加图片描述

原因:查看/etc/passwd文件后发现,新建的用户未指定shell。我们只需将其指定为/bin/bash即可;也可以进入该文件进行修改;

#切换用户,这里切换是使用当前用户环境
su shawn
su guest
# 切换用户,并使用用户自己的环境
su - shawn
su -l shawn
#退出当前用户
exit
logout
#重新设置shell,这里发现用useradd命令会这样,建议用adduser
usermod -s /bin/bash guest

5、给新建用户添加sudo权限

5.1 添加到sudo组

#添加shawn到sudo组,需要时输入shawn的密码即可
usermod -G sudo shawn

5.2 修改sudoers表

#首先要切换到root权限
#赋予当前用户写的权限
chmod u+w /etc/sudoers
#编辑sudoers文件
vim /etc/sudoers
#在User privilege specification或者#includedir /etc/sudoers.d下添加,这个代表当前组的用户都可以进行sudo,需要时输入当前账户密码即可
%develop ALL=(ALL:ALL) ALL
#撤销sudoers文件写权限
chmod u-w /etc/sudoers

在这里插入图片描述

5.3 /etc/sudoers的格式

user host=(run_as) command

  • user:一位或几位用户,在/etc/group中可以用一个%代替它,组对象的名称一定要用百分号%开头。
  • host:一个或几个主机名,ALL表示可以在所有的主机上
  • run_as:作为哪个用户运行,常见选项是root和ALL
  • command:想让用户或组运行的一个或几个根级别命令

举几个例子

#%表示用户组,!表示禁止执行。
#表示默认5分钟后刚才输入的sodo密码过期,下次sudo需要重新输入密码
shawn  ALL=(ALL:ALL) ALL 
#表示允许无时间限制的免输入密码,该组都免输入
%develop  ALL=(ALL:ALL) NOPASSWD:ALL  
#develop组可以从任何主机登陆,并且可以不用输入密码执行任何命令,但是不能执行/usr/sbin下的命令
%develop ALL=(ALL) NOPASSWD:ALL,!/usr/sbin/

6、/etc/passwd详解

对于/etc/passwd文件,它是用于存放用户名字和用户标识符号的一些信息的。

以root账户为例,各部分之间用:分隔开,可以分成7部分内容

root:x :0 :0 : root : /root : /bin/bash

  • root:账户名称
  • x:密码,由于/etc/passwd这个文件是可以让所有用户读取,故为了安全,这个地方只能看到x,而隐藏了真实的密码
  • 0:用户识别码(UID)
  • 0:组识别码(GID),和/etc/group文件有关系
  • root:该用户的信息说明,没有很重要的用途,仅仅是一个说明而已
  • /root:该用户的家目录,登录时候进入的目录,如果想修改登录时候的家目录所在,就可以在这里进行修改了
  • /bin/bash:shell,当用户执行命令的时候,是用的/bin/bash(在这个例子中)这个shell来执行命令。

在这里插入图片描述

7、删除用户和组

userdel 用户名 # 从配置文件中删除用户,并不删除用户下的文件夹
userdel -r 用户名 # 删除用户及其相关文件
userdel -f 用户名 # 强制删除用户
groupdel 组名 #删除组

8、其他

新建普通用户,可以将服务器资源分发给不同的用户,还可以赋予用户不同的权限;而组就是用来管理用户的,当用户多了的时候,比如需要赋予一批用户超级管理员权限,则只需要将用户添加到超级管理员的组就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值