
| - 管道符管道符:|
作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
# ls / | grep “y”
grep 指令用于“过滤”
grep 语法:grep 选项 文件路径/内容针对上面这个命令说明:
① 以管道作为分界线,前面的命令有个输出,后面需要先输入(缺少查找范围),然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入。
为了便于理解,上述的指令变相实现可以如下:
# ls / > 将ls /的结果保存到文件中
# grep “y” 使用grep指令搜索中的包含y的行
相当于执行两条命令
② grep 指令:主要用于过滤
语法:# grep [选项] “搜索关键词” 搜索范围
示例代码:获取/根目录下包含关键字"y"的文件信息
ls /| grep "y"
例如使用管道符将两个命令连接在一起
ls / | wc -l
这个命令的作用是列出根目录下的所有文件和文件夹,并计算有多少行(即有多少个文件和文件夹)
cat /etc/passwd | wc -l
这个命令的作用是显示 /etc/passwd 文件的内容,并计算该文件中的行数,也就是系统中的用户账户数量
xargs命令来自英文词组“extended arguments”的缩写,其功能是用于给其他命令传递参数的过滤器。xargs命令能够处理从标准输入或管道符输入的数据,并将其转换成命令参数,也可以将单行或多行输入的文本转换成其他格式
使用该命令的原因在于,很多命令不支持|来传递参数,所以要用到xargs来实现传参
例如
find /etc -name "*.conf" | ls -lfind /etc -name "*.conf" | xargs ls -l
两个命令都用管道符 | 将 find 和 ls 命令连接起来,但是它们的管道符后面的命令略有不同:find /etc -name "*.conf" | ls -l:这个命令的意图是在 /etc 目录下查找所有扩展名为 .conf 的文件,然后将结果作为参数传递给 ls -l 命令进行详细列出。但是,这个命令是有问题的,因为 ls 命令不适用于接收 find 命令的输出作为参数。find /etc -name "*.conf" | xargs ls -l:这个命令的作用与第一个命令类似,不同之处在于它使用了 xargs 命令来正确地将 find 命令的输出作为参数传递给 ls -l 命令进行列出。xargs 命令的作用是将标准输入转换为命令行参数,以便可以正确地执行命令。
xargs命令默认接收的信息中,空格是默认定界符,所以可以接收包含换行和空白的内容。
语法格式:xargs [参数] [文件名]
cat 1 | xargscat File | xargs -n 3ifconfig命令来自英文词组“network interfaces configuring”的缩写,其功能是用于显示或设置网络设备参数信息
注意:通常不建议使用ifconfig命令配置网络设备的参数信息,因为一旦服务器重启,配置过的参数会自动失效,还是编写到配置文件中更稳妥。
语法格式:ifconfig [参数] [网卡名] [动作]
常用动作:
显示系统的网络设备信息:ifconfig
网卡配置文件
利用systemctl命令查看网卡状态
systemctl status network
systemctl stop network 关闭
systemctl start network 启动
systemctl restart network 重启
在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利。
在Linux 中分别有读、写、执行权限:
| 权限针对文件 | 权限针对目录 | |
|---|---|---|
| 读r | 表示可以查看文件内容;cat | 表示可以(ls)查看目录中存在的文件名称 |
| 写w | 表示可以更改文件的内容;vim 修改,保存退出 | 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir) |
| 执行x | 表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) => 绿色 | 表示是否可以进入目录中(cd) |
注:一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合
可读权限 read => r(简写),可写权限 write => w(简写),可执行权限 excute => x(简写)
Linux 系统一般将文件权限分为3 类:
**read(读)**r
**write(写)**w
**execute(执行)**x
谁对文件有读,写,执行的权限呢? 答:针对以下UGO三大类用户
user(属主)U
文件创建者 拥有者 表示一个账户 对这个文件的权限
group(属组) G
文件所属的用户组 某个组对这个文件有的权限
other(其他用户) O
除了上面之外的其他用户 对这个文件有的权限
UGO A all
root用户(超级管理员)默认拥有所有权限
ls 查看文件属性
ls -l 或者 ll 使用ll命令查看文件权限
Linux一共有7种文件类型,分别如下: -:普通文件 d:目录文件 l: 软链接(类似Windows的快捷方式)
(下面四种是特殊文件)
b:block,块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫(上网猫)等串口设备)
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
基本语法:ch = change mod简单理解权限
ch只是增加或减少文件的权限 不能改变所有者 只能改变所有者现有的权限
要给文件或目录设置权限 操作者要么是root要么是文件或目录的所有者
# chmod [选项] 权限设置 文件或目录的名称选项说明:-R :递归设置,针对文件夹(目录)
设置权限的时候,重点看三方面
第一个:确认要给哪个身份设置权限,u、g、o、ugo(a)
第二个:确认是添加权限(+)、删除权限(-)还是赋予权限(=)
第三个:确认给这个用户针对这个文件或文件夹设置什么样的权限,r、w、x
案例:给文件的拥有者,增加一个可执行权限
chmod u+
案例:把文件的拥有者的可执行权限去除
chmod
案例:为中的所属组内用户赋予rw权限
chmod g=
案例:给shop目录及其内部的文件统一添加w可写权限
chmod -R ugo+w shop
或者
chomd -R a+w shop
案例:给shop目录设置权限,要求拥有者rwx,组内用户r-x,其他用户r-x
chmod -R u=rwx,g=r-x,o=r-x shop
同时设置多个身份权限的时候 每个身份权限用英文逗号隔开
chmod g+x,o+x
在设置权限的时候如果有两个部分权限一样 我们可以:
chmod u=rwx,g=rwx
等价于
chmod ug=rwx
经常会在网上看到类似于chmod 这样的命令,这种形式称之为数字形式权限
文件权限与数字的对应关系,我们会发现没有7这个数字
| 权限 | 对应数字 | 意义 |
|---|---|---|
| r | 4 | 可读 |
| w | 2 | 可写 |
| x | 1 | 可执行 |
| - | 0 | 没有权限 |
在chmod +数字中 :
第一个数字,代表文件拥有者权限
第二个数字,代表文件所属组内用户权限
第三个数字,代表其他用户权限
rwx = 4 + 2 + 1 = 7
rw = 4 + 2 = 6
rx = 4 + 1 = 5
案例:给设置权限,文件的拥有者rwx,组内用户rw,其他用户r
rwx = 7rw = 6r = 4chmod
案例:给shop文件夹设置777权限
chmod -R 777 shop
在设置权限时候,要确保权限的合理性
例如该命令chmod -R 731 shop
7 = 4 + 2 + 1 = rwx3 = 2 + 1 = wx1 = x
问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开之后才可以写,因此必须需要具备可读权限,因此此权限设置不合理
一般情况下,单独出现2、3的权限数字一般都是有问题的权限。
另外在生产环境中,一般不允许出现777权限
属主:所属的用户,文档所有者,这是一个账户,这是一个人
属组:所属的用户组,这是一个组
# ls -l或# ll
在Linux操作系统中,每个文件都是由Linux系统用户创建的
在Linux操作系统中,每个用户都具有一个用户名称以及一个主组的概念
chown命令来自英文词组“change owner”的缩写,其功能是用于改变文件或目录的用户和用户组信息
语法格式:chown [参数] 所属主:所属组 文件名
用法1:将文件的属主修改为其他用户
chown 将文件1.txt属主 修改为 zhangsan
用法2:同时修改文件的属主 属组
chown zhangsan:
chgrp命令来自英文词组”change group“的缩写,其功能是用于更改文件所属用户组。如仅需要修改文件所属用户组身份信息,则可以使用chgrp命令更快地完成
语法格式:chgrp [参数] 目录名
用法1:更改目录及其下所有文件的所属用户组为新的指定身份信息 chgrp -R Hrdir
用法2:修改文件的属组 chgrp
一般来说 chown和chgrp命令,只有root用户才可以使用,普通用户没有权限修改别人的文件所有者,也没有权限将自己文件的所有者修改为别人。
设置位S的作用:
为了让一般使用者临时具有该文件所属主/组的执行权限。
例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?
whereis命令,主要功能就是查询某个命令所在的路径,基本语法 => whereis passwd
it普通账号 => 执行/usr/bin/passwd => 修改/etc/shadow文件(存放用户的密码)
/etc/shadow文件比较特殊,其权限为— — —(000),除root外,其他人都没有权限
通过chmod命令修改s权限
chmod u-s/u+s /usr/bin/passwd
0755 最前面的0表示不使用任何特殊权限 用数字来代表特殊权限 可以使用 4表示s位
普通用户测试
去除S位权限
chmod u-s /usr/bin/passwd 或者chmod 0755 /usr/bin/passwd
添加S位权限
chmod u+s /usr/bin/passwd或者chmod 4755 /usr/bin/passwd
chmod -R o+t 文件夹的名称
或
chmod -R 1777 文件夹的名称
主要功能:只允许文件的创建者和root用户删除文件(防止误删除权限位)
案例:/tmp文件夹,拥有最高权限777,比如it创建了一个文件在此目录,user用户可以对其进行删除操作,这种显然不太合适
7 = r + w + x = 可读、可写、可执行
移除粘滞位
# chmod -R o-t /tmp或# chmod -R 0777 /tmp
添加粘滞位
# chmod -R o+t /tmp或# chmod -R 1777 /tmp
ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。
扩展:ACL权限可以针对某个用户,也可以针对某个组。ACL优势就是让权限控制更加的精准。
获取某个文件的ACL权限
getfacl 文件或目录名称
给某个文件设置ACL权限
setfacl 给文件针对某个用户 设置acl权限
语法格式:setfacl [参数] 文件或目录名
-m 修改acl策略
-x 去掉某个用户或者某个组的权限
-b 删除所有acl策略
-R 递归 通常用于目录中
mask 定义除other以及所有者外最大的权限
给单个用户单独增加权限 setfacl -m u:user:rwx file
给单个组单独增加权限 setfacl -m g:groupname:rwx file
去掉某个用户的权限:setfacl -x u:user file
去掉某个组的权限:setfacl -x g:groupname file
删除所有acl策略:setfacl -b file
umask命令来自英文词组“user file-creation mode mask”的缩写,其功能是用于管理权限掩码。umask中文常被译为文件掩码,权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可获得建立文件时预设的权限
例如当前Linux系统默认对于普通文件的存取权限为666,若将umask设定为022,则最终建立文件时权限为644。
语法格式:umask [参数] [权限掩码]
文件 666
目录 777
root umask值
| 目录 | 文件 | |
|---|---|---|
| 最大默认权限 | 777 rwxrwxrwx | 666 rw-rw-rw- |
| umask | 022 ----w–w- | 022 ----w–w- |
| 初始权限 | 755 rwxr-xr-x | 644 rw-r–r– |
普通用户umask值
| 目录 | 文件 | |
|---|---|---|
| 最大默认权限 | 777 rwxrwxrwx | 666 rw-rw-rw- |
| umask | 002 -------w- | 002 -------w- |
| 初始权限 | 775 rwxrwxr-x | 664 rw-rw-r– |
当umask 011 创建文件默认权限应该是 655 实际运行时会变成666
666 —> rw-rw-rw-
011 —> -----x–x
相减得
666 —> rw-rw-rw-
这个特殊情况只出现于文件
修改umask值
临时修改:umask umask值 umask 044
永久修改:
本文发布于:2024-03-14 14:03:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1710823598149706.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |