首页 > 系统相关 >Linux用户管理

Linux用户管理

时间:2024-08-29 20:15:58浏览次数:14  
标签:xk sp3 管理 ubuntu2204 用户 etc Linux root

Linux用户管理

  • Linux下面我们管理系统通过对应的用户.
  • 我们当前是root用户.我们就需要有不同类型的用户,然后通过不同的用户管理系统.
  • 未来工作中的70%故障,安全事故,基本内部误操作导致.
  • Linux是多用户系统,多个用户登录一般不会互相影响.

1. 分类

UID,GID

  • ⭐ ⭐ ⭐ ⭐ ⭐ UID:User ID用户id号,类似于身份证号码.
  • GID:Group ID用户组号,类似于户口本号码.
Linux用户分类        UID        说明
root                 0         超级用户,管理员用户
虚拟用户(傀儡用户)    1-999      用于保证服务/进程正常运行的用户,这种用户无法直接使用.
普通用户             >= 1000   开始没有root那么高权限的用户,只能管理自己的家目录

2.相关文件

  • 添加用户,系统会修改这几个文件的内容.
  • 不要直接修改这几个文件.
文件               说明
/etc/passwd       不存放密码,用于存放用户的信息.UID,GID,家目录,命令解释器.
/etc/group        用户组信息.
/etc/shadow       密码信息.密码过期.通过man 5 shadow查看帮助
/etc/gshadow      几乎不用,用户组密码.

/etc/passwd ⭐⭐⭐⭐⭐
主要能看出与关注:用户名,UID,家目录,命令解释器即可(是否为虚拟用户).

1:统计/etc/passwd中可以登录系统的用户的数量
grep '/bin/bash' /etc/passwd | wc -l

2:统计/etc/passwd中虚拟用户数量(命令解释器非/bin/bash)
grep -v '/bin/bash' /etc/passwd |wc -l

3:统计排除root用户后可登录系统的用户数量(命令解释器为/bin/bash)
grep -v '^root' /etc/passwd |grep '/bin/bash' |wc -l
# ^ 以...开头的行,三剑客

3. 核心命令

3.1 增:添加用户

红帽系列系统中:useradd,adduser一致,添加普通用户,虚拟用户.
debian系列系统中: useradd添加用户,默认命令解释器/bin/sh,需要指定-s/bin/bash

useradd选项     说明
-u             # 指定uid
-s             # 指定命令解释器,默认是/bin/bash(红帽类系统) ubt/debian 要指定-s /bin/bash
-m             # 创建家目录(ubt需要指定)
-M             # 不创建家目录.

红帽系列添加用户user1,设置密码,切换用户⭐ ⭐ ⭐ ⭐ ⭐

#1.添加用户
useradd user1
#2.设置密码
passwd user1 #passwd 用户名只能root用户使用,其他用户只能运行
passwd
#3.切换用户 switch user
su - user1
#4.查看当前用户名 我是谁
whoami
#5.退出当前用户
ctrl + d #或者输入logout/exit

debian系列添加用户⭐ ⭐ ⭐ ⭐ ⭐

# 指定命令解释器和要求创建家目录
[root@ubuntu2204 ~]# useradd -s /bin/bash -m xk2
[root@ubuntu2204 ~]# passwd xk2
New password: 
Retype new password: 
passwd: password updated successfully

su - 与 su区别
su切换用户 switch user切换用户.(比如从root切换到user1普通用户时,user所在家目录还在/root下)
su - 是su命令的选项.系统在切换用户时更新环境变量(推荐)

添加虚拟用户vm1,指定uid 9999.⭐ ⭐ ⭐ ⭐ ⭐

# 潜台词:虚拟用户不需要创建家目录,指定命令解释器为/sbin/nologin
[root@Kylin-V10-sp3 ~]# useradd -u 9999 -s /sbin/nologin -M vm1
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# grep vm1 /etc/passwd
vm1:x:1001:1001::/home/vm1:/sbin/nologin
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# tree /home/
/home/
└── xk2

非交互修改密码(passwd为交互输入密码)

# 非交互: 一个回车/一键自动化实现功能
####红帽系统####
# 方法01: passwd选项实现(主要说这个)
# passwd --stdin非交互模式,通过管道获取密码.
[root@Kylin-V10-sp3 ~]# echo 1 | passwd --stdin user1
###红帽系统+ubt######
#方法02: 专用的批量修改密码的命令chpasswd
[root@ubuntu2204 ~] cat pass.txt |chpasswd
[root@ubuntu2204 ~]# cat pass.txt
xk:1
xk2:2

3.2 删:删除用户

userdel默认不会删除家目录,需要加上参数-r 
[root@Kylin-V10-sp3 ~]# userdel -r xk2
如果删除失败,可以通过kill结束对应的进程,占用用户的进程.
#推荐大家通过在/etc/passwd进行注释操作,替代userdel删除.避免使用userdel.

3.3 改

修改已有用户的信息,很少用 了解即可 usermod
usermod选项与useradd类似

[root@ubuntu2204 ~]# usermod -c 'xk linux'  xk   # 给xk用户添加注释信息"xk linux"
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# id xk
uid=1000(xk) gid=1000(xk) groups=1000(xk),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# usermod -G root xk  # 改变用户组
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# id xk
uid=1000(xk) gid=1000(xk) groups=1000(xk),0(root)
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# grep xk /etc/passwd
xk:x:1000:1000:xk linux:/home/xk:/bin/bash
xk2:x:1001:1001::/home/xk2:/bin/bash
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# usermod -s /sbin/nologin xk   # 改变解释器信息
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# grep xk /etc/passwd
xk:x:1000:1000:xk linux:/home/xk:/sbin/nologin
xk2:x:1001:1001::/home/xk2:/bin/bash
[root@ubuntu2204 ~]#

3.4 查:查看用户的信息

查询用户信息指令   说明
whoami           # 显示当前用户名字
id               # 查看用户的信息或检查用户是否存在.
w                # 查看谁登录了系统并在做什么
last             # 查看用户的登录情况(谁,哪里,登入时间,登出时间)
lastlog          # 查看所有用户的登录情况


查询用户信息指令  说明                                       应用场景
whoami     显示当前用户名字                                  # 查看用户,写入脚本剧本.
id         查看用户的信息或检查用户是否存在.                  # 检查用户是否存在.
w          查看谁登录了系统并在做什么查看系统登录了哪些用户?    # 排查与定位系统是否繁忙(平均负载)?
last       查看用户的登录情况(谁,哪里,登入时间,登出时间)       # 查看历史登录信息.
lastlog    查看所有用户的登录情况                             # 查看历史登录信息.

检查用户是否存在

[root@Kylin-V10-sp3 ~]# id xk2
用户id=1000(xk2) 组id=1000(xk2) 组=1000(xk2)
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# id user3
id: “user3”:无此用户
[root@Kylin-V10-sp3 ~]# 

查看此时此时系统中有谁登录了?并且正在做啥?

# 登录用户名名字(USER)
# 登录用户来自于哪里(FROM)
# 登录用户正在做什么(WATH)
[root@ubuntu2204 ~]# w
 16:58:44 up  6:31,  3 users,  load average: 0.08, 0.04, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
xk       tty1     -                16:58   20.00s  0.05s  0.01s -bash
root     pts/0    10.0.0.1         16:57    2.00s  0.01s  0.00s w
root     pts/1    10.0.0.1         16:58   12.00s  0.01s  0.00s tail -f /etc/passwd
[root@ubuntu2204 ~]# 
[root@ubuntu2204 ~]# tty
/dev/pts/0
[root@ubuntu2204 ~]# 

# tty表示终端  tty1表示本地登录
# WHAT -bash表示当前没做操作
# FROM  - 表示本地的登录

其他命令

[root@Kylin-V10-sp3 ~]# whoami
root
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# last | head -3    # 查看所有用户登录,登出情况.是否有异常登录
root     pts/2        10.0.0.1         Wed Aug 28 12:52   still logged in
root     pts/1        10.0.0.1         Wed Aug 28 11:42 - 14:15  (02:33)
root     pts/0        10.0.0.1         Sun Aug 25 12:25 - 14:17 (3+01:52)
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# lastlog | head -5   # 所有用户最近1次登录情况.
用户名           端口     来自             最后登录时间
root             pts/2    10.0.0.1         三 8月 28 12:52:11 +0800 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# export LANG=C
[root@Kylin-V10-sp3 ~]#              
[root@Kylin-V10-sp3 ~]# lastlog | head -5
Username         Port     From             Latest
root             pts/2    10.0.0.1         Wed Aug 28 12:52:11 +0800 2024
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
[root@Kylin-V10-sp3 ~]# 

4. 用户组

5. 安全防护

  • 给危险命令设置别名,暂时无法使用rm。shell编程可以写回收站脚本,代替rm命令
  • 给普通用户设置sudo权限,以root权限执行命令
  • 用户操作审计,堡垒机,跳板机

5.1 sudo提权

5.1.1 应用场景
  • 普通用户需要以root权限运行命令的时候或查看没有权限的文件的时候.
  • 使用sudo实现需求.
  • 也就是说想让普通用户临时成为root
5.1.2 案例
# 1 授权xk用户查看日志权限
选择好命令,head/tail/grep/less/more/cat
var log messages
var log secure
..
root用户进行授权(尚方宝剑)
xk用户使用(亮剑)
visudo #命令
100行
写入配置
xk ALL=(ALL) /bin/cat, /bin/head, /bin/less, /bin/more,
/bin/tail
保存
修改xk密码
echo 密码 | passwd --stdin oldboy

tail /var/log/secure
sudo tail /var/log/secure
输入当前用户密码

# 2: 授权devops-li所有权限并且不需要输入密码
# root授权
devops-li ALL=(ALL) NOPASSWD: ALL 

# devops-li测试
# 查看当前用户具有什么sudo权限
sudo -l

#然后切换到root
sudo su - 直接切换到root不需要密码.
su - root 或su - 一个意思.切换为root.

# ubt/debian配置sudo
vim /etc/sudoers
在env_reset这行上面写上,
Defaults editor=/usr/bin/vim
Defaults env_reset
visudo的时候默认使用的是nano编辑器
5.1.3 sudo总结

能够说出sudo应用场景.
能够给普通用户配置sudo权限执行指定的命令.
能够给普通用户配置sudo权限执行所有命令并且不需要密码.
visudo === vi /etc/sudoers
后面直接添加到末尾.

5.2 别名

用于给命令设置昵称.
用途:

标签:xk,sp3,管理,ubuntu2204,用户,etc,Linux,root
From: https://www.cnblogs.com/daofaziran/p/18387431

相关文章

  • IM项目:进阶版即时通讯项目---用户管理(纯业务)
    文章目录服务重写用户注册用户登录验证码获取手机号注册手机号登录获取用户信息获取多个用户的信息设置用户头像添加用户昵称设置用户签名设置手机号服务搭建本篇主要是对于该项目的用户管理模块做一个文档说明,前面已经封装好了类的操作,因此本篇开始直接进行使用本......
  • Linux文件属性
    Linux文件属性1.inode&block1.1inodeindexnode索引节点,类似于书籍的目录,默认是256biteinode号码:系统可以通过文件名找出文件的inode号码,进而找出文件与文件内容ls-lhi查看文件的inode号码(较少使用)inode包含:文件属性信息(文件类型,大小,权限,所有者,用户组,......
  • 计算机毕业设计选题推荐-中药材进存销管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 基于Springboot公寓电费管理系统的设计与实现(源码+LW+调试文档)
     目录:程序功能截图:程序部分代码参考:数据库sql:程序技术介绍:后端springboot介绍:mysql介绍:程序论文:​选择我的理由:程序获取:......
  • 基于SpringBoot大学生征兵入伍管理系统的设计与实现(源码+LW+调试文档)
     目录:程序功能截图:程序部分代码参考:数据库sql:程序技术介绍:后端springboot介绍:mysql介绍:程序论文:​选择我的理由:程序获取:......
  • 【Linux】Linux Bash Shell 教程
    LinuxBashShell入门教程Linuxbash(Bourne-AgainSHell)是一种为GNU操作系统编写的命令行解释器,它是大多数Linux发行版中最常用的shell。Bash提供了一种强大的方式来控制和管理操作系统,支持命令历史记录、别名、管道、重定向、变量、条件判断、循环以及自定......
  • 基于python+flask框架的物资捐赠管理平台的管理和实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在自然灾害频发、社会公益需求日益增长的背景下,物资捐赠作为快速响应社会需求、传递爱心的重要方式,其高效管理和透明化运作显得尤为重要。......
  • 基于python+flask框架的旅游景点票务管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,越来越多的游客选择前往各地旅游景点观光游览,这极大地促进了旅游市场的繁荣。然而,传统的票务管理方式往往存在排队购......
  • linux mount net fs
    linuxmountnetfsnfsubuntu安装nfs:sudoaptinstallnfs-kernel-server编辑/etc/exports文件,添加如下内容:/home/wyk/nfs*(rw,sync,no_root_squash,no_subtree_check)重启nfs服务sudo/etc/init.d/rpcbindrestartsudo/etc/init.d/nfs-kernel-serverrestart开......
  • 用python创建文件夹并授予权限(windows和linux通用)
    因为是对路径进行操作,所以使用os模块importos创建文件夹,使用os.mkdir#directory_path='要创建路径的完整路径'new_directory='D:\\test'#以windows为例,在D盘创建一个test的文件夹os.mkdir(new_directory)给文件夹授权,使用os.chmod#这里给刚创建的文件夹777的......