Linux别名与用户管理体系

一、别名

1、概述

别名,给命令进行设置

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

主要应用场景:

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

查看系统已有的别名

bash 复制代码
[root@nanjing ~]# 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@nanjing ~]# alias ll
alias ll='ls -l --color=auto'

2、设置别名

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

echo rm is dangrous,please use mv

设置命令格式:alias 命令="昵称"

csharp 复制代码
[root@nanjing ~]# alias rm="echo rm is dangrous,please use mv"
[root@nanjing ~]# rm
rm is dangrous,please use mv
[root@nanjing ~]# alias rm
alias rm='echo rm is dangrous,please use mv'

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

1、使用绝对路径

2、使用反斜线 \命令

csharp 复制代码
[root@nanjing ~]# find / -name "rm" 
/usr/bin/rm
[root@nanjing ~]# /usr/bin/rm txt.tar.gz
[root@nanjing ~]# \rm txt.tar.gz 

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

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

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

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

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

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

2、 /etc/profile(全局)

shell 复制代码
#修改/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文件,否则不生效
#因为系统还要读取用户的个人配置文件~/.bashrc
​
vim /etc/profile
注释掉 #alias rm='rm -i'
​
#测试rm命令

二、用户管理

1、用户管理概述

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

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

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

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

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

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

2、用户相关文件

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

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

/etc/shadow

第1列是用户名

第2列是密码

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

/etc/group

root:x:0:

bin:x:1:

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

第2列是密码

第3列是gid

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

ruby 复制代码
[root@nanjing ~]# useradd shishuwu
[root@nanjing ~]# useradd shishu
[root@nanjing ~]# tail -n2 /etc/passwd /etc/shadow /etc/group
==> /etc/passwd <==
shishuwu:x:1000:1000::/home/shishuwu:/bin/bash
shishu:x:1001:1001::/home/shishu:/bin/bash
​
==> /etc/shadow <==
shishuwu:!!:19748:0:99999:7:::
shishu:!!:19748:0:99999:7:::
​
==> /etc/group <==
shishuwu:x:1000:
shishu:x:1001:

3、用户管理指令

1)增加

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

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

passwd选项 说明
--stdin 非交互式密码
csharp 复制代码
#案例二 非交互式修改密码,用于批量修改密码.(只能root用)
#正常用passwd 用户,需要输入密码,但是要改100个用户的密码非常不方便所以有了
[root@nanjing ~]# echo 1 | passwd --stdin shishu
更改用户 shishu 的密码 。
passwd:所有的身份验证令牌已经成功更新。

su切换用户

su - 用户

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

Ctrl + d退出当前用户

ruby 复制代码
[root@nanjing ~]# su - shishu
[shishu@nanjing ~]$ pwd
/home/shishu

2)删除

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

userdel选项 说明
默认不会删除家目录和相关文件,比如邮箱
-r 删除用户及家目录 ⚠️
yaml 复制代码
[root@nanjing ~]# userdel shishu 
[root@nanjing ~]# ll -d /home/shishu
drwx------ 4 1001 1001 4096 1月  26 21:39 /home/shishu

删除用户推荐做法

ruby 复制代码
[root@nanjing home]# tail -n2 /etc/passwd
shishuwu:x:1000:1000::/home/shishuwu:/bin/bash
maliy:x:1314:1314::/home/maliy:/sbin/nologin
[root@nanjing home]# id maliy
uid=1314(maliy) gid=1314(maliy) 组=1314(maliy)
[root@nanjing home]# vi /etc/passwd
[root@nanjing home]# tail -n2 /etc/passwd
shishuwu:x:1000:1000::/home/shishuwu:/bin/bash
#maliy:x:1314:1314::/home/maliy:/sbin/nologin
[root@nanjing home]# id maliy
id: maliy: no such user

3)修改

passwd 修改密码

4)查看

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

whoami 查询当前用户的名字

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

arduino 复制代码
[root@nanjing home]# uptime
 22:28:57 up 19 days,  6:14,  2 users,  load average: 0.00, 0.03, 0.05
[root@nanjing home]# w
 22:29:04 up 19 days,  6:14,  2 users,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    112.39.72.161    20:02    0.00s  0.09s  0.00s w
root     pts/1    112.39.72.161    20:02    2:26m  7.21s  7.19s top

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

arduino 复制代码
[root@nanjing 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次的登录信息。

markdown 复制代码
[root@nanjing home]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/2    111.229.205.81   五 1月 26 22:16:30 +0800 2024
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**

云服务器异地登录告警

更新中~~~

相关推荐
苦逼IT运维9 分钟前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
仍有未知等待探索27 分钟前
Linux 传输层UDP
linux·运维·udp
zeruns80234 分钟前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
卑微求AC34 分钟前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
北城青41 分钟前
WebRTC Connection Negotiate解决
运维·服务器·webrtc
Hugo_McQueen1 小时前
pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)
linux·服务器·网络安全
疯狂的大狗1 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
XY.散人1 小时前
初识Linux · 文件(1)
linux·运维·服务器
长天一色1 小时前
【Docker从入门到进阶】01.介绍 & 02.基础使用
运维·docker·容器
伊玛目的门徒1 小时前
docker 搭建minimalist-web-notepad
运维·docker·notepad