Linux③—远程管理命令、权限及组、用户管理

Linux③—远程管理命令、权限及组、用户管理

<<<CSDN排版问题较差,想看排版好的进Linux③—远程管理命令、权限及组、用户管理>>>

1、远程管理

①关机/重启
shutdown [option] [time] 关机/重启
shutdown 选项 时间
选项 含义
-r 重新启动
-c 取消目前已经进行中的关机动作
-h 关机后停机
注意:
不指定选项和参数时,默认执行 1分钟之后关闭电脑
远程维护服务器时,最好不要关闭系统,应该重新启动系统

常用命令举例:
shutdown -h now 现在马上关机
shutdown -h 20:30 晚上8:30定时关机
shutdown -r now 现在马上重起
shutdown -r 20:30 晚上8:30定时重起
shutdown +10 再过十分钟之后关机

②查看或配置网卡信息
序号 命令 对应英文 作用
01 ifconfig network interfaces configuring 查看/配置计算机当前的网卡配置信息
02 ping ip ping 检测目标ip地址的连接是否正常
Ubuntu的ip地址可在 设置中的网络 里查看
注意:每个IP地址都不可以相同,否则出现IP地址冲突,无法正常网络通信

ifconfig命令
如果没安装相关组件,输入sudo apt install net-tools安装
小技巧:可以直接通过 ifconfig | grep inet (管道)直接筛选出ip地址
提示:一台计算机可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以 ensXX 表示
127.0.0.1被称为 本地环回地址(或接口)/回送地址(loopbackaddress),一般用来测试本机网卡是否正常

ping命令
检测目标主机是否连接正常:
ping IP地址
检测本地网卡工作正常:
ping 127.0.0.1

原理:它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
ping命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。数值越大说明网速越慢。
注意:Linux,终止一个终端程序的执行,使用Ctrl+c,例如ping命令没停,就可以使用该方法停止。
英文名词解释:
TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段
mdev 就是 Mean Deviation 的缩写,它表示这些 ICMP 包的 RTT 偏离平均值的程度,这个值越大说明你的网速越不稳定
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
RTT(Round-Trip Time): 往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。

③ssh(安全外壳协议)
SSH 为 Secure Shell 的缩写
SSH客户端→→→→→连接→→→→→SSH服务器
一般基于Linux内核的都有装ssh客户端和ssh服务器端,包括mac,如果你的系统为windows系列,必须手动进行安装

ssh的两大优点:
一、数据传输采用加密的方式,防止出现信息被劫持(DNS欺骗和IP欺骗)等安全问题
二、数据传输采用压缩的方式,加快传输速度

④ip和端口号
IP 互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给用户上网使用的网际协议(英语:Internet Protocol, IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类
Port 端口 ,根据端口号可以将信息传输给相应的程序(进程)
域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)
网域名称系统(DNS,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
举例:你可以ping www.baidu.com 然后下面会收到 IP 回复,你用浏览器访问那个IP,就是访问www.baidu.com

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)
序号 服务 端口
01 SSH服务器 22
02 Web服务器 80
03 FTP服务器 21
04 HTTPS 443
举例:一般默认浏览器会默认替你加http://以及:80端口

⑤SSH客户端
ssh [-p port] user@remote
user 指远程服务器的用户名,如果不指定则默认为当前用户
remote 指远程机器的地址,可以是 IP/域名,或者是 别名
port 指SSH Server监听的端口,如果不指定,则默认为22端口
提示:
一、使用exit退出当前用户的登录
二、ssh命令 只在linux或者Unix系统下使用
三、Windows下需要安装 PuTTY 或者 Xshell 客户端软件
Windows下安装Putty或者Xshell尽量去官方网站下载,避免产生不必要的麻烦,使用exit退出

⑤——额外扩展
SSH配置信息一般保存在用户家目录下的 .ssh 目录中

免密登录
步骤:1、配置公钥
执行 ssh-keygen 先生成SSH钥匙,然后按提示按相应的键,一直按 回车键 即可
2、上传公钥到服务器
执行 ssh-copy-id -p port user@remote
理解原理:本地(id_ras.pub 公钥 id_rsa 私钥) 服务器(authorized_keys 与本地中的公钥相同)
本地使用 私钥 对数据进行加密/解密,服务器使用 公钥 对数据进行加密/解密
非对称加密算法:两个密钥——公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

配置别名
例如:使用 ssh xxx来代替 ssh -p port user@remote
步骤:在 ~/.ssh/config 里面追加:
Host xxx
HostName remote(ip)
User user
Port 22
配置别名不仅在ssh命令下可以使用,在scp命令照样可以使用

⑥SCP
secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令
格式:与ssh基本相同,但是在指定端口号时使用-P而不是-p,需要大写的P

1、从本地复制到远程,命令格式:
scp 本地文件 远程用户名@远程ip:远程文件夹
或者
scp 本地文件 远程用户名@远程ip:远程文件
或者
scp 本地文件 远程ip:远程文件夹
或者
scp 本地文件 远程ip:远程文件
第1,2个指定了用户名,然后会提示你输入密码;第1个指定了远程的目录,该本地文件将会放在该目录下,文件名字不变,第2个会更改文件名;
第3,4个没有指定用户名,然后会提示你输入用户名和密码;第3个仅指定了远程的目录,该本地文件将会放在该目录下,文件名字不变,第4个会更改文件名;

2、从本地复制到远程,命令格式:
scp -r 本地文件夹 远程用户名@远程ip:远程文件夹
或者
scp -r 本地文件夹 远程ip:远程文件夹
第1个指定了用户名,接下来会提示你输入密码;
第2个没有指定用户名,接下来会提示你输入用户名和密码;

3、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
scp 远程用户名@远程ip:远程文件 本地目录
scp 远程用户名@远程ip:远程文件 本地文件
scp -r 远程用户名@远程ip:远程目录 本地目录

注意:
1.如果远程服务器防火墙有为scp命令设置了指定的端口,则需要使用 -P 参数来设置相应的端口号。
2.使用scp命令要确保该用户具有可读取远程服务器相应文件的权限,否则scp命令无法达到预期作用。
选项 含义
-r 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,且目标文件必须为一个目录名,类似cp命令
-P 用于指定SSH服务器的端口号,默认为22,需要大写字母P来指定

⑥FileZilla
传输文件可以使用FileZilla即FTP
可以去官方网站下载:https://www.filezilla.cn/download/client
FTP使用的是FTP服务,不是上述的SSH服务,服务端口为21

2、权限管理

①基本概念
Linux权限是Linux系统中非常重要的一部分,想对某个文件或者目录进行操作,必须具有相应的权限才可执行成功
Linux下文件的权限类型一般包括读,写,执行,对应字母为 r、w、x
Linux下权限的粒度有 拥有者 、拥有者所属群组 、其它组 三种
用户管理包括 用户 和 组 管理
Linux 文件/目录 权限:
序号 权限 英文 缩写 数字代号
01 读 read r 4
02 写 write w 2
03 执行 excute x 1
04 无权限 - 0

②组
如果不同用户但是权限一样,则可以设置 组 权限,然后将需要相同权限的不同用户都添加到组中,就不用一个一个为每一个用户去设置权限了。

③ls -l 显示详细信息
命令 ls -l 查看详细信息,从左到右依次是:
文件类型 文件权限 硬链接数 文件属主名 用户分组名 文件大小 时间 名称
详解如下图

权限详解如下图

④硬链接数
通俗讲,即有多少种不同的方式可以访问到该 文件/目录
文件的硬链接数一般为1,目录的硬链接数取决于子目录数,目录硬链接数最少为2,第一种访问方式是通过绝对路径(根目录一级一级)访问到该目录,第二种访问方式是通过子目录中运行命令 cd . , . 代表还是在该目录下

⑤修改权限
chmod 可以修改 用户/组 对 文件/目录 的权限
命令格式:chmod +/- rwx 文件名|目录名
注意:Linux系统下,如果文件为可执行文件或者脚本文件,只要有可执行权限就可以直接执行
格式:./文件名

⑥文件与目录的(rwx)权限详解
对于文件而言:
®读权限允许用户仅读取该文件内容
(w)写权限允许用户修改该文件
(x)执行权限允许用户标识执行该文件:
a. 对于一个不可执行的文件来说,拥有(x)执行权限是没有任何意义的
b. 如果对一个文件拥有(x)可执行权限时,那么它就是可执行的
对于目录而言:
®读权限允许用户读取目录中的文件名,只能读取目录中下的内容
(w)写权限允许用户修改目录(新增、删除、移动与复制等)
(x)执行权限允许用户查找该目录下的内容,并且可以使用cd进入到该目录下
⑦超级用户root
Linux系统中的root相当于Windows中的administrator,用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
不推荐直接使用 root 账户登录系统

sudo
su 是substitute user的缩写,替换用户身份 的意思
sudo允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
用户使用 sudo 后,必须先输入密码,之后有 5分钟的有限期限,超过则需要重新输入密码
注意:若未经授权的用户试图使用 sudo 命令,则会发出警告邮件给管理员

⑧组管理
提示:创建/删除 组都需要通过sudo来执行,不通过sudo则没有权限执行
序号 命令 作用
01 groupadd 组名 添加组
02 groupdel 组名 删除组
03 cat /etc/group 确认组信息
04 chgrp 组名 文件/目录名 修改文件/目录的所属组
05 chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组(将该目录下的所有子目录和文件所属组全部修改)

⑨用户管理
创建用户、删除用户以及修改其他用户密码 的终端命令都需要 sudo 才可以执行成功
序号 命令 作用 说明
01 useradd -m -g 组 新建用户名 添加新用户 -m 自动建立用户家目录-g 指定用户所在的组,否则会默认建立一个同名的组
02 passwd 用户名 设置用户密码 如果是普通用户,直接用passwd可以修改自己的账户密码
03 userdel -r 用户名 删除用户 -r 选项会自动删除用户家目录
04 cat /etc/passwd | grep 用户名 确认用户信息 新建用户后,用户信息会保存在 /etc/passwd文件中
注意:1、创建用户后记得给用户设置密码
2、创建用户时如果忘记-m给用户添加家目录,则可以先删除用户再重新创建

/etc/passwd 文件存放的是用户信息, cat /etc/passwd | grep 用户名 查看的信息由六个冒号分隔成的七个信息,分别是
1、用户名 2、密码(x,表示加密的密码) 3、UID(用户ID) 4、GID(组ID) 5、用户全名或者本地账号
6、家目录 7、登录使用的Shell,即登录之后,使用的终端命令,ubuntu 默认为 dash

⑩查看用户信息
序号 命令 作用
01 id [用户名] 查看用户 UID 和GID 信息
02 who 查看当前所有登录的用户列表
03 whoami 查看当前登录用户的账户名
UID:用户ID GID:组ID

通过 cat -n /etc/group | grep 用户名 可以查看自己组权限有哪些
例如

可以看到erawalker账户属于的 组 有上面这些:adm、cdrom、sudo、dip、plugdev、lpadmin、erawalker、sambashare。

⑪usermod
usermod可以用来设置用户的 主组/附加组 和 登录Shell
主组:一般在账户创建的时候指定,不指定则默认为与账户名同名的组,在etc/passwd 查看个人用户信息时,第四列即为GID对应的组
附加组:在etc/group 查看组信息时,最后一列表示该组的用户列表,用于指定 用户的附加权限
注意:设置用户的附加组之后,需要重新登录才会生效!

命令格式:

修改用户的主组(passwd的GID)

usermod -g 组 用户名

修改用户的附加组

usermod -G 组 用户名

修改用户登录Shell

usermod -s /bin/bash
例如:想让刚刚创建的用户可以使用sudo可以root身份执行命令,则 usermod -G sudo 用户名

Shell
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
默认创建用户的Shell默认为dash,dash效率高、速度更快,也更加符合POSIX规范;它和bash存在一些区别,bash在显示目录和文件的时候有颜色区分,而且bash按↑可以切换到上次运行的命令,dash不支持,bash和dash两者还有其他函数支持的一些区别
注意:usermod更改用户Shell后,需要重新登录才会生效!

⑫which查看用户命令所在位置
提示:/etc/passwd 保存用户信息的文件
/usr/bin/passwd 用于修改用户密码的程序

例如:which ls 查看ls命令所在目录

bin和sbin
Linux系统中的可执行文件大部分都保存在/bin、/sbin、/usr/bin、/usr/sbin
/bin(binary)二进制执行文件目录,主要用于具体应用
/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin(user commands for applications)后期安装的一些程序
/usr/sbin(super user commands for applications)超级用户的一些管理程序
注意:cd 终端命令是内置在系统内核中的,没有独立的文件,因此which无法查找

⑬切换用户
序号 命令 作用 说明
01 su - 用户名 切换用户,并且切换目录 -可以切换到家目录,不加-则目前位置不变
02 exit 退出当前用户登录
su不接用户名,可以切换到root,不推荐,因为存在安全问题
注意:exit此时只会退出到上次登录这个用户之前的用户,直到没有 ‘之前用户’ 了,exit才会退出Shell,举个例子:我当前是A账户,我在A账户的基础上执行 su 切换到了B账户,在B的基础上又执行 su 切换到C账户,在C账户执行了 exit 命令,此时只退出到B账户上,再执行 exit命令,会退出到A账户上,A账户在执行 exit 命令,才会退出Shell

⑭修改文件权限
序号 命令 作用
01 chown 修改拥有者
02 chgrp 修改组
03 chmod 修改权限
命令格式:
#修改文件|目录的拥有者
chown 用户名 文件名|目录名
#递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
#递归修改文件权限
chmod -R 755 文件名|目录名

chmod设置权限时,可以像上面这样用三个数字分别代表 拥有者/组和其他用户 的权限
直接修改 文件/目录 的 读/写/执行 权限,但是不能精确到 拥有者/组/其他用户
chmod +/- rwx 文件名/目录名

权限与数字对应关系如下:

常见数字组合有(u表示用户/g表示组/o表示其他用户)、
777 ==> u=rwx,g=rwx,o=rwx
755 ==> u=rwx,g=rx,o=rx
644 ==> u=rw,g=r,o=r

发布了23 篇原创文章 · 获赞 15 · 访问量 2562

猜你喜欢

转载自blog.csdn.net/u010511598/article/details/88168004