linux——(2)文件权限与目录配置
概念一:用户与用户组
对linux下的每一个文件或者目录来说,访问者都有三种身份:所有者,用户组,其他人。这三种人对于同一个文件的权限是可以分开设定的。
概念二:linux文件权限
文件和目录都有3种权限rwx(读、写、执行),因为概念一的存在,所以每个文件或者目录都有9个权限需要设置。
对于文件:r表示能打开,w表示能修改文件内容(并不包括删除文件),x表示能执行(能执行并不是能执行成功,linux的文件系统不是通过后缀来区别文件类型,你也可以在linux下执行txt文件,只是不能成功罢了)。
对于目录:r表示能读取目录下的文件或者目录信息(即可以对目录使用ls),w表示能删除目录下的文件或者目录,x表示能将此目录设置为工作目录(即可以对目录使用cd)。
相关命令:
chgrg [-Rv] 用户组 文件或目录 #改变文件所属用户组。
-R #递归修改子目录下所有的文件和目录。
-v #显示指令执行过程。
chown [-Rv] 账号名称:组名 文件或者目录 #改变文件所有者。
-R #递归修改子目录下所有的文件和目录。
-v #显示指令执行过程。
chmod[-Rv] xyz 文件或目录 #改变文件的权限。有其他灵活表示方法。
-R #递归修改子目录下所有的文件和目录。
-v #显示指令执行过程。
概念三:linux文件种类和拓展名
文件种类:使用 ls -l 列出来的文件的最开头有十个字符,后9个表示权限相关,第一个表示文件类型
- regular file :包括纯文本文件、二进制文件和数据格式文件等。
d directory :目录。
l link :连接文件。
b block device:块设备文件,如硬盘、软盘等。
c character device:字符设备文件,如鼠标、键盘等。
s sockets :数据接口文件,用于网络上的数据连接。
p pipe :管道。
linux文件拓展名:linux没有拓展名的概念,这个概念是window里的,window通过文件拓展名来识别不同的文件,但是linux下并没有这个机制,一个文件是不是可执行文件,是通过x权限来识别的,但是为了帮助用户识别什么文件应该用什么软件处理,linux下的文件一般以有写上拓展名,但是这个是给用户看的并不是给操作系统看的。
概念四:绝对路径和相对路径
绝对路径:由根目录(/)开始写起的路径。
相对路径:由当前路径开始写的路径。
特殊路径表示方法:
. :表示当前路径。
.. :表示上一级路径。
~ :表示此用户的主文件夹,如果cd命令后面什么都不写也是回到此用户的主文件夹的意思。
~account :表示account用户的主文件夹。
- :回到上一个工作目录。
相关命令:
cd [路径] #切换工作目录。
pwd [-P] #打印出当前工作目录的完整路径。
-P #显示真实路径而不是连接路径(当遇到link文件时这个参数才有用)。
mkdir [-mp] 目录 #新建目录。
-m #新目录时设置权限。
-p #递归建立目录。
rmdir [-p] 目录 #删除空目录
-p #递归删除空目录。
概念五:linux目录配置标准FHS(filesystem hierarchy standard)
官方网站地址为:http://www.pathname.com/fhs/
FHS定义了三层目录下面应该放置什么数据,用来规范不同distributions的团队来开发自己的产品,这样linux的用户就可以很方便的在不同linux版本中迁移。下面列出部分重要内容。
/目录:所有的目录都衍生自根目录,此目录与开机、还原、系统修复相关。此目录越小越好。另外/etc /bin /lib /dev /sbin 这五个目录必须和根目录在同一个分区。
根目录下最好有如下目录:
/bin :执行文件目录,且都是在单用户维护模式下还能被使用的命令。
/boot:放置开机会用到的文件。
/dev:任何设备与接口设备都在这个目录下。
/etc:系统主要的配置文件,如账户密码文件等。
/home:系统默认的用户主文件夹放置目录。
/lib:放置开机时会用到的库函数和/bin与/sbin中的命令会用到的库函数。
/media:放置可删除设备,如软盘,光盘一般都挂载在这个地方。
/mnt:用于暂时挂载某些设备。
/opt:第三方软件放置目录。
/root:root用户的主文件夹。
/sbin:一般放置开机、修复、还原系统所需要的命令。
/srv:一些服务所需要的数据文件目录。
/tmp:暂时的文件存放目录,谁都可以进入,不建议放置重要文件,FHS建议每次开机自动清空这个目录。
/lost+found:ext2/ext3特有的目录,文件系统错误的时候会将一些丢失的片段放置的这个目录下。
/proc:一个虚拟文件系统,所有的文件都放在内存里。
/sys:虚拟文件系统,记录内涵相关信息。
/usr目录放置可分享与不可变动的内容它是 UNIX software resource的缩写,所有系统默认的软件都会放置在这个目录下面。
/usr/X11R6/:x window系统的相关数据。
/usr/bin/:绝大多数用户可用的命令的放置目录。
/usr/lib/:函数库。
/usr/local/:管理员自己安装的软件一般放置在这个目录比较好,里面也有bin、etc、include、lib
/usr/sbin/:非必要的系统命令。
/var目录支队常态性变动的文件,包括缓存(cache)、登陆文件(logfile)以及某些软件运行所产生的文件。
/var/cache/:缓存。
/var/lib/:程序本身执行的过程中,需要使用到的数据文件放置的目录。
/var/lock/:设备锁相关文件。
/var/mail/:放置个人电子邮件。
/var/spool/:放置一些队列数据,即等待处理的数据,再处理完后会被删除。
系统信息查看指令
uname -r #查看内核版本。lsb_release -a
参考资料:《鸟哥的Linux私房菜》