一、别名
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 **从未登录过**
云服务器异地登录告警