linux 基础命令3
基础命令-3
scp 、 rsync
rsync 命令:
远程数据同步工具,他传输2个文件的不同内容,而不是每次整份传送,因此速度相当快。
重点:
1.同步本地内容,试目的目录与源目录保持绝对的一致。
rsync -av --delete A/ /data/B
rsync -av --delete A /data/B
ps1: B目录可以不存在,如果不存在则自动创建,但是上级data必须存在。
ps2: A目录不带/意义是不一样的,带斜杆表示同步A目录下的文件,不带则同步A目录以及其中的文件
--delete : B与A保持绝对的一致,B中存在,而A中不存在的文件将被删除。
2. 将本地目录同步到远程目录:
rsync -av A/ 127.1.0.1:/data/
将本地A目录下所有文件,同步至远程服务器上
同理,要想实现绝对的一致,则需要加上 --delete参数。
使用ssh协议连接到远程,所以可以将本机公钥发布到远程主机,
否则每次执行都会提示密码
3.将远程目录同步到本地:
rsync -av 127.1.0.1:/date/C .
rsync -av 127.1.0.1:/date/C/ .
. 表示将远程目录C,同步到本地目录C
ps:要注意不带斜杠会在本地目录创建一个C目录,
如果带上斜杠/,则只会同步C目录下的文件。
SCP命令:
加密的方式在本地主机和远程主机之间复制文件
重点掌握:
1.本地目录复制到远程
scp -r xxl/ 127.1.0.1:/data/
ps:xxl后面不管带不带/ 都可以同步到XXl 目录
如果只想同步目录下的文件:
scp -r xxl/* 127.1.0.1:/data/
2.本地文件复制到远程:
scp fstab 127.1.0.1:/data/
3.启动压缩
scp -rC xxl/ 127.1.0.1:/data/
开启shell 拓展
shopt -s extglob
rm -rf !(anaconda-ks.cfg)
权限管理:
chomd chown setsacl chattr lsattr
chomd 命令:
变更文件或目录的权限
u 用户User ,文件或目录的所有者
g 用户组group 文件或目录所属的群组
o 其他用户others
a 所有用户all 系统默认使用此项
+添加某些权限
-取消某些权限
=设置文件的权限为给定的权限。
r 表示可读权限
w 表示可写权限
x 表示可执行权限
- 表示没有权限
s 设置权限suid和sgid 使用权限组合u+s 设置文件的用户的id位,g+s 设置组的id位
t 只有目录或文件的所有者才可以删除目录下的文件
-r 递归处理,将指令目录下的所有文件以及子目录一并处理
重点
1.【o+w | o =rw】 将file1 文件其他用户权限设置为可读可写:
2.o+w 将目录权限设置为其他用户可写,这时候普通用户进入到目录中可以任意删除,修改文件名,
对文件的其他用户权限为不可写的文件也可以强制保存。
3.o-w将目录设置其他用户不可写
4.-t 对目录设置特殊权限,用户只能删除自己的文件
5.-s 设置权限suid和sgid,使用权限组合u+s 设置使文件在执行阶段具有文件所有者的权限,
g+s 仍和用户在此目录下创建的文件都具有和该目录所属的组相同的组。
u+s
setfacl命令:
设置文件访问控制列表
-m 修改文件的acl规则
#设置用户权限
setfacal -m u:xxl:rw abc.txt
#设置组权限
setfacl -m g:web:rw abc.txt
#取消用户所有权限
setfacl -m u:xxl:- abc.txt
#取消其他用户得所有权限
setfacl -m o::- abc.txt
useradd xxl'setfacl -m u:xxl:rw /data/abc.txt
#getfacl 用于查看文件acl权限;
getfacl /data/abc.txt
#file:data/abc.txt
#owner: root
#group: root
#第一个user没有写用户名,代表默认属主的root的权限
user::rw-
#第二个user 代表得是xxl用户权限
user:xxl:rw-
group::r--
mask::rw-
other::r--
[-x] 撤销某个用户得acl权限,恢复到普通的ogo权限:
#不能单独撤销某一个权限,比如只撤销可写权限
setfacl -x u:xxl abc.txt
[-b]撤销所有用户或者组得acl权限:
setfacl -x u:xxl abc.txt
[-b]撤销所有用户或者组得acl权限:
setfacl -b /data/abc.txt
[--set-file]复制一个文件acl权限到另外一个文件:
getfacl file1 | setfacl --set-file=- file2
-表示输出流
echo xxl | cat -
[mask]会临时降低acl用户或者组的权限,只能降低用户权限,不能提升。
chattr命令:
改变文件属性
[+a]让某个文件只能往里面追加内容,不能删除
chattr +a /var/log/nginx/access.log
去掉属性就是-a
[+i]防止系统中某个关键文件被修改,删除
用户管理
useradd命令
创建用户
passwd命令
修改用户密码
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战