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

Linux用户管理

时间:2022-12-28 20:11:14浏览次数:39  
标签:oldboy sbin LC 管理 用户 lnh Linux root

Linux用户管理

一、用户管理概述

1.概述

  • 各种系统中都有用户,windows是administrator,Linux系统中是有各种类型的用户的。

  • 未来大部分操作使用root实现,进行系统管理的时候都是用root,造成管理混乱。

  • 推荐使用普通用户,提升系统安全

  • 未来Linux系统会有各种的用户,每个用户都有自己的用途,root最高权限用户,普通用户,虚拟用户

  • Linux系统是一个多用户系统

2.UID GID

Linux中的用户是由一个标记的,类似于身份证号码一样的东西,叫做UID和GID.一般情况下UID和GID要唯一

3.用户分类

用户分类 分类方法(uid)
root uid是0
普通用户 uid≧1000(centos7),手动创建,无法对系统进行更改,只能在当前家目录有权限
uid≧500(centos5 or centos6)
虚拟用户 uid<1000 ,也叫傀儡用户,用于服务,进程运行使用的用户,无法直接使用

二、用户相关文件

用户相关文件 说明
/etc/passwd 存放用户信息
/etc/shadow 存放密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息,几乎不会给用户组设置密码

Linux下面每创建一个用户,一般会影响这几个文件

1. /etc/passwd

[root@lnh ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

image

2. /etc/shadow

[root@lnh ~]# head /etc/shadow
root:$6$n2mIIkuJcmje9.kq$bPx.yRK9xGcp4MWJ1ar.Lxn1c9eaQFWaQSjvXVq4ZlEzzmbc84CAeY7zACkUipyp7ASEyIRFazKvTUF4SmYL50::0:99999:7:::
bin:*:18353:0:99999:7:::

第一列:用户名
第二列:密码
第三列及以后:密码过期时间,默认是不过期

3. /etc/group

[root@lnh ~]# head /etc/group
root:x:0:
bin:x:1:

第一列:用户组的名字,默认是和用户名一致
第二列:密码
第三列:gid
第四列:空,这个是放属于这个组的其他用户

三、用户管理命令

1.增加(创建用户)useradd 必会

useradd 选项 说明
-u 指定用户uid
-s 指定命令解释器,默认是/bin/bash
-M 不创建家目录
#添加用户oldboy
[root@lnh ~]# useradd oldboy
[root@lnh ~]# grep 'oldboy' /etc/passwd
oldboy:x:1000:1000::/home/oldboy:/bin/bash

#创建用户mysql指定uid 1314指定命令解释器/sbin/nologin不创建家目录 创建虚拟用户
[root@lnh ~]# useradd -u 1314 -s /sbin/nologin -M mysql
[root@lnh ~]# grep 'mysql' /etc/passwd
mysql:x:1314:1314::/home/mysql:/sbin/nologin

虚拟用户:命令解释器为/sbin/nologin 和不创建家目录

2.passwd 修改秘码

passwd选项 说明
--stdin 非交互式设置密码
#非交互式修改密码,用于批量修改密码.(只能root用)
[root@lnh ~]# echo 1 |passwd --stdin oldboy

3. su切换用户

[root@lnh ~]# su - oldboy 
Last login: Mon Dec  5 16:10:06 CST 2022 on pts/1
[oldboy@lnh ~]$ 

#退出当前用户
ctrl+d #相当于logout

提示:关于su - 与su命令

su命令中的-,是su命令的选项,-,-l,--login

切换用户的时候,更新用户的配置与环境变量

4. 删除 userdel

userdel选项
默认不会删除家目录和相关的文件
-r 删除用户及家目录
#删除用户
[root@lnh ~]# userdel -r oldboy
[root@lnh ~]# id oldboy
id: oldboy: no such user

5. 修改 usermod 了解

用于修改用户信息,用户已存在,修改useradd添加的时候指定的信息

[root@lnh ~]# grep 'oldboy' /etc/passwd
oldboy:x:1315:1315::/home/oldboy:/bin/bash
[root@lnh ~]# usermod -s /sbin/nologin oldboy 
[root@lnh ~]# grep 'oldboy' /etc/passwd
oldboy:x:1315:1315::/home/oldboy:/sbin/nologin

6. 查看

1)id 查询用户的uid,gid,用户组信息,检查用户是否存在

[root@lnh ~]# id oldboy 
uid=1315(oldboy) gid=1315(oldboy) groups=1315(oldboy)

2) whoami 查看当前用户的名字,也可以用于获取当前用户的名字

[root@lnh ~]# whoami
root

3) w 查询谁登录了系统并且正在看啥,系统运行时间,负载信息

替代了uptime

[root@lnh ~]# w
 16:38:23 up 19:01,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         09:23    7.00s  0.09s  0.01s w

image

4) last,lastlog 查看用户登录情况

last 显示所有用户的登录信息

lastlog 显示所有用户最近一次的登录信息

[root@lnh ~]# last
root     pts/1        10.0.0.1         Tue Dec  6 11:59 - 15:21  (03:21)    
root     pts/0        10.0.0.1         Tue Dec  6 09:23   still logged in   
root     pts/1        10.0.0.1         Mon Dec  5 16:35 - 22:02  (05:26)    
oldboy   pts/2        10.0.0.1         Mon Dec  5 15:59 - 16:10  (00:10)    
root     pts/1        10.0.0.1         Mon Dec  5 11:36 - 16:10  (04:33)    
root     pts/0        10.0.0.1         Mon Dec  5 10:19 - 16:35  (06:16)    
reboot   system boot  3.10.0-1160.el7. Mon Dec  5 10:18 - 16:40 (1+06:21)   
root     pts/2        10.0.0.1         Sun Dec  4 11:52 - 18:39  (06:47)    
root     pts/1        10.0.0.1         Sun Dec  4 11:51 - 11:52  (00:01)    
root     pts/0        10.0.0.1         Sun Dec  4 11:48 - 11:52  (00:03)    
reboot   system boot  3.10.0-1160.el7. Sun Dec  4 11:43 - 16:40 (2+04:56)   

wtmp begins Sun Dec  4 11:43:29 2022
[root@lnh ~]# lastlog
Username         Port     From             Latest
root             pts/1    10.0.0.1         Tue Dec  6 11:59:42 +0800 2022
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**

7. 用户组命令(了解)

创建用户组: groupadd

使用场景: 指定用户的uid和gid的时候可以用groupadd

​ 创建组指定gid groupadd -g 1315 oldboy

​ 创建用户指定uid 与用户组 useradd -u 1315 -g oldboy -s /sbin/nologin -M oldboy

#创建uid,gid都为888 的tset虚拟用户
[root@lnh ~]# groupadd -g 888 test
[root@lnh ~]# useradd -u 888 -g test -s /sbin/nologin -M  test
[root@lnh ~]# id test
uid=888(test) gid=888(test) groups=888(test)

四、故障案例 -命令行 -bash-4.2$

1.了解/etc/skel目录

  • 这个目录是Linux新用户家目录的一个模板
  • 每当我们创建用户的时候,系统会把/etc/skel/下面的所有内容,复制到新用户的家目录下面
  • 其他应用:创建通知文件,告知每个新用户,禁止使用rm等危险命令

2. 原因

命令行变为:
-bash-4.2$
用户家目录没有,用户家目录下面的配置文件没了 ~/.bashrc ~/.bash_profile

3. 解决方法

通过 复制 /etc/skel/.bash* 解决

-bash-4.2$ cp /etc/skel/.bash* .
重新登录
[oldboy@lnh ~]$ 

4. 复现故障

[root@lnh ~]# su - oldboy 
Last login: Tue Dec  6 12:07:09 CST 2022 on pts/1
[oldboy@lnh ~]$ rm -rf ./.bash*
rm is dangerous,please use mv -rf ./.bash_history ./.bash_logout ./.bash_profile ./.bashrc
[oldboy@lnh ~]$ \rm -rf ./.bash*

五、 sudo权限管理

1.概述

  • Linux系统开发人员要看日志,如何创建用户与授权?
    • root权限,权限太大
    • 普通用户,权限太小
    • 日志平台
    • 普通用户+尚方宝剑以root权限运行命令
  • 这时候就要使用sudo(提权)
  • 这时候可以通过普通用户+sudo权限实现这个目标
  • 授予普通用户以root权限运行,cat

sudo:用于给普通用户配置的命令,配置了sudo权限后,普通用户就可以以root权限运行命令

2.进行sudo授权与使用

提示:

授权sudo,需要使用root

#root的授权配置
#使用visudo 相当于修改/etc/sudoers
#普通用户使用
sudo + 命令
#授予oldboy用户,以root权限运行cat,head,tail,more,less,grep权限
#root授权
[root@lnh ~]# visudo
oldboy  ALL=(ALL)       /bin/cat, /bin/head, /bin/tail   #第一行后边输入此行
[oldboy@lnh ~]$ cat /var/log/secure
cat: /var/log/secure: Permission denied
[oldboy@lnh ~]$ sudo cat /var/log/secure
[sudo] password for oldboy: 
Dec  4 11:43:41 muban polkitd[1079]: Loading rules from directory /etc/polkit-1/rules.d
Dec  4 11:43:41 muban polkitd[1079]: Loading rules from directory /usr/share/polkit-1/rules.d
Dec  4 11:43:41 muban polkitd[1079]: Finished loading, compiling and executing 2 rules


#查看你普通用户拥有的sudo权限
[oldboy@lnh ~]$ sudo -l
Matching Defaults entries for oldboy on lnh:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User oldboy may run the following commands on lnh:
    (ALL) /bin/cat, /bin/head, /bin/tail
#看最后2行

#授予oldboy运行所有命令(root)并且不需要输入密码(一般用于运维自己使用的普通用户)
[oldboy@lnh ~]$ sudo -l
Matching Defaults entries for oldboy on lnh:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User oldboy may run the following commands on lnh:
    (ALL) NOPASSWD: ALL               #visudo加这一行

补充:

sudo -k #清空授予的密码

标签:oldboy,sbin,LC,管理,用户,lnh,Linux,root
From: https://www.cnblogs.com/world-of-yuan/p/17011192.html

相关文章

  • 安卓期末大作业——图书信息管理系统
    前言随着信息技术的高速发展,科技逐渐走进各行各业,帮助人们快速、便利地完成一些工作。BMS系统是基于Android移动设备的应用软件,该系统能够帮助用户在家里通过手机查看相应图......
  • 华为云发布CodeArts Req需求管理工具,让需求管理化繁为简
    近期,华为云正式发布CodeArtsReq,这是一款自主研发的软件研发管理与团队协作工具,凝结了华为30多年软件研发的先进理念与丰富实践,具有强大的组织协作能力,旨在助力企业大规模研......
  • 运用ArrayList编写简单的图书管理系统
    图书管理系统程序主入口publicclassSystemEntry{publicstaticvoidmain(String[]args){BookOperatoroperator=newBookOperator();S......
  • Linux通过ssh远程连接如何防止频繁断连
    使用ssh连接过远程服务的小伙伴都有这样的体会,终端几分钟无操作后就卡死了。其实这是ssh出于安全原因而进行的自动断连。如果不想频繁断连,可以通过修改配置文件的方式让ssh......
  • 研发管理02----嵌入式硬件设计流程之完善
    目录​​ 一、确定功能需求&设计标准​​​​1.1确定功能需求​​​​1.2设计标准​​​​二、方案设计​​​​2.1方案查找​​​​2.1.1小家电低配类芯片方案​​​......
  • Linux 搭建GIT服务
    安装下载源码包:点击下载,本文以2.39.0版本为例。 解压缩:tar-zxfgit-2.39.0.tar.gz当前文件路径如下: 创建安装目录:mkdir/data/git/git2390切换至解压......
  • prometheus-添加监控linux服务器
    1.prometheus-添加监控linux服务器prometheus添加监控linux服务器node_exporter:用于监控Linux系统的指标采集器。常用指标:CPU内存硬盘网络流量文件描述符系......
  • Linux
    1.查看日志-tail-fapp.log(默认最后10行),tail-200fapp.log(查看最后200行数据),Ctrl+C(退出tail命令)-catapp.log|grep'关键字'(查看关键字附近的日志)(-A:后几行,-B:前几行......
  • linux系统下安装Docker,以及Docker的基本使用
    DockerCE支持64位版本CentOS7,并且要求内核版本不低于3.10,CentOS7满足最低内核的要求,所以我们在CentOS7安装Docker。  1、卸载旧版本如果之前安装过旧版本......
  • Linux系统大神随笔
    /*车站售票系统*/#include<pthread.h>#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<signal.h>#include<sys/types.h>......