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                                         **从未登录过**

云服务器异地登录告警

更新中~~~

相关推荐
大树8812 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush413 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52013 小时前
Linux 11 动态监控指令top
linux
Inhand陈工14 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智14 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩14 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_14 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈14 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix