ubuntu22.04系统入门 (四)linux入门命令 权限管理、ACL权限、管道与重定向

发布于:2025-08-07 ⋅ 阅读:(20) ⋅ 点赞:(0)

以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作

地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录

相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客

兑换码要是过期了,可以私信我获取最新兑换码!!!

之所以推荐给大家使用,是因为上面的云主机目前是免费使用的,不需要大家再去安装虚拟机,部署虚拟机,环境都搭配好了,非常适合新手入门,减少搭建的时间,把时间都用在实践上。

权限管理

        Linux 的传统权限管理是文件系统给每个对象贴的一张“三人标签”:文件所有者、所属组、其他人,各自再配“读-写-执行”三个开关。系统按 UID→GID→Other 的顺序一次性匹配,命中即停。学会这套机制,你就能看懂 ls -l 那串字符,知道为什么别人能 cat 你的脚本却不能改你的配置;能用 chmod 755 把一个 Web 目录既让 Nginx 读得动,又防止访客上传木马;还能用 chown 把开发机上的项目扔给 CI 用户而不影响 root 的密钥。掌握它,等于拿到了 Linux 世界的“门禁卡”,日常 80 % 的权限疑问都能用 rwx 数字法或符号法一句话解决,不再到处喊“我明明有权限却打不开”。

chown:改变文件或目录的所属主以及所属组

chown :(chown 属主.属组 文件名)

chown alice.hr file1.txt //修改属主、属组
chown tom file1.txt //修改属主
chown .it file1.txt //只改属组

chmod : 更改权限

基本权限类型:
读 :r ----> 4
写 :w ----> 2
执行: x(exec) -----> 1

chmod -R a=rwx dir1 //递归更改目录及其中文件的权限

1、使用符号

chmod u+x file1.txt  //属主增加执行
chmod a=rwx file1.txt //所有人等于读写执行
chmod a=- file1.txt //所有人都没有权限
chmod ug=rw,o=r file1.txt //属主属组等于读写,其他人只读
ll
#输出的消息  -rw-rw-r--. 1 tom it  0 Nov 1 15:30 file1.txt

2、使用数字

chmod 644 file1.txt
ll file1.txt
#输出的信息  -rw-r--r--. 1 tom it 0 Nov 1 15:30 file1.txt

chmod 755 file1.txt
ll
#输出的信息  -rwxr-xr-x 1 root root 0 Jul 23 22:40 file1.txt

chmod 521 file1.txt
ll
#输出的信息  -r-x-w---x 1 root root 0 Jul 23 22:40 file1.txt

chgrp : 更改属组

chgrp hr file1.txt //更改文件file1.txt所属组为hr

chgrp -R hr dir1 //递归更改目录dir1及其中文件所属组为hr

ACL权限

        ACL 权限是传统 rwx 的“补丁包”,它在同一文件上再挂一张扩展表,允许你给任意用户或任意组单独加、减权限,而不动原来的三位主人。语法是 setfacl -m u:alice:rw file,意思是除了文件主以外再给 alice 读写权;加 -d 还能让目录里的新文件自动继承规则。学会 ACL,你就能在多成员协作的服务器里优雅地解决“财务组只看报表、开发组可改代码、实习生只能读日志”这种细粒度需求;能在 Samba/NFS 共享里避免把所有人都塞进一个臃肿的组;还能在备份恢复时通过 getfacl/setfacl 一键还原原来那套复杂权限。一句话:有了 ACL,不再为“多给一个用户开小灶就要整组改权限”而抓狂,Linux 共享目录从此像 Windows 一样灵活。

getfacl :查看文件或目录当前设定的 ACL 权限信息

getfacl 文件名

setfacl :直接设定用户或群组对指定文件的访问权限

setfacl -m:给用户或群组添加 ACL 权限

chattr:文件隐藏属性

 touch file1 file2 file3

1、查看文件属性

lsattr file1 file2 file3  #查看文件隐藏属性

#以下为输出信息  
---------------- file1
---------------- file2
---------------- file3

2、设置权限

chattr +a file1 #不允许修改,只允许追加
chattr +i file2 #不允许做任何操作
chattr +A file3
lsattr file1 file2 file3

#以下为输出信息
-----a---------- file1
----i----------- file2
-------A-------- file3

i:即Immutable,系统不允许对这个文件进行任何的修改
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖或截断这个文件
A:即Atime,告诉系统不要修改对这个文件的最后访问时间

#取消权限
chattr -a file1
chattr -i file2

管道与重定向

        管道与重定向是 Linux 命令行的“水流系统”。管道符 | 把前一个命令的标准输出直接接到下一命令的标准输入,像接力棒一样让数据在内存里流动;重定向符号 >、<、2>、&> 则把输入源或输出目的地换成文件或设备。学会它们,就能把 cat big.log | grep ERROR | sort | uniq -c | tee result.txt 这样一条流水线写得行云流水:既实时看到统计结果,又自动保存到文件;能把编译警告 2>warn.log 和正常输出分开存放,排错不再刷屏;还能用 < <(command) 这种进程替换把命令输出临时伪装成文件,给只能读文件的老程序喂数据。掌握管道与重定向,就拥有了把无数小工具拼装成瑞士军刀的能力,日常运维、数据分析、日志审计都能少写大量临时脚本,效率成倍提升。

awk:过滤并输出文件中符合条件的内容

awk -F "分隔符" '{print $第几列}'

cat /home/aaa
sdjlasjlk
asldjasjlkdasjl
grep 'sd' /home/aaa | awk -F "j" '{print $2}'

#过滤aaa中的一行内容然后将结果通过管道传递给awk,过滤并输出以j为分隔符的第二列内容
las

sort: 排序

sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
sort -t":" -k3 -n /etc/passwd |head #以: 分隔,将第三列按字数升序看前十行
sort -t":" -k3 -n /etc/passwd |tail #以: 分隔,将第三列按字数升序看后十行

参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行

xargs:参数传递

对与 ls cp rm mv命令,管道不能执行。所以通过xargs实现。

语法:
 cat a.txt | xargs -i cp {} /目录 
 {}:前面传过来的内容
 -i :为了让大括号生效
 目录时 -r
 解释:前面传过来的东西交给大括号

cat file.txt |xargs ls -l     
 前面是目录或者目录的路径。 ls - l 后面可以不加大括号,直接执行。

touch /home/file{1..5}
cat files.txt | xargs -i cp -rvf {} /tmp/

#以下为输出信息
‘/home/file1’ -> ‘/tmp/file1’
‘/home/file2’ -> ‘/tmp/file2’
‘/home/file3’ -> ‘/tmp/file3’
‘/home/file4’ -> ‘/tmp/file4’
‘/home/file5’ -> ‘/tmp/file5’

后续更新请及时关注吧

请各位帅哥美女们多多支持!!小花花小心心  更多入门知识慢慢补充啦

后期持续关注!


网站公告

今日签到

点亮在社区的每一天
去签到