概述
参考:《linux鸟哥私房菜》
Linux一般将档案可存取的身份分为三个类别,分别是 owner/group/others,三种身份各有
read/write/execute 等权限。
第一个字符代表这个档案的种类。
[ d ]则是目录。就是文件夹
[ - ]则是档案。普通创建的文件;
[ l ]则表示为连结档(link file);
[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
权限有9位标识,前三个是拥有者权限,中间三个是组权限,最后三个是其它权限。每三位看作二进制的三位,三位最多表示0-7八个数字。八个数字对应不同的权限组合。第一位表示数字大小为4,读权限。第二位表示数字大小为2,写权限。第三位表示数字1,执行权限。文件分成3个拥有者权限的目的,就如同个人,家庭和其他人的关系。家庭可以共享一些资源,个人也会有一些私人空间。rwx权限对于于对文件具有的操作类型。文件夹是没有执行的含义的,x对于文件夹来说是能否进入的权限。
连接数表示有多少档名连结到此节点(i-node):
每个档案都会将他的权限属性记录到文件系统的 i-node中,我们使用的目录树却是使用文件名来记录,因此每个档名就会连结到一个i-node,这个属怅记录有多少不同的档名连结到相同的一个 i-node 号码。
常用的权限修改命令:
chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID,SBIT 等等的特怅
命令 用户名 文件名
chgrp user1 file1
chown user1 file1
我们还可以使用加:的方式,一次性修改它的属主和组。
chown user1:user1 file
chmod按照数字修改权限
chmod 777 file----rwxrwxrwx
档案预设权限:umask--默认文件权限
我们可以输入umask,显示的是0022.先不管第一位。
对于文档而言,使用666-后三位得到文档的权限
对于目录而言,使用777-后三位得到文件的权限
如果umask改成了003的话,文档的是666-002=664,注意文档不考虑1(x)
目录依然是777-003=774的权限。
档案特殊权限: SUID,SGID, SBIT
ls -l /usr/bin/passwd
ls -l /etc/shadow
passwd的权限-rwsr-xr-x 1 root root
shadow的权限----------. 1 root root
我们可以修改自己的密码!但是如果你用user1登陆的话,想修改密码,写入文件shadow中去,没有w权限是办不到的。但是user1对passwd指令有x的权限,拥有执行权限的用户,就上升到了拥有者root的权限,这就是s的作用。对二迚制程序(SUID 仅可用在binary program 上),执行者将具有该程序拥有者 (owner) 的权限。
SGID与SUID类似,只是SGID是获取属组的权限,而且对目录文档都有效。
SBIT 目前只对目录有效,对文档是无效的。
如果others对目录有w的权限,就可以删除掉目录的东西,加上sbit后,则只可以删除自己建立的文档和目录。
SUID 4
SGID 2
SBIT 1
在权限数字前设置,最大是7最小是0
例如,利用chmod4700 file来设置权限。但是如果文档本身没有执行权限,则s会变成S,代表空。
ACL
有时候我们会有这样的需求。对其他用户,让某一个用户具有特殊的权限,这种授权,仅仅使用前面的是不可能做到的。因此,我们引入了acl
acl的命令格式为-------设置------setacl -m u:使用者:权限 file
-------查看------getacl file
-x 删除acl
-m设定档案acl
-b移除所有
-R递归设定acl
最后
以上就是成就大叔为你收集整理的linux文件权限学习小结的全部内容,希望文章能够帮你解决linux文件权限学习小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复