常用命令:
cd:改变当前目录
pwd:显式当前目录
mkdir:建立目录
rmdir:删除空目录
ls:显式目录下文件
cp:复制文件
mv:移动文件(可以类似做重命名)
rm:删除目录或文件
查看文件:
cat,tac,head,tail,vim(主要用于编辑文件)
od:用于二进制文件的查看
当我们新建文件或者目录时,一般会赋予其对应的权限,默认情况下文件的权限是-rw-rw-rw-,目录则是drwxrwxrwx,这是最初的权限,新建之后,会根据我们的赋值或者默认值进行调整
1.mkdir -m Priority priority是新建目录的权限,可以直接赋值
2.如果没有的话,则将默认权限减去umask即可,umask指的是屏蔽掉的权限,比如umask是0022,那么我们的u-0,g-2,o-2,最后文件权限为-rw-r--r--,目录则为-rwx-r-xr-x
除了上述的权限之外,Linux下还有特殊的文件属性,而这些属性是通过lsattr/chattr来查看修改的..具体属性有下:
A:文件的atime(access time)不会改变
a:该文件只能添加内容(append)
c:自动压缩文件(compress)
D:对目录的任何修改,会马上写回到磁盘里(dirsync)
d:在备份时不备份该文件(dump)
E:压缩文件有误(error)
e:文件同磁盘有一一映射关系,使用extents(这个是???)
I:该目录被索引中(index)
h:文件过大(超过2T)使用文件系统的block而不是磁盘默认block(huge)
i:无法修改文件(immutable)
j:在写文件前须将内容写到日志里(journal)
s:文件删除时直接清空对应磁盘内容..一般文件删除时不清空磁盘内容,只是标记为可用(sync)
S;文件被修改时,直接写回到磁盘..一般文件修改时,会缓存在内存中,知道文件块被使用(sync)
T:该目录设定为当前目录下的最顶层目录(top)
t:文件尾端不会留有块空隙(tail)
u:文件删除时,会将文件保存起来,以便恢复(undelete)
X:压缩文件的目录可以被访问(access)
Z:压缩文件被污染了..也就是压缩文件被破坏(dirty)
chattr和chmod类似.也是通过+-=来赋予文件/目录不同的属性..当然..这些属性比较诡异..使用前最好man一下来确认是否真的需要修改
特殊的权限提升
SUID其实是代表x(执行权限的),对于特定的二进制文件,如果我们对其有x权限,且该文件设置了对应的SUID(即x位变成了s),那么我们在运行时,就可以获得该二进制文件拥有者的权限
比如二进制文件a.out,权限为-rws-r--r-x,我们是O,我们可以执行a.out,在执行时,我们就拥有了其拥有者U的权限,即rwx,此时,我们就可以w了..这是为了在执行某些命令时提升执行者权限(否则有很多命令无法执行)
限制:二进制文件,我们本身拥有其x权限,仅执行时获得权限
SGID类似,只是在运行时我们获得的是该文件组G的权限
chmod就可以设置相应的SUID/SGID,其中4代表SUID,2代表SGID,如chmod 4744 XXX(最前面的4就是设置SUID),同样,也可以利用u+s/g+s来修改
SBIT相对于目录而言,指的是我们仅能操作该目录下自己建立的文件或目录,没有权限动其他的,即使我们有w权限
查询命令
推荐的是which,whereis,locate,这三个比较迅速
如果都查不到的话,还可以使用find命令,在某一目录下寻找.这个比较慢..因为它是直接搜索的..
find可以执行命令,格式如下
find path -option -print(打印)/-exec(直接执行)/-ok(询问执行) {} \;
还可以配合xargs使用
find path -option -print | xargs command