Linux别名与用户管理体系

一、别名

1、概述

别名,给命令进行设置

一般用于给命令设置一个昵称/爱称

主要应用场景:

  • 给常用命令设置个快捷方式,使用简单方便
  • 危险命令加上的防护措施

查看系统已有的别名

[root@yunwei ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@yunwei ~]# alias ll
alias ll='ls -l --color=auto'

2、设置别名

例如,企业中比较敏感的rm命令,可以输出提示

echo rm is dangrous,please use mv

设置命令格式:alias 命令=“昵称”

[root@yunwei ~]# alias rm=`echo rm is dangrous,please use mv`
[root@yunwei ~]# rm
rm is dangrous,please use mv
[root@yunwei ~]# alias rm
alias rm='echo rm is dangrous,please use mv'

如果真的需要使用rm,我们又应该如何去取消呢?

1、使用绝对路径

2、使用反斜线 \命令

[root@yunwei ~]# find / -name "rm" 
/usr/bin/rm
[root@yunwei ~]# /usr/bin/rm txt.tar.gz
[root@yunwei ~]# \rm txt.tar.gz 

重新链接就失效了,那么我们如果想要永久失效需要怎么做呢?

一般命令行的操作都是临时,重启或重新登录失效了。

这时候我们要记得让配置永久生效,修改配置文件

/etc/profile 是一个系统级别的 shell 配置文件,通常用于设置全局的环境变量和执行系统范围的初始化任务。这个文件在 Linux 系统中广泛使用。

用户登录后,系统还可能读取用户的个人配置文件(如 ~/.bashrc)来设置用户特定的环境和配置。(~表示当前目录下,比如root /root目录下)

1、修改配置文件 ~/.bashrc(当前用户生效)

2、 /etc/profile(全局)

#修改/etc/profile
vim /etc/profile
#最后一行添加alias rm='echo rm is dangerous.please use mv'#让配置文件生效(source目前只适用于profile文件)
source /etc/profile
​
#检查别名
alias rm
​
--------------------------------
#未来除了rm,cp,mv命令别名,还要配置下~./bashrc文件,否则不生效
#因为系统还要读取用户的个人配置文件~/.bashrcvi ~/.bashrc
注释掉 #alias rm='rm -i'#测试rm命令

二、用户管理

1、用户管理概述

各种系统中都有用户,win(administrator),Linux系统中是有各种类型的用户的.

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

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

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

那么Linux是怎么给这些用户做标记的呢?唯一性

  • UID user id 用户的id号,身份证号码
  • GID group id 用户组id号,户口本号码
用户分类分类方法(uid)
rootuid是0
普通用户uid≥1000,手动创建,无法对系统进行更改,只有家目录权限
虚拟用户uid<1000,也叫傀儡用户。用于服务,进程使用的用户,无法直接使用。

2、用户相关文件

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

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

/etc/passwd
在这里插入图片描述

/etc/shadow

第1列是用户名

第2列是密码

第3列及以后是密码过期时间,默认是不过期

/etc/group

root:x:0:

bin:x:1:

第1列是用户组的名字:默认是和用户名一致

第2列是密码

第3列是gid

第4列是空,或者这个组里面有什么额外的用户

[root@yunwei ~]# useradd test1
[root@yunwei ~]# useradd test2
[root@yunwei ~]# tail -n2 /etc/passwd /etc/shadow /etc/group
==> /etc/passwd <==
test1:x:1000:1000::/home/test1:/bin/bash
test2:x:1001:1001::/home/test2:/bin/bash

==> /etc/shadow <==
test1:!!:19953:0:99999:7:::
test2:!!:19953:0:99999:7:::

==> /etc/group <==
test1:x:1000:
test2:x:1001:

3、用户管理指令

1)增加
useradd选项说明
-u指定用户uid
-s指定命令解释器,默认就是/bin/bash
-M不创建家目录
#案例一 创建用户maliy指定uid 1314指定命令解释器/sbin/nologin不创建家目录创建虚拟用户
[root@yunwei ~]# useradd maliy -u 1314 -s /sbin/nologin -M
[root@nyunwei ~]# id maliy
uid=1314(maliy) gid=1314(maliy)=1314(maliy)

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

passwd选项说明
–stdin非交互式密码
#案例二 非交互式修改密码,用于批量修改密码.(只能root用)
#正常用passwd 用户,需要输入密码,但是要改100个用户的密码非常不方便所以有了此方案
[root@yunwei ~]# echo '1' | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.

su切换用户

su - 用户

-代表切换用户时候,更新用户的配置和环境变量

Ctrl + d退出当前用户

[root@yunwei ~]# su - test1
[test1@yunwei ~]$ pwd
/home/test1
2)删除

尽量避免使用,通过注释这个用户信息实现。⚠️

userdel选项说明
默认不会删除家目录和相关文件,比如邮箱
-r删除用户及家目录 ⚠️
[root@yunwei ~]# userdel test1
[root@yunwei ~]# ls -ld /home/test1
drwx------ 2 1000 1000 83 Aug 18 14:25 /home/test1

删除用户推荐做法

[root@yunwei ~]# tail -n2 /etc/passwd
test:x:1000:1000::/home/test:/bin/bash
maliy:x:1314:1314::/home/maliy:/sbin/nologin
[root@yunwei ~]# id maliy
uid=1314(maliy) gid=1314(maliy)=1314(maliy)
[root@yunwei ~]# vi /etc/passwd
[root@yunwei ~]# tail -n2 /etc/passwd
test:x:1000:1000::/home/test:/bin/bash
#maliy:x:1314:1314::/home/maliy:/sbin/nologin
[root@yunwei ~]# id maliy
id: maliy: no such user
3)修改

passwd 修改密码

4)查看

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

whoami 查询当前用户的名字

w 查询谁登录了系统并且正在干啥,系统运行时间,负载信息(代替了uptime命令。tty终端连接,pts是ssh链接)

[root@yunwei ~]# uptime
 14:32:10 up  1:26,  1 user,  load average: 0.04, 0.04, 0.05
[root@yunwei ~]# w
 14:32:11 up  1:26,  1 user,  load average: 0.04, 0.04, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         14:28    3.00s  0.25s  0.00s w

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

[root@yunwei home]# last
root     pts/2        111.229.205.81   Fri Jan 26 22:16 - 22:16  (00:00)    
root     pts/1        112.39.72.161    Fri Jan 26 20:02   still logged in   
root     pts/0        112.39.72.161    Fri Jan 26 20:02   still logged in 

lastlog 所有用户最近1次的登录信息。

[root@yunwei home]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/2    111.229.205.81   五 126 22:16:30 +0800 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**

如果异地IP登录服务器,本机用last查看,而云厂商自动配置了异地登录告警

在这里插入图片描述

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

1)/etc/skel/目录

这个目录是Linux新用户家目录的一个模板。

每当我们创建用户的时候,系统会把/etc/skel/下面所有内容,复制到新用户的家目录下面。

其他应用:创建通知文件,告知每个新用户,禁止使用rm等危险命令。

[root@yunwei ~]# ll -a /etc/skel
总用量 28
drwxr-xr-x.  2 root root  4096 87 2020 .
drwxr-xr-x. 95 root root 12288 127 11:29 ..
-rw-r--r--   1 root root    18 41 2020 .bash_logout
-rw-r--r--   1 root root   193 41 2020 .bash_profile
-rw-r--r--   1 root root   231 41 2020 .bashrc
2)原因
-bash-4.2$
用户家目录没有,用户家目录下面的配置文件没了 ~/.bashrc ~/.bash_profile
3)解决

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

/etc/skel 目录所有新用户的家目录的模板

cp /etc/skel/.bash* ~
4)复现
\rm -rf /home/test/*
5)带不带*的小对比

rm -rf /home/test/

这个命令会递归地删除 /home/test/ 整个目录将被完全删除。目录及其所有内容,包括子目录和文件。

rm -rf /home/test/*

这个命令会删除 /home/test/ 目录下的所有文件和子目录,但不会删除目录本身。

5、sudo权限管理

Linux系统开发人员要看日志,如何创建用户与授予权限?

  • root权限,权限太大
  • 普通用户,权限太小
  • 日志平台没法看
  • 得出:普通用户+尚方宝剑以root权限运行命令

这时候请使用sudo(提权)

这时候可以通过普通用户+sudo权限实现这个目标

授予普通用户以root权限运行,cat,head/tail,more/less,grep

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

1)进行sudo授权与使用

授权sudo,需要使用root。

#root授权配置
​
visudo 
#背后修改 vi /etc/sudoers #普通用户使用
sudo + 命令
#案例一 授予test用户,以root权限运行cat,head,tail,more,less,grep权限
[root@yunwei ~]# visudo
[root@yunwei ~]# cat /etc/sudoers | grep -n test
101:test     ALL=(ALL)       /usr/bin/cat, /usr/bin/head, /usr/bin/tail, /usr/bin/more, /usr/bin/less
​
[root@yunwei ~]# su - test
[test@yunwei ~]$ sudo tail /var/log/secure
​
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
​
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
#输入密码
[sudo] password for test: 
​
#查看普通用户拥有的sudo权限
sudo -l 
#查看当前用户有什么sudo权限,关注最后2行即可

运维创建一个自己用

#案例二 授予SRE运行所有命令(root)并且不需要输入密码
[root@yunwei ~]# cat /etc/sudoers | grep "SRE"
SRE    ALL=(ALL)      NOPASSWD:  ALL
[root@yunwei ~]# sudo tail /var/log/secure
2)小结

为何使用sudo? 以普通用户权限进行管理,拥有部分的root权限。

如何用? root进行授权: visudo 普通用户下面进行使用: sudo 命令 。

未来还有别的方案可以用(堡垒机/跳板机)。

企业使用:

用一个账户登录机器,切换到root用户

[SRE@yunwei ~]$ sudo su - root
[root@yunwei ~]# #必须是root的所有权限
[test@yunwei ~]$ sudo su - root
[sudo] password for yunwei: 
Sorry, user test is not allowed to execute '/bin/su - root' as root on nanjing.

6、 堡垒机与跳板机

跳板机,堡垒机是未来工作环境中,远程连接必备设备或服务,要求我们只能连接堡垒机或跳板机,然后通过它在对服务器进行管理与控制。

跳板机:简单的跳板工具.

堡垒机:跳板工具+审计功能.

堡垒机茶品
开源软件Jumpserver,Teleport.
物理硬件设备购买
云服务阿里云、腾讯云、华为云

三、实战Teleport

Teleport 堡垒机官网

1、下载安装包,如果下载不是30M左右,本机下载并且上传。

wget --no-check-certificate https://www.tp4a.com/download/get-file/teleport-server-linux-x64-3.6.4-b3.tar.gz
2、解压并安装,-- [ ALL DONE ] --结束
tar xf teleport-server-linux-x64-3.6.4-b3.tar.gz
cd teleport-server-linux-x64-3.6.4-b3/
./setup.sh
3、检查是否运行
[root@yunwei ~]# /etc/init.d/teleport status
teleport web server is running.
teleport core server is running.
​
关闭或重启命令
/etc/init.d/teleport stop
/etc/init.d/teleport start
/etc/init.d/teleport restart
4、关闭防火墙和SElinux
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
​
#关闭SElinux
setenforce 0 #临时关闭
vim /etc/selinux/config
找出中间的行SELINUX=enforcing 修改为SELINUX=disabled
​
#检查
[root@yunwei ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@yunwei ~]# getenforce
Disabled
#结果是permissive或disabled都表示关闭
#如果是enforcing表示开启
5、浏览器访问http://teleport服务器IP:7190/

在这里插入图片描述

6、按照流程,审计流程

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值