linux--档案权限与目录配置
下面是最近学习档案权限与目录配置的一些知识点总结
***博客园-邦邦酱好***
Linux最优秀的地方之一,就在于他的多人多任务环境。而为了让各个使用者具有较保密的档案数据,因此档案的权限管理就变的很重要了。Linux一般将档案可存取的身份分为三个类别,分别是owner/group/others,且三种身份各有read/write/execute等权限
1.身份类别
(1)档案拥有者User
(2)群组概念Group
(3)其他人Others
(4)root
对应记录数据的档案:
(1)各种身份的相关信息:/etc/passwd
(2)个人的密码:/etc/shadow
(3)组名:/etc/group
2.Linux文件属性
ls -al
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
[档案类型权限][连接数][User][Group][档案容量bytes][档案最后修改时间][档案名]
(1)档案类型权限
总共10个字符,
第一个字符代表这个档案是目录[d],档案[-],连结档link file[l],接口设备如可随机存取装置[b],串行端口设备如键盘鼠标[c]。
接下来的字符以三个为一组,且均为[rwx]三个参数的组合,它们的位置不会改变,如果没有该权限,就会写为[-]
三组权限分别为:User,Group,Others
3.如何改变文件属性与权限
(1)chgrp:改变档案所属群组
(2)chown:改变档案拥有者
(3)chmod:改变档案的权限,SUID,SGID,SBIT等特性
4.改变所属群组chgrp
chgrp [-R] groupname filename
-R:进行递归的持续变更,即目录下的所有档案,目录都更新为属于这个新群组
chgrp users install.log #users这个群组必须存在于/etc/group记录的群组里
5.改变档案拥有者chown
chown [-R] ownername[:groupname] filename
-R:进行递归的持续变更,即目录下的所有档案,目录都更新为属于这个新拥有者
chown bin install.log #bin这个拥有者必须存在于/etc/passwd记录的拥有者里
#应用:cp 源档案 目标档案后,新的使用者可能无法使用copy后的档案,这时就需要赋予新档案一个新的拥有者和新的群组了。
6.改变权限chmod
(1)数字类型改变档案权限
各权限的分数如下:r:4 w:2 x:1
每种身份各自的权限都是以上3个相加得到。如7=4+2+1,5=4+0+1(不可能是5=2+2+1哦,因为第一个肯定是r,数值要不是4要不是0,不能是2)
chmod [-R] xyz 档案或目录
chmod 770 .bashrc
(2)符号类型改变档案权限
chmod ugoa +-= rwx 档案或目录 #a代表all即全部的身份
chmod u=rwx,go=rx .bashrc #u=rwx,go=rx是连在一起的,中间没有任何空格符
7.权限的意义
(1)对档案
r:可读取此档案的实际内容
w:可编辑,新增或者修改此档案的内容(但不含删除该档案)
x:该档案具有可以被系统执行的权限(Windows底下一个档案是否具有执行的能力是藉由【扩展名】来判断的,例如:.exe, .bat, .com等等,但是在Linux底下,我们的档案是否能被执行,则是藉由是否具有【x】这个权限来决定的)
(2)对目录
r:可读取目录结构列表,可查询该目录下的文件名数据,ls命令可显示它们
w:可新建目录与档案,可删除已存在的目录与档案,可更改他们的名字,可移动它们的位置
x:用户能进入该目录成为工作目录,cd命令可进入它,如果没有x权限,不能执行它下面的任何指令
对目录的w权限要谨慎给予!
案例:账户为dmtai的家目录为/home/dmtai,账户dmtai对这个目录有rwx的权限。此目录下有一个档案叫the_root.data,它的权限为:
-rwx------ 1 root root 4356 Sep 19 20:20 the_root.data
分析:档案对于账户dmtai来说属于others身份,所以这个档案,dmtai无法读取,无法编辑也无法执行。
但是dmtai对目录dmtai具有rwx的权限,也就是说dmtai账户可以删除这个档案!!
8.档案的种类
(1)正规档案,属性:-
纯文本档(ASCII),二进制文件(binary),数据格式文件(data)
(2)目录,属性:d
(3)连结档,属性:l
(4)设备与装置文件
1)区块设备档,属性:b(比如硬盘,软盘)
2)字符设备文件,属性:c(比如键盘,鼠标)
(5)资料接口文件,属性:s
(6)数据输送文件,属性:p
9.档案扩展名
(1)*.sh:脚本或批处理文件
(2)*Z,*.tat,*tar.gz,*.zip,*.tgz:经过打包的压缩文件
(3)*.html,*.php:网页相关档案
Linux系统上的文件名真的只是让你了解该档案可能的用途而已,真正的执行与否当然需要权限的规范才
行。
10.档案长度限制
在linux底下,使用预设的Ext2/Ext3文件系统时,针对档案的档名长度限制为:
(1)单一档案或目录的最大容许文件名为255个字符
(2)包含完整路径名称及目录(/)之完整档案名为4096个字符
11.linux文件名的限制
由于Linux在文字接口下的一些指令操作关系,一般来说,你在设定Linux底下的文件名时,最好可以避免一些特殊字符比较好,比如:*?><:&![]|\'"`(){}。因为它们在文字接口下是有特殊意义的。
同时文件名开头为小数点.时,代表这个档案为隐藏档。
而且由于指令下达当中,常常会使用到-option之类的选顷,所以你最好也避免将档案档名的开头以-或+来命名!
12.linux目录配置
1)配置依据:FHS(Filesystem Hierarchy Standard),重点规范每个特定目录下应该放置什么样的数据
FHS依据文件系统使用的频繁与否是否允许使用者随意更动,而将目录定义为四种交互作用的形态:
_____________|________可分享的____________|_______不可分享的_________
不变的 | /usr(软件放置处) | /etc(配置文件)
(static) | /opt(第三方协力软件) | /boot(开机与核心档)
可变的 | /var/mail(使用者邮件信箱) | /var/run(程序相关)
(variable) | /var/spool/news(新闻组) | /var/lock(程序相关)
#可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录;
#不可分享的:自己机器上面运作的装置档案或者是不程序有关的socket档案等,由与仅于自身机器有关,所以当然就不适合分享给其他主机了。
#不变的:有些数据是不会经常变动的,跟随着distribution而不变动。例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
#可变的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等
事实上,FHS针对目录树架构仅定义出三层目录下应该放置什么数据而已:
(1)/(root,根目录):与开机系统有关
(2)/usr(unix software resource):与软件安装/执行有关
(3)/var(variable):与系统运作过程有关
13.根目录下存放的次目录
(1)/bin:/bin放置的是单人维护模式下还能够被操作的指令,它们可以被root和一般账户所使用。
(2)/boot:放置开机会使用到的档案
(3)/dev:在Linux系统上,任何装置与接口设备都是以档案的型态存在于这个目录当中的
(4)/etc:系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有root有权力修改。
如:/etx/init.d(所有服务的预设启动脚本都在这里),/etc/xinet.d(super daemon管理的各项服务的配置文件目录)
(5)/home:这是系统默认的用户家目录(home directory)。在你新增一个一般使用者账号时,默认的用户家目录都会规范到这里来。比较重要的是,家目录有两种代号喔:
~:代表目前这个用户的家目录,而~dmtsai:则代表dmtsai的家目录!
(6)/lib:放置开机时用到的函式库,以及在/bin或/sbin下的指令会呼叫的函式库。
(7)/sbin:放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令
(8)/srv:是一些网络服务启动后,这些服务所需要取用的数据目录
(9)/tmp:让一般用户或者是正在执行的程序暂时放置档案的地方
14./usr的意义及内容
usr=Unix Software Resource
(1)/usr/bin:绝大部分的用户可使用指令都在这里
(2)/usr/lib:包含各应用软件的函式库,目标档案,以及不被一般使用者惯用的执行档或脚本
(3)/usr/local:系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录
(4)/bin/sbin:非系统正常运作所需要的系统指令
(5)/bin/share:放置共享文件的地方
15./var的意义及内容
如果/usr是安装时会占用较大硬盘容量的目录,那举/var就是在系统运作后才会渐渐占用硬盘容量的目录。因为/var目录主要针对常态性变动的档案,包括快取(cache)、登录档(log file)以及某些软件运作所产生的档案,包括程序档案(lock file, run file),或者例如MySQL数据库的档案等等
16.绝对路径与相对路径
(1)绝对路径:由根目录(/)开始写起的文件名或目录名称,如:/home/dmtai/.bashrc
(2)相对路径:相对于目前路径的文件名写法。如:./home/dmtai或../../home/dmtai
注意:
.:表示当前的目录,..:表示上一层目录。所以../var/log代表返回上一层目录,再移动到var目录下。
17.查看linux distribution使用哪个linux标准,使用哪个核心
-->uname -r #查看实际的核心版本
-->lsb_release -a #查看linux标准(Linux Standard Base)