目录与路径
当你在执行命令的时候,跟PATH这个变量有关.
目录的相关操作
比较特殊的目录
. 代表此层目录
.. 代表上层目录
- 代表前一个工作目录
~ 代表当前用户的家目录
~d 代表d的家目录
mkdir
(建立新目录)
➜ ~ mkdir -mp 711 目录名称
# 选项
-m:设置文件权限,直接设置,不使用默认权限
# 对于rmdir的-p参数用于连续删除目录
文件目录管理
ls
(文件与目录查看)
➜ ~ ls [optins] 文件或目录
# 选项
-d:列出目录本身,而不是列出目录里的内容
-S:以文件容量大小排序
-h:将文件的容量以可读的方式列出来
-t:依照时间排序
-r:将排序结果反向输出
cp
(复制文件或目录)
普通的cp复制到目的目录会改变所属组和所有者(包括时间之类的)
➜ ~ cp [options] (source) (destination) #也可以多个源一起复制
# 选项
-d:复制链接文件的本身,并不指他链接的文件
-r:递归复制
-a:相当于-dr + --preserve=all
-p:连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性
--preserve=all:就是-p参数加上selinux安全属性,扩展属性和符号链接等也会复制
-s:复制成符号链接文件,他只能复制文件
-u:目的比源旧才更新目的,目的不存在也会更新
mv
(移动文件与目录,或重命名)
➜ ~ mv [options] source destination #也可以像cp一样复制多个目录
# 选项
-f:强制覆盖
-i:如果目标文件已存在时,就会询问是否覆盖
文件内容查看
nl #查看行号
less #搭配|可以翻上下行,例如:cat /etc/passwd | less
tac #cat反着看
文件与目录默认权限与隐藏权限
文件默认权限:umask
umask
就是一个新建立目录或文件的默认权限.
➜ ~ umask #每一个数字都是每种身份减去的权限
002 #在有些linux发行版中是4位,第一位是特殊权限.
➜ ~ umask -S #以符号类型显示权限
u=rwx,g=rwx,o=rx
# 这里不是指umask的默认权限,而是除去umask,文件目录本身的权限
对于文件的默认权限:(-rw-rw-rw)
对于目录的默认权限:(drwxrwxrwx)
➜ ~ umask 002 #想要修改直接赋值就可以了.
# 对于root的umask默认权限是022,普通用户是002
如果想永久修改umask的权限,就看你是想全局配置,还是用户配置.如果是全局的话可以去/etc/profile这个目录里边增加umask 002(对于ubuntu来说就只有3位数字,但是rocky是4位,第一位是特殊权限).如果是用户配置就要去用户的家目录里边找到.bashrc这个文件.
文件隐藏属性
这些隐藏属性对于系统的安全有很大帮助.对于chattr命令只能在ext2、ext3、ext4这些传统linux文件系统上完全生效,其他的文件系统可能无法全部支持这个命令.
chattr
(配置文件隐藏属性)
➜ ~ chattr [+-=] [options] 文件或目录
# 选项
# +-=跟chmod一样
a:只能追加文件数据,不能删除和修改文件数据.只有root用户可以设置
i:可以让一个文件不能被删除、改名、设置链接也无法写入或新增数据.只有root用户可以设置
A:不会在更新文件或目录的访问时间
c:会自动将文件压缩,访问自动解压缩.在存储的时候,将会先进行压缩在存储
s:如果文件被删除,无法恢复
u:文件被删除还可以恢复
S:同步写入磁盘,一般来说会先写入缓冲区,在写入磁盘.这个是直接写入磁盘
lsattr
(显示文件隐藏属性)
➜ ~ lsattr [options] 文件或目录
# 选项
-a:将隐藏属性也显示出来
-d:如果查看的是目录,只会列出目录本身的权限
-R:递归查询
文件特殊权限:SUID、SGID、SBIT
SUID
(Set User ID)
当s这个标志出现在文件拥有者的x权限上时,例如/usr/bin/passwd这个文件的权限:[-rwsr-xr-x].基本上SUID有这样的限制与功能:
- SUID权限对于可执行程序有效
- 执行者对于该程序有可执行权限(x)
- 本权限仅在执行该程序的过程中有效
- 执行者降具有该程序拥有者的权限
- 不能应用在目录上
# 只需要记住有SUID的可执行程序,在执行程序的过程中可以短暂拥有所有者的执行权限
➜ ~ chmod u+s filename
➜ ~ chmod u-s filename
SGID
(Set Group ID)
在我看来,这两者的主要区别确实在于一个影响用户权限(SUID),一个影响组权限(SGID).
➜ ~ chmod g+s directory_or_file #SGID可以应用在目录上
➜ ~ chmod g-s directory_or_file
SBIT
(Sticky Bit)
这个SBIT目前来说,只针对目录有效.SBIT对于目录的作用是:
- 当用户对于此目录有写入权限(w、x)
- 当用户在这个目录下建立文件或目录时,仅有自己与root才有权利删除该文件
# 虽说不能删除目录或文件,但可以修改、追加、创建
➜ ~ chmod +t directory
➜ ~ chmod -t directory
对于他们对应的数字(用数字修改权限)
- 4为 SUID
- 2为 SGID
- 1为 SBIT
➜ ~ chmod 4775 filename #4就是特殊权限位