1.linux 目录结构
1) Linux系统的目录组成类拟一个倒置的树型结构,它以一个名为根(“/”)的目录开始向下延伸。
2) 它不同与其它操作系统。例如windows,在windows中,它有多少分区那么就有多少个根,而这些根之间是并列的,而在Linux中无论有多少个分区都有一个根。
3) 在Linux系统中对应的文件类型字符为“d”。
在Linux的每一个目录中都存在下面这两个特殊目录
“.”代表当前目录。
“..”代表上级目录
4) 目录是一种特殊的文件
目录上的读写执行权限与普通文件有所不同。
读:用户可以读取目录内的文件
写:单独使用没有作用。它与读和执行权限连用可以在目录内添加与删除任何文件。
执行:用户可以进入目录,调用目录内的资料
2.linux 常见的目录结构
/boot:存储核心、模块映像等启动用文件
/dev:存储设备文件
/bin:存储常用用户指令。
/etc:存储系统、服务的配置目录与文件
/home:存放个人主目录
/lib:存放库文件,诸如核心模块、驱动
/lost+found:存储fsck用的孤儿文件
/mnt:系统加载文件系统时用的常用挂载点
/opt:第三方工具使用的安装目录
/proc:虚拟文件系统,包含系统核心信息
/root:root用户的主目录
/sbin:存储系统管理用指令
/tmp:临时文件的暂存点
/usr:存放与用户直接相关的文件与目录
/var:存储在系统运行中可能会更改的数据
3.强制位和冒险位
3.1描述:
1) 在Linux系统中文件除了有读写执行权限外,ext4文件系统还支持强制位(setuid 、setgid)与冒险位(sticky)的特别权限。
2) 针对文件创建者可以添加强制位(setuid),文件属组也可以添加强制位(setgid),针对其它用户有可以添加冒险位(sticky)。
3) 强制位与冒险位添加在执行权限(x)的位置上。如果该位置上原已有执行权限,则强制位与冒险位以小写字母(s或t)的方式表示,否则,以大写字母(S或T)表示。
例:如果文件的权限为“rwxr—r-x”,那么如果设置了强制位与冒险位则新的权限为“rwsr-Sr-t”
3.2对创建者设置强制位。
1) 对创建者设置强制位setuid,一般针对的是一个系统中的指令。
2) 在默认情况下,用户执行一个指令,会以该用户的身份来运行。
3) 当对一个指令对应的可执行文件设置了(setuid),那么任何一个用户在执行这个文件的时候,都会以指令对应的可执行文件的创建者身份来执行这个文件。
语法:chmod u±s<文件名>
例:chmod u+s/bin/ls
3.3对组设置强制位
1)对组设置强制位setgid,一般针对的是一个目录。
2)在默认情况下,用户在某目录中创建的文件或子目录的属组是该用户的主属组。
3)如果对一个目录设置了属组的强制位,则任何用户在此目录中创建的文件或子目录都会继承此目录的属组(前提:用户有权限在目录中创建文件或子目录)。
语法:chmod g ±s <目录>
例:chmod g+s/dir
3.4对其他用户设置冒险位
1) 对其它用户设置冒险位sticky ,一般针对的是一个目录。
2) 在默认情况下,如果一个目录对用户有r、w和x权限,则这个用户可以在此目录中建立与删除任何文件。
3) 一旦在目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员才可以在目录中删除此文件。
3.5 通过数字来设置权限
1) 用户可以用chmod指令来为文件设置强制位与冒险位。
setuid:chmod u+s 文件名
setgid:chmod g+s 目录名
sticky:chmod o+t 目录名
2)强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前
4(setuid)
2(setgid)
1(sticky)
例:要为某文件设置为”rws r-x r-x”的权限则可以使用下面的指令:chmod 4755 <文件名>
4.umask掩码
1) 每个用户建立文件时,此文件都会有默认权限。
2)默认权限的值由环境中的umask值与文件与目录的基数来确定。
3)用户可以自主改动umask值,并在改动后马上生效。
4)一般用户的默认umask值为002,系统用户的默认umask值为022。
5)文件的基数:666;目录的基数:777