一、VI/VIM编辑器
1.1简介
vi编辑器就是和windows的记事本,某些本文编辑工具(notepad++,editplus,sublim text)一样。
所有的类Unix系统,都自带vi 文本编辑器
很多应用程序的编辑界面都会主动呼唤 vi编辑器Vim是Linux系统中功能强大的文本编辑器,是vi编辑器的增强版。Vim提供了多种模式和丰富的命令,使得文本编辑更加高效和灵活。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
操作简单,编辑速度快。安装vim:
yum install vim -y
1.2模式介绍
命令模式(一般模式)
用户对一个文件启动 Vim/Vi,便进入了命令模式(也称为一般模式)。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
在该模式下,可以移动光标、删除行、复制行等操作,但不能输入文字。
比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。在此模式下,可以通过命令对文件内容进行删除,复制,粘贴等行为,可以理解为快捷键操作
插入模式(编辑模式)
在命令模式下,输入 i, I, o, O, a, A, r, R 等任意命令,便会立即进入插入模式(也称之编辑模式)
在这个模式下,我们才可以对文件进行详细的编辑,比如使用退格键,删除键,回车键等各式各样的文本编辑了
按【ESC】键回到命令模式
插入模式(编辑模式)
在命令模式下,输入字符【: ? / 】三个中的任意一个,就会来到底线命令模式下
在这个模式下,我们可以完成搜索、读取、存档、离开Vim/Vi等很多行为
按【ESC】键回到命令模式
常用命令(命令模式/一般模式下使用)
H: 移动到当前屏幕的最上一行的行首
M: 移动到当前屏幕的中间一行的行首
L: 移动到当前屏幕的最下一行的行首
gg: 移动到这个文件的第一行,相当于1G (常用)
G: 移动到这个文件的最后一行(常用)
NG: 移动这个文件的第N行
x,,X: 在一行字符中,x表示向后删除一个字符(相当于del键),X为向前删除一个字符(相当于退格键) (常用)
nx: n为数字,连续向后删除n个字符。
dd: 刪除游标所在的那一行(常用,也是剪切)
ndd: n为数字。删除游标所在的向下n行(常用)
d1G: 刪除游标所在到第一行的所有行数据
dG: 刪除游标所在到最后一行的所有行数据
yy,Y: 复制游标所在的那一行数据(常用)
nyy,nY: n 为数字。复制游标所在的向下n行(常用)
p, P: p表示将复制的数据粘贴到游标所在行的下一行,P表示将复制的数据粘贴到游标所在行的上一行 (常用)
u: 撤销前一个动作。(常用)
进入插入模式
i/I
- i 光标所在处前开始插入
- I 光标所在行行首开始插入a/A
- a 光标所在处后开始插入
- A 光标所在行行尾开始插入
o/O
o 光标所在行的下一行开始输入
O 光标所在行的上一行开始输入
底层命令模式
退出操作:
:q 不保存退出(前提是什么都没干 才会成功)
:q! 强制退出,不保存
:wq 保存并退出
:wq! 强制保存并退出 可以使用快捷键: shift + z/z (两次大Z)
其他的底层命令操作:
:set nu 显示行号
:set nonu 取消行号显示:/pattern 查找指定字符串
:s/old/new/g 替换当前行(光标所在行)的所有匹配项
:%s/old/new/g 替换整个文件的所有匹配项
另外一些功能:
多行注释: 在命令模式下,按Ctrl+v 进入可视化模式,选择需要注释的行,按Shift+i 进入插入模式,输入#,然后按Esc两次完成注释。
代码着色: Vim支持代码着色功能,可以通过:syntax on开启,:syntax off关闭。
异常退出解决方案: 如果Vim异常退出,会生成一个.swp文件。可以通过删除该文件来解决问题: rm .filename.swp
二、Linux的网络配置
2.1网络相关概念
1. 外网:IP是唯一性,不能重复。范围:0.0.0.0~255.255.255.255
2. 内网:通过路由器或者交换器设备,来重新设置IP地址。
不同的内网的ip可以相同。
3. IP: ip地址是确定一台机器的唯一标识符
4. NETMASK(子网掩码):与ip连用,用于确定网络段位
192.168.1.x 范围:1-254
255.255.255.0
子网掩码有1的位置对应ip的部分就是网络段位。0对应的位置就是内网中主机的位置。
5. GATEWAY:网关,用于与连接外网的机器设备通信(路由器)换句话说,网关就是路由器的IP
6. DNS:域名解析服务器
119.75.217.109 www.baidu.com
110.242.68.3 www.baidu.com
IP: IP是电脑在网络中的唯一标识符,IP的段位和号码。 段位和路由器一致,后面的号码决定该内网中可以有多少台电脑,但是初始的几个值以及最后的几个值是预用的,普通设备不能使用。
路由器:路由器里的DHCP服务器的作用,是用来给设备分配动态IP。
DNS: IP的另外Linux的网络配置几种模式一个好记的名字映射的解析器。
2.2Linux的网络配置几种模式
桥接模式:
该模式下的虚拟机的IP与物理机的IP是同一个段位(换句话说,内网中的机器个数=物理机个数+虚拟机个数)
Vmware需要将想要配置网络的虚拟机调成桥接模式
虚拟机相当于真实的计算机,ip由真实的路由器来分配,因此真实的路由器下的机器的个数是物理机个数+虚拟机个数<256.
物理机和虚拟机可以通信(在同一个路由下,通过路由通信)
NET模式:
使用的虚拟网卡是NetWork Adapter VMnet8,该虚拟网卡的作用是虚拟机与物理机通信。虚拟机的ip是由此虚拟交换机中的虚拟机DHCP服务器分配。能联网,可以与连接此虚拟交换机内的所有虚拟机进行通信。外网不能直接与此虚拟机通信。
Vmware需要将想要配置网络的虚拟机调成net模式
虚拟机的ip是由Vmnet8交换机中的虚拟DHCP服务器来分配的,因此网段和Vmnet8交换机是一致的。
物理机和虚拟机可以进行通信(通过物理机上的Vmnet8适配器进行通信)
仅主机模式:
作用就是虚拟机和物理机之间进行通信
2.2.1桥接模式下的网络配置
动态网络配置
1)修改虚拟机的网络适配器,改成桥接模式
2)修改网络文件/etc/sysconfig/network-scripts/ifcfg-ens33
3)文件里面要修改 ONBOOT=yes BOOTPROTO=dhcp
4)重启网络服务: systemctl restart network
静态网络配置
步骤1)修改该虚拟机的连接方式为桥接模式
步骤2)修改配置文件 (/etc/sysconfig/network-scripts/ifcfg-ens33)
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static #三个值dhcp,static,none可选, dhcp表示动态分配,其他两个为静态
NAME=ens33
DEVICE=ens33
ONBOOT=yes #开机后是否自动联网,yes为自动,no为手动
IPADDR=192.168.1.154 #自己设置IP 注意网段和物理机一样
NETMASK=255.255.255.0 #自己设置子网掩码 注意网段和物理机一样
GATEWAY=192.168.1.1 #设置网关 路由器默认网关 这个单词特别容易写错
DNS1=192.168.1.1 #配置DNS 注意从1开始
DNS2=8.8.8.8 #公网 等号前后无空格 前面要大写
DNS3=114.114.114.114 #公网
步骤3)重启网络服务项
[root@localhost ~]# systemctl restart network
步骤4)查看ip地址
[root@localhost ~]# ip addr
步骤5)校验网络是否畅通
1. 与外网是否通畅:ping www.baidu.com
向百度服务器发送一个连接请求,如果连接成功,百度服务器就会向本机发送64个字节
2. 与物理机是否通畅:
-- 虚拟机ping物理机 ping 物理机的ip
-- 物理机ping虚拟机 ping 虚拟机的ip
2.2.2NAT模式下的网络配置
静态网络设置:
步骤1)修改虚拟机的连接模式为NAT模式
步骤2)查看并修改VMNet8的虚拟
vmware的编辑菜单-->虚拟网络编辑器-->更改设置-->选中VMnet8,修改子网IP段位为192.168.100.0
-->点击应用-->点击NAT设置,查看相关信息,比如
子网IP、子网掩码、网关
步骤3)修改配置文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static #三个值dhcp,static,none可选, dhcp表示动态分配,其他两个为静态
NAME=ens33
DEVICE=ens33
ONBOOT=yes #开机后是否自动联网,yes为自动,no为手动
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.2 #虚拟网络设置里面找到网关
DNS1=192.168.100.2
DNS2=8.8.8.8
DNS3=114.114.114.114
步骤4)重启网络服务项
[root@localhost ~]# systemctl restart network
步骤5)查看ip地址
[root@localhost ~]# ip addr
步骤6)校验网络是否畅通
1. 与外网是否通畅:ping www.baidu.com
向百度服务器发送一个连接请求,如果连接成功,百度服务器就会向本机发送64个字节
2. 与物理机是否通畅:
-- 虚拟机ping物理机 ping 物理机的ip
-- 物理机ping虚拟机 ping 虚拟机的ip
2.3远程连接工具的应用
因为Linux系统通常用于服务器,没有桌面环境,只有DOS界面,而且有的时候,服务器上的软件坏掉了,或者由于权限问题,不能直接操作服务器。而是通过远程进行操作,比如管理员授权普通员工连接服务器,或者管理员自己在家,用家里的电脑连接公司的服务器,进行作业,更加方便。所以,市面上提供很多中可以远程连接服务器的软件工具。比如Xshell、FinallShell、CRT、putty、MobaXterm等
这里选择使用MobaXterm这款工具,版本随意:MobaXterm_Installer_v10.9.zip. 双击安装即可。
setting里可以设置主题,点击右键即粘贴等
2.4其他网络设置
防火墙的设置:
[root@localhost ~]# systemctl status firewalld #查看防火墙的状态
[root@localhost ~]# systemctl stop firewalld #临时关闭防火墙
[root@localhost ~]# systemctl start firewalld #临时开启防火墙
[root@localhost ~]# systemctl disable firewalld #设置开机不自动启动防火墙
[root@localhost ~]# systemctl enable firewalld #设置开机自动启动防火墙 mysql80
集群中的linux,通常都是关闭防火墙的
NetworkManager的设置:
[root@localhost ~]# systemctl status NetworkManager #查看NetworkManager服务的状态
[root@localhost ~]# systemctl stop NetworkManager #临时关闭NetworkManager服务
[root@localhost ~]# systemctl start NetworkManager #临时开启NetworkManager服务
[root@localhost ~]# systemctl disable NetworkManager #设置开机不自动启动
[root@localhost ~]# systemctl enable NetworkManager #设置开机自动启动集群中的linux,通常都是关闭NetworkManager的
netstat指令:
注意:该指令在net-tools安装包内,需要安装。yum -y install net-tools
英文:network statistics 命令路径:/bin/netstat 执行权限:所有用户
作用:主要用于检测主机的网络配置和状况-a (all)显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 使用数字方式显示地址和端口号
-p 显示socket的PID和进程的名字
-l (listening)显示监控中的服务器的socket案例演示:
eg: netstat -tlnu 查看本机监听(正在使用的)的端口
eg: netstat -nltp 查看本机监听(正在使用的)的端口以及PID和Name信息
eg: netstat -ntlp | grep tcp6 查看某一个程序的端口信息
eg: netstat -atnp | grep 25 查看端口
2.5主机名和映射文件的修改
主机名的修改
方式1:直接修改配置文件/etc/hostname
[root@localhost ~]# vi /etc/hostname
注意:重启后生效方式2: 使用hostnamectl指令
[root@localhost ~]# hostnamectl set-hostname linux01
如果想要更新当前会话的主机名,要么重启(reboot指令),要么进入子程序(直接bash指令 启动一个新的shell会话)主机名的查看
[root@localhost ~]# hostname
映射文件的修改
[root@linux01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #多个别名
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.101 linux01 qianfeng001
192.168.10.102 linux02
192.168.10.103 linux03
192.168.10.104 qianfeng04
192.168.10.105 qianfeng05注意:先写ip,在写域名字符串
ping指令,会先访问/etc/hosts文件,如果找到了ping后面的域名,则使用域名对应的ip地址,向ip地址所在的机器发送请求
扩展:window上修改域名映射文件:
C:\Windows\System32\drivers\etc\hosts
注意: 也是先写ip 再写域名
如果权限不够不能改 就拖到桌面改完拖回去
只能自己用,代表自己本机的IP:
127.0.0.1 127开头的IP地址,都是回环地址(Loop back address),其所在的回环接口一般被理解为虚拟网卡,并不是真正的路由器接口。所谓的回环地址,通俗的讲,就是我们在主机上发送给127开头的IP地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。
0.0.0.0 首先,0.0.0.0是不能被ping通的。在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。监听0.0.0.0的端口,就是监听本机中所有IP的端口。
localhost
2.6常用的进程管理命令
ps指令:
作用:查看系统中的进程信息
语法:ps [-auxle]
常用选项a:显示所有用户的进程
u:显示用户名和启动时间
x:显示没有控制终端的进程
e:显示所有进程,包括没有控制终端的进程
l:长格式显示eg:
ps -aux
ps -aux | grep java
pstree指令:
作用:查看当前进程树
语法:pstree [选项]
-p 显示进程PID
-u 显示进程的所属用户eg: pstree -p
kill指令:
作用:杀死进程
语法: kill -9 pid.....eg: kill -9 1514 1548
nohup指令:
作用: 将前台进程设置成后台进程, 需要配合&符号,才可以解放当前窗口
eg: nohup ping www.baidu.com > ping.txt &
2.7用户与用户组的相关命令
用户和用户组的关系
- 一个用户可以属于多个用户组(主用户组和附加用户组)
- 一个用户组下可以有多个用户
useradd指令:
语法格式:useradd [选项] [用户名]
常用选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。 指定的数字必须提前存在
-G 用户组,指定用户所属的附加组。 指定的数字必须提前存在
-s Shell文件 指定用户的登录Shell。环境
-u 用户ID号 指定用户的UID
eg:
[root@linux01 home]# useradd -c 'this is a new user' -g 0 -G 1 -u 1001 -s /bin/bash michael
[root@linux01 home]# useradd -d /home/scott1 -c 'this is a new user' -g 0 -G 1 -u 1002 -s /bin/bash scott小贴士: 普通用户的家的位置和名字 /home/用户名/
passwd指令:
语法格式:passwd [选项] [用户名]
常用选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。eg: passwd michael
用户账号刚创建时没有口令,账号被系统锁定,无法使用。
只有我们为账户指定口令后,此账户才可以使用。
设定口令的命令为passwd
超级用户可以为自己和普通用户设定口令,普通用户只能修改自己的口令。
su指令:
语法:su [用户名]
作用:切换用户账户eg:
su michael 切换成michael身份
su 切换成root身份
su root 切换成root身份
注意: 普通用户切换成别的用户身份,必须使用密码
root切换成别的用户身份,不需要使用密码。
usermod指令:
语法格式:usermod [选项] [用户名]
常用的选项与useradd命令中的选项一样-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
另外,可以使用 -l 选项 来修改用户名(建议:如果修改用户名,最好也一起把主目录也一起修改了)。
格式如下: 如果修改用户名,最好带上-m参数,同时修改主目录
usermod -l newName -d /home/newName -m oldName案例1:# usermod -s /bin/ksh -d /home/ls –g adm lisi
此命令将用户lisi的登录Shell修改为ksh,主目录改为/home/ls,用户组改为adm
案例2:
# usermod -m michael -l michael1 -d /home/michael1
注意:修改指定都是修改配置文件/etc/passwd 和 /etc/shadow里的内容
userdel指令:
系统管理员可以将用户账户从系统中删除。在做删除操作时,/etc/passwd,/etc/shadow,/etc/group等相关系统文件中的该用户记录会同时删除。有的时候,可能还需要删除该用户相关的主目录。
语法格式:userdel [选项] [用户名]
-r 把用户的主目录一起删除。-f 强制删除用户,即使当前用户已登录。
如果没有添加-r. 可以使用useradd -g 指定原组 -u 指定原uid值 用户名, 添加回来,再次删除。
User的管理(/etc/passwd,/etc/shadow)
/etc/passwd文件里的格式 :
每一行都是一个用户的信息。 每一行都被冒号分隔成7列
michael:x:2001:1002:this is the new user:/home/michael01:/bin/sh
第一列: 用户名
第二列:密码
第三列:UID
第四列:GID
第五列:备注
第六列:用户的家
第七列:该账号登录时使用的shell解析器
扩展: /etc/shadow文件里的格式(账号密码的加密文件。。。。使用冒号隔开成9列。)
michael : $6$NW1x…..e1: 20024 : 0 : 99999 : 7 : : :
用户名:
加密密码:
最后一次修改时间: 距离1970.1.1的天数
最小修改时间间隔: 也就是必须大于等于设置的时间,才可以再次修改密码。如果修改为0,则不受限制。 默认值0
密码有效期: 默认值99999天。 如果设置了某一个值,则表示超过这个值的天数,账号不可用
密码需要变更前的警告天数: 在过期前n天,进行提醒变更密码,默认值是7
密码过期后的宽限时间: 如果是0,表示过期后立即失效,如果是-1,表示永不失效,如果是大于0的一个数,即宽限的天数后才失效
账号失效时间: 指定该账号无法使用的日期, 也是距离1970.1.1的总天数来计时。
保留字段:
groupadd指令:
语法格式如下:groupadd [选项] [用户组]
常用选项有:
-g 指定新用户组的组标识号(gid)。
-o 一般与-g选项同时使用,表示新用户组的gid可以与系统已有用户组的gid相同。实例1:# groupadd grp1
//在系统中添加一个新组grp1,新组的gid是在当前已有的最大组标识号的基础上自动+1。
实例2:# groupadd -g 600 grp2
//在系统中添加了一个新组grp2,同时指定新组的组标识号是600。
groupmod指令:
语法格式:groupmod [选项] [用户组]
常用的选项有:
-g 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新gid可以与系统已有用户组的gid相同。
-n 将用户组的名字改为新名字实例1: # groupmod -g 601 grp1
// 将用户组grp1的组标识号修改为601。实例2: # groupmod –g 10000 -n grp2 grp1
// 将用户组grp1的标识号改为10000,同时将组名修改为grp2。
groupdel指令:
语法格式:groupdel [用户组]
在执行groupdel命令之前,建议备份/etc/group和/etc/gshadow文件,以防止意外情况发生。
cp /etc/group /etc/group.bak
cp /etc/gshadow /etc/gshadow.bak案例1:# groupdel grp1
//从系统中删除用户组grp1。
不要删除系统中关键的用户组,如root,wheel 等。这些用户组对于系统的正常运行至关重要
Group的管理(/etc/group)
Linux将系统内的多个用户规划到不同的用户组中,这样系统就可以通过管理用户组来统一管理多个用户了。默认情况下,系统在创建用户时,会同时创建一个与它同名的用户组,然后将此用户划分到这个用户组中。
用户组的单独管理,其实就是对/etc/group系统文件的管理,涉及到的操作有:添加,删除和修改。
/etc/group文件,用于存储组信息(三个冒号分开四列)
group1:x:1200:
【 1 】 【2】【3】【4】
用户组的名称
用户组的密码,只是使用了x来占位
用户组的唯一标识GID。
附加成员
2.8文件权限命令
权限种类:
文件权限 | 代表字符 | 数字表示 | 对文件的含义 | 对目录的含义 |
---|---|---|---|---|
读(read) | r | 4 | 可以查看文件内容 | 可以列出目录内容 |
写(write) | w | 2 | 可以修改文件内容 | 可以在目录内创建、删除文件 |
执行(execute) | x | 1 | 可以执行文件 | 可以进入目录 |
文件属性解析:
[root@linux01 ~]# ls -l
-rw-r--r-- 1 root root 302 8月27 9:24 namelist
【 1 】 【2】 【3】 【4】 【5】 【6】 【7】解析:
第一列:由10个字符组成。第一个字符表示文件类型,第2~10个字符表示权限
权限由9个字符构成:前三个字符表示owner拥有的权限
中间三个字符表示group下的所有成员拥有的权限
后三个字符表示other的权限
第二列:文件的硬链接数
第三列:owner的名称
第四列:group的名称
第五列:文件大小
第六列:该文件的最后一次访问时间
第七列:该文件名
文件权限的针对者:
从文件属性的第一列的解析来看,文件的权限是针对于三种不同用户来设定的
拥有者,即文件的owner
用户组,即文件的所属组
其他人,即除了上述两种情况的其他情况,称为others
chmod指令:
语法1:chmod [ugoa] [+-=] [rwx] [filename] 该指令只能是root和owner自己使用
解析:
u: 表示owner,即第2~4个字符
g: 表示group,即第5~7个字符
o: 表示other,即第8~10个字符
a: 表示all, 即所有人
+: 表示在原有的权限上添加新权限
-: 表示在原有的权限上撤销权限
=: 覆盖原有的权限,授予新权限
注意:使用+-=操作时,不能使用数字
注意:如果使用数字,那就不能使用+-=,而且尽量使用三位数,第一个数字是owner的,第二个是group,第三个other。案例1:赋予文件file1所属组写权限
chmod g+w file1
案例2:取消所有者,用户组,其他人三个部分对file1的写权限
chmod ugo-w file1
语法2:chmod [421] [filename]
解析:第二个参数中的三个数字分别表示owner,group,other的权限
即每个数字表示某一个身份的权限之和
案例3:设定目录dir1为所有用户具有全部权限
chmod 777 dir1
案例4:chmod 763 file1
7表示拥有者的权限是可读可写可执行 111--->rwx
6表示所属组的权限是可读可写 110--->rw-
3表示其他人的权限是可写可执行 011--->-wx
扩展:如果写成了一位数,比如4,相当于004, 两位数41,相当于041
一般不建议这么写,可读性差。
文件和目录创建后有默认权限:
root身份创建的:
文件:644 (目录各位数字减1)
目录:755 022 -------- umask 权限的反码
普通用户创建的:
文件:664
目录:775 002赋值权限问题:
针对于文件而言:权限可以任意chmod,但是在应用时,会涉及到权限够不够的问题
如果文件有x权限,则必须给r权限。
合理性问题:如果文件有w权限,应该给r权限
针对于目录而言:权限可以任意chmod,但是在应用时,会涉及到权限够不够的问题
如果有r权限,应该赋予x权限
如果有w权限,应该赋予x权限
chgrp指令:
格式:chgrp [-R] [newGroup] filename 该指令只能是root用户使用
功能描述:改变文件或目录的所属组案例1: 改变文件file1的所属组为adm
chgrp dam file1
案例2:修改目录dir1及其子目录和文件的用户组为michael
chgrp -R michael dir1
chown指令:
格式1:chown [-R] [newOwner] filename 该指令只能是root用户使用
参数: -R 表示递归修改拥有者案例1:改变文件file1的所有者为nobody
chown nobody file1
案例2:修改目录dir1及其子目录和文件的拥有者为michael.
chown -R michael: dir1
格式2:chown newOwner:newGroup filename #可以有chgrp的功能
案例3:将install.log的拥有者与群组改为root
chown root:root install.log
案例4:修改目录dir1的用户组为root
chown .root dir1
2.9 sudo指令:
sudo(super user do)指令是Linux系统中用于授权普通用户执行管理员命令的工具。通过sudo,用户可以执行通常只有超级用户(root)才能执行的命令,如关机、重启等。这不仅减少了root用户的登录和管理时间,也提高了系统的安全性。
基本语法:sudo [选项] 命令
-V:显示版本信息。
-h:显示帮助信息。
-l:列出当前用户的权限。
-v:更新用户的sudo有效时间。
-k:结束sudo的有效时间,下次使用时需要重新输入密码。
-b:在后台执行命令。
-p:自定义密码提示信息。
-u:以指定的用户身份执行命令。
eg:
要以root用户身份查看隐藏文件: sudo ls -a
使用sudo时,应谨慎避免误操作,遵守系统规则和策略,不滥用权限,并注意环境变量的影响。sudo会记录操作日志,对于非授权用户的尝试,系统会记录安全事件。
sudo配置文件:
sudo的配置文件位于 /etc/sudoers,通常需要使用 visudo命令进行编辑,以防止语法错误。在sudoers文件中,可以定义用户或用户组的权限,指定哪些用户可以在哪些主机上执行哪些命令。
sudoers文件的权限即使是root用户,也仅仅只有可读权限。
修改该文件的方式:
方式1: root用户 直接vi /etc/sudoers 然后强制保存
方式2:直接输入visudo
visudo:
[root@linux01 ~]# visudo
进入后,找到第100行和110行。(set nu指令显示行号)
- 在100行的 root ALL=(ALL) ALL下面填写 ---配置这个,就可以使用sudo了。
scott ALL=(ALL) ALL
- 在110行的 #%whell ALL=(ALL) NOPASSWD:ALL下面填写 --配置这个,就可以不用再输入密码了
scott ALL=(ALL) NOPASSWD:ALL
-解析: scott ALL=(ALL) ALL
第一列:使用sudo的账号
第二列:客户端计算机主机名
第三列:可切换的身份
第四列:可使用的指令,注意使用具体指令时需要使用绝对路径,多个指令用逗号分开
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
lucy ALL=(ALL) ALL
lily ALL=(ALL) ALL
xiaohei ALL=(root) /usr/bin/chown,/usr/bin/chgrp
xiaobai ALL=(root) ALL
参考一下:(让yangyang可以有root的身份,用root的chown和charp指令并且不用输入密码)
标签:修改,root,用户组,用户,etc,指令,Linxu,权限,高阶 From: https://blog.csdn.net/NGC2237999/article/details/145075784