文件传输:scp、rsync

1、文件传输:scp、rsync
1.1 scp 命令:

加密的方式在本地主机和远程主机之间复制文件。

1.1.1 本地目录复制到远程:
[root@node1 ~]# scp -r jfedu/ 172.16.13.25:/data/
# 第一次使用命令会提示保存配对信息
The authenticity of host '172.16.13.25 (172.16.13.25)' can't be established.
ECDSA key fingerprint is SHA256:19IZkFNSxlWcSdBa0WvDmEmqScSUTNAf+2rtobvH+Bs.
ECDSA key fingerprint is MD5:c4:1b:6c:b1:93:4b:7c:f2:af:10:30:34:5c:39:44:83.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.13.25' (ECDSA) to the list of known hosts.
root@172.16.13.25's password: 
index.html                                  100%    0     0.0KB/s   00:00    
aa.txt                                      100%    0     0.0KB/s   00:00

ps:jfedu后面不管带不带/,都可以同步jfedu目录

如果只想同步目录下文件:
scp -r jfedu/* 172.16.13.25:/data/
1.1.2 本地文件复制到远程:
[root@node1 ~]# scp jfedu.txt 172.16.13.25:/data/

[root@node1 ~]# scp jfedu.txt 172.16.13.25:/data/
root@172.16.13.25's password: 
jfedu.txt                                   100%    0     0.0KB/s   00:00 
1.1.3 启用压缩:
scp -rC jfedu/ 172.16.13.25:/data/
1.2 rsync 命令

远程数据同步工具,它传送两个文件的不同部分,而不是每次都整份传

送,因此速度相当快。

需要注意:本地与远程服务器都需要安装好 rsync软件包。

1.2.1 目录保持绝对一致:

–delete 参数会删除源目录中没有,而远程目录中存在的文件 ,以此保持

文件一致。

# 同步本地目录。 
[root@node1 ~]# rsync -av --delete A/ /data/B 
[root@node1 ~]# rsync -av --delete A /data/B 

ps1: B目录可以不存在,如果不存在则自动创建,但是上级data必须存在。 
ps2:A目录带不带斜杠/,意义是不一样的,带斜杠表示同步A目录下的文件, 不带则同步A目录以及其中文件。 
--delete: B与A保持绝对的一致,B中存在,而A中不存在的文件将被删除。
1.2.2 本地同步到远程:
[root@node1 ~]# rsync -av A/ 172.16.13.25:/data/

将本地A目录下所有文件,同步至远程服务器132上, 
同理,要想实现绝对的一致,需要加上--delete参数。 

使用ssh协议连接到远程,所以可以将本机公钥发给远程主机, 
否则每次执行都会提示出入密码。
1.2.3 远程同步到本地:
rsync -av 172.16.13.25:/data/C .

.    # 表示将远程目录C,同步到本地C目录。

ps:要注意不带斜杠会在本地创建一个目录,
   如果带上斜杠/,则只会同步C目录下的文件。
1.3 开启shell扩展:
shopt -s extglob
rm -rf !(anaconda-ks,cfg)
2. 权限管理
chmod、chown、setfacl、chattr、lsattr
2.1 chmod 命令:

变更文件或目录的权限

u  用户user,文件或目录的所有者。
g  用户组group,文件或目录所属群组
o  其它用户others
a  所有用户all,系统默认使用此项

+ 添加某些权限
- 取消某些权限
= 设置文件的权限为给定的权限
r 表示可读权限
w 表示可写权限
x 表示可执行权限

s 设置权限suid和sgid,使用权限组合“u+s”设定文件的用户的ID位,“g+s”设置组ID位
t 只有目录或文件的所有者才可以删除目录下的文件

-R 递归处理,将指令目录下的所有文件及子目录一并处理
2.1.1 设置可读可写:
# o+w | o=rw
+ 表示在原先权限的基础上加写权限。
= 表示直接将其他用户权限设置为可读可写,如果以前还有可执行权限,现 在也去掉。
[root@node1 ~]# ll
-rw-r--r-- 1 root root 0 8月  15 15:09 jfedu1
# 对普通文件授权:
[root@node1 ~]# chmod o+w file1
[root@node1 ~]# ll
-rw-r--rw- 1 root root 0 8月  15 15:09 jfedu1
# 对目录进行授权,R表示递归:
[root@node1 ~]# chmod -R o+w jfedu/
2.1.2 危险操作:
# 将目录权限设置为其他用户可写,这时普通用户是可以进入到目录中任意删 除,修改文件名(即使不是自己的文件),对文件的其他用户权限为不可写的文件 也可以强制保存。

chmod o+w /data/
jfedu1用户修改jfedu2用户的文件:
-rw-r--r-- 1 jfedu2 jfedu2 30 八月 15 15:32 fs
[jfedu1@nodw1 data]$ vim fs
...
#提示不能修改 
E45: 'readonly' option is set (add ! to override) 
这时可以强制保存(:wq!)。 
[lutixia1@localhost data]$ cat fs 
this is test 
this is jfedu2 
this is jfedu1

【o-w】将目录权限设置为其他用户不可写(目录默认权限755),这时普通用 户就无法删除,修改文件名,但是如果文件本身有其他可写权限,还是可以写数 据的。

总结一下:父目录其他用户有可写权限,其下子文件不管有没有可写权

限,均可强行写入,修改!

父目录其他用户没有可写权限,其下子文件只有可写才有写入权限,但不

具备删除,修改文件名权限。

2.1.3 设置t权限:

-t 是对目录设置特殊权限,用户只能删除自己的文件。

# data目录需要设置其他人可写权限 
[root@node1 ~]# chmod o+w,o+t /data/ 
#lutixia2想删除lutixia1的文件,失败 
[jfedu2@node1 data]$ ll -rw-r--r-- 1 jfedu1 jfedu1 63 Aug 22 05:58 fs 
[jfedu2@node1 data]$ rm -rf fs rm: cannot remove ‘fs’: Operation not permitted
2.1.4 设置s权限:

【-s】权限可以设置suid和sgid:

  • “u+s” : 设置使文件在执行阶段具有文件所有者的权限;
  • “g+s” 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

【u+s】

#未设置前,普通用户执行netstat -ntlp,会提示没有root权限,普通用户 看不了pid的属主: 
[jfedu1@localhost data]$ netstat -nltp 
(No info could be read for "-p": geteuid()=1003 but you should be root.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -.

#设置suid后: 
chmod u+s /usr/bin/netstat
[jfedu1@node1 data]$ netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign
Address State PID/Program name 
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN   		1/systemd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN 			1050/sshd

【g+s】

任何用户在此目录下创建的文件都具有和该目录所属的组相同的组

[root@localhost ~]# chmod g+s /data 
[jfedu2@localhost data]$ ll 
drwxrwsr-x 2 jfedu1 root 6 Aug 22 07:14 jfedu1 
drwxrwsr-x 2 jfedu2 root 6 Aug 22 07:15 jfedu2
2.2 setfacl命令:

设置文件访问控制列表

2.2.1 修改acl规则:

通过-m参数,可以修改文件的acl 规则

# 设置用户权限
setfacl -m u:jfedu:rw abc.txt

# getfacl用于查看文件acl权限: 
[root@node1 ~]# getfacl /data/abc.txt 
# file: data/abc.txt
# owner: root
# group: root

#第一个user没有写用户名,代表是默认属主root的权限
user::rw-
#第二个user代表得是jfedu用户得权限
user:jfedu:rw-
group::r--
mask::rw-
other::r--

# 设置组权限
setfacl -m g:web:rw abc.txt
# 取消用户所有权限
setfacl -m u:jfedu:- abc.txt
# 取消其他用户得所有权限:
setfacl -m o::- abc.txt
# 用户必须存在,否则会报错:
[root@node1 ~]# setfacl -m u:jfedu:rw /data/abc.txt
setfacl: Option -m: Invalid argument near character 3
[root@node1 ~]# id jfedu
id: lutixia: no such user
[root@node1 ~]# useradd jfedu
[root@node1 ~]# setfacl -m u:jfedu:rw /data/abc.txt
#现在jfedu可以写入数据到abc.txt文件了
[jfedu@node1 ~]$ echo "this is jfedu" >
/data/abc.txt
2.2.2 批量修改acl规则:

【-M】从文件中读取相应得权限进行设置,多用于批量管理用户权限。

#先创建一个文件:
touch acl.txt
#添加要设置得权限:
u:jfedu:rwx
u:jfedu1:rw
u:jfedu2:x
u:jfedu3:rx
#执行,其中abc.txt是要进行权限设置得文件:
setfacl -M acl.txt abc.txt
2.2.3 撤销acl权限

【-x】撤销某个用户的 acl 权限,恢复到普通ugo权限:

# 不能单独撤销某一个权限,比如只撤销可写权限
setfacl -x u:jfedu abc.txt

【-b】 撤销所有用户或者组的acl 权限:

setfacl -b /data/abc.txt
2.2.4 复制 acl 规则:

【–set-file】复制一个文件acl 权限到另外一个文件。

getfacl file1 | setfacl --set-file=- file2
-表示输出流

echo jfedu |cat -
2.2.5 临时降低权限:

【mask】 会临时降低acl 用户或者组的权限,只能降低用户权限,不能提升。

# 设置acl用户的权限为rw:
[root@node1 data]# setfacl -m u:jfedu:rw abc.txt
#这时jfedu用户是可以写入的:
[jfedu@node1 data]$ echo "this is test" >> abc.txt

# 设置mask:
[root@node1 data]# setfacl -m mask::r abc.txt
#这时acl用户只有读权限,不再可写:
[lutixia@node1 data]$ echo "this is test" >> abc.txt
-bash: abc.txt: 权限不够

注意:如果lutixia用户本身r权限(只读权限),即使mask设置为rw,也是 不能写的。
而且设置了mask之后,如果再次使用setfacl进行权限的设置,那么mask的作 用就失效了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值