首页 > 技术文章 > [常用的技巧]

wengfy 2021-12-08 13:32 原文

有用的小技巧

一、scp 远程传输文件或目录

首先确认是否能互相ping通
在想是上传到对方主机还是下载到本地服务器

1、从本地复制文件到远程服务器

scp [本地路径] [对方IP]:[目标路径]

[root@localhost ~]# scp /etc/yum.repos.d/wfy.repo root@192.168.100.30:/etc/yum.repos.d/
root@192.168.100.30's password: 
wfy.repo                                                                   100%   58     0.1KB/s   00:00    
[root@localhost ~]# 
									 #这里root@ 可以省略

2、从远程服务器复制到文件

scp [对方IP]:[本地路径] [目标路径]

[root@localhost ~]# scp root@192.168.100.20:/etc/yum.repos.d/wfy.repo /etc/yum.repos.d/
root@192.168.100.20's password: 
wfy.repo                                                        100%   58     0.1KB/s   00:00    
[root@localhost ~]# 
									#同理root@ 可以省略

3、常用参数

-r 递归复制整个目录
-q 不显示传输进度条
-v 详细方式显示输出

二、重置root管理员密码

适用于红帽8以前

1、重启虚拟机

出现引导引导界面(Red Hat Enterprise Linux Server)时
按下e,进入内后编辑界面

2、修改内核程序

找到utf-8  在它之后空一格输入rd.break
按下Ctrl+x 进入紧急救援模式

3、修改密码

switch_root:/# mount -o remount,rw /sysroot     #以可读可写的方式挂载根目录
switch_root:/# chroot /sysroot                   #进入系统的根目录
sh-4.2# echo "000000" |passwd --stdin root       #修改root密码为000000

sh-4.2# passwd                                  #也能修改密码,两种方法都行
sh-4.2# touch /.autorelabel                    #创建一个自动刷新的文件
sh-4.2# exit
exit
switch_root:/# exit

三、基于ssh秘钥的身份验证(免密登录)

1、免密登录,发送文件

ssh默认端口为22号
文件在 /etc/ssh/sshd_config

生成的公私钥
默认情况下,私钥和公钥分别保存在
/.ssh/id_rsa
/.ssh/id_rda.pub

ssh-keygen
# 生成一个公私钥 (.pub是公钥)

ssh-copy-id  root@IP
# 发送公钥到远程主机,公钥将保存在远程主机的
/.ssh/authorized_keys

#如果有对方的密钥
#需要添加一个-i的参数 
scp -i 对应密钥地址 [本地路径] root@ip:[对方路径]

#如果出现Permissions0644错误,修改一下权限即可
chmod 400 密钥地址

2、修改ssh端口


#修改端口后-p 来指定端口
vi /etc/ssh/sshd_config 
port  10086

#添加规则
semanage port -a -t ssh_port_t -p tcp 10086
firewall-cmd --permanent --add-port=10086/tcp
firewall-cmd --reload

#重启服务
systemctl restart sshd
systemctl restart firewalld.service

#测试
ssh root@localhost -p 10086  

四、cut - 提取列或字段

  • 使用-d选项来指定列分隔符
  • 使用-f选项来指定要打印的列
  • 使用-c选项来指定按字符来提取

1、显示文件指定的列或者标准输入数据

[root@wfy ~]# cut -d : -f1 /etc/passwd
[root@wfy ~]# grep root /etc/passwd |cut -d:-f7

2、显示文件指定的字符

[root@servera ~]# cut -c 1-5 /etc/passwd

六、高级权限

1、文件的特殊执行权限

suid:

  • 1、设置在目录上无意义

  • 2、不能作用在脚本上

  • 3、执行suid权限的程序时,此用户将继承此文件的所有者权限

  • 4、设置方法chmod u+s file 或者chmod 4755 file

sgid:

  • 1、可以设置在目录上
  • 2、不能作用在脚本上
  • 3、执行sgid权限的程序时,此用户将继承此文件的所属组权限
  • 4、设置方法chmod g+s file 或者chmod 2755 file

2、目录的特殊执行权限

sgid:

  • 1、 当一个目录有sgid的权限时,此文件夹下所有用户新建的文件都自动继承此目录的组
  • 2、 设置方法chmod g+s dir 或者chmod 2755 dir

stciky:

  • 1、设置在文件上无意义
  • 2、 对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除和改名自己的文件或目录
  • 3、 用户在设置Sticky权限的目录下新建的目录不会自动继承Sticky权限
  • 4、 设置方法chmod o+t dir 或者chmod 1777 dir

3、设置ACL 权限

setfacl -m 设置和修改权限

描述 功能
给指定用户设置acl权限 u:mary:rxfile
给文件拥有人设置acl权限 u::rwx file
给指定组设置acl权限 g:ti:rwx file
给文件拥有组设置acl权限给 g::rwx file
给文件其他人设置acl权限 o::rXfile
设置掩码值 m::rw file

setfacl -R 递归修改acl权限
setfacl -b 清空所有的acl权限

#举例

setfacl -m u:lisa:r file
#设置lisa用户只读file文件

setfacl -m m::rx file
#设置file的ACL掩码(有效权限) 为可读可写

七、哈希算法

password_hash过滤器
哈希算法

openssl  passwd  -6 redhat
#设置redhat的密文

去掉以#开头 和 空行

grep -v ^#  redis.conf | grep -v ^$   

dd 的用法

# 清除硬盘
dd if=/dev/zero of=/dev/vdb bs=512 count=1

# 备份前512字节
dd  if=/dev/nmve0n1 of=mbr.bak bs=512 count=1

推荐阅读