“|”,竖线
作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)
xargs命令扩展
xargs命令就相当于对管道命令进行了一个扩展,让所有命令都支持管道
案例:
搜索/etc目录下的所有".conf"结尾的文件信息,然后以详细列表形式显示
find /etc -name "*.conf" | ls -l
find /etc -name "*.conf" | xargs ls -l
文件或文件夹权限设置
第一个数字7,代表文件拥有者权限
第二个数字7,代表文件所属组内用户权限
第三个数字7,代表其他用户权限
rwx = 4 + 2 + 1 = 7
rw = 4 + 2 = 6
rx = 4 + 1 = 5
练习:
使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权限,请使用数字权限的形式设置
rwx=7,rx=4+1=5,0
# chmod -R 750 /root/shop
文件/root/readme.txt 的权限,权限要求为:
属主拥有**全部**权限,属组要求可以**读写**,其他用户**只读**,要求使用数字形式;
rwx=7,rw=4+2=6,r=4
# chmod 764 /root/readme.txt
请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;
属主拥有**全部**权限,属组要求可以**读写**,其他用户**只读**,要求使用数字形式;
rwx=7,rw=4+2=6,r=4
# chmod 764 /root/readme.txt
请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;
rw=6,0,0
# chmod 600 /root/email.doc
特殊权限说明
在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)。
/shell/readme.txt
我们想删除readme.txt文件,必须要对shell目录具有可写权限,否则文件无法删除
文件拥有者:属主
文件所属组:属组
属主:所属的用户,文档所有者,这是一个账户
属组:所属的用户组,这是一个组
chown同时修改属主与属组
# chown [选项] 文件拥有者名称:文件所属组名称 文件名称
或
# chown [选项] 文件拥有者名称.文件所属组名称 文件名称
选项说明:
-R : 代表递归修改,主要针对文件夹
特殊权限
设置位S(针对二进制文件)
作用:为了让一般使用者临时具有该文件所属主/组的执行权限。
主要针对二进制文件(命令)
/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码
whereis命令,主要功能就是查询某个命令所在的路径,基本语法 => whereis passwd
普通账号 => 执行/usr/bin/passwd => 修改/etc/shadow文件(存放用户的密码)
/etc/shadow文件比较特殊,其权限为— — —(000),除root外,其他人都没有权限
# chmod u+s /usr/bin/passwd
或者
# chmod 4755 /usr/bin/passwd
沾滞位T(针对文件夹)
# chmod -R o+t 文件夹的名称
或
# chmod -R 1777 文件夹的名称
主要功能:只允许文件的创建者和root用户删除文件(防止误删除权限位)
/tmp文件夹,拥有最高权限777,比如普通用户创建了一个文件在此目录,user用户可以对其进行删除操作,这种显然不太合适。
7 = r + w + x = 可读、可写、可执行
案例:使用ls -l命令查看/tmp目录权限
# ls -ld /tmp
或
# ll -d /tmp
移除粘滞位
# chmod -R o+t /tmp
或
# chmod -R 1777 /tmp
ACL访问控制
ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。
扩展:ACL权限可以针对某个用户,也可以针对某个组。ACL优势就是让权限控制更加的精准。
获取某个文件的ACL权限
getfacl 文件或目录名称
给某个文件设置ACL权限
# setfacl [选项] 文件或目录名称
选项说明:
-m : 修改acl策略
-x : 去掉某个用户或者某个组的权限
-b : 删除所有的acl策略
-R :递归,通常用在文件夹
针对readme.txt文件给linuxuser设置一个权限=>可读
setfacl -m u:linuxuser:r readme.txt => 针对某个用户开通ACL权限
针对shop文件夹给itheima组设置一个权限=>可读可写权限rw
setfacl -R -m g:itheima:rw shop => 针对某个用户组开通ACL权限
把linuxuser用户权限从readme.txt中移除掉
setfacl -x u:linuxuser readme.txt
把itheima用户组权限从shop中移除掉
setfacl -x -R g:itheima shop
把readme.txt文件中的所有ACL权限全部移除
setfacl -b readme.txt