LINUX系统文件权限属性详解

来源:互联网 发布:淘宝卖家帐号在那登陆 编辑:程序博客网 时间:2024/05/17 20:32

1、创建一个组admin
groupadd admin
2、创建一个用户user1,附加组属于admin <---g = user1
useradd -G admin user1
3、创建用户user2,默认组就是admin,家目录 /home/myuser
useradd -g admin -d /home/myuser user2
4、创建一个用户user3,不允许登录系统
useradd -s /sbin/nologin user3

====================================================

Linux,一切都是基于文件
目录也是一个特殊文件


判断过程:首先判断用户对于这个文件角色,然后再根据角色进行授权。只要角色匹配了就不会继续匹配。如果有多个角色匹配,就把所有角色的权限去并集。

r -- read 读
针对文件:可以读取文件的内容
针对目录:可以读取目录里的内容,换句话,可以对目录进行列表

w -- write 写
针对文件:可以修改文件的内容,并不代表可以删除文件。
针对目录:可以在该目录下创建文件,创建子目录,或者删除文件,删除目录。
总结:决定是否能够删除一个文件,决定于该文件所在父目录是否有写的权限

x -- execute 执行
针对文件:可以执行该文件(文件一般是命令文件,脚本才可以执行)
针对目录:代表可以进入该目录


-rw-r--r-- 1 root root 307 08-28 14:37 01.txt
     ^     ^
    拥有者 拥有组

rw-,r--,r--
拥有者的权限u,拥有组的权限g,其他人的权限o

chmod 
chmod u=rw,g-x,o+w all.txt 
chown
chgrp

001 1
010 2
011 3
100 4
101 5
110 6
111 7


rwx,rw-,r--
111,110,100
7  ,6  ,4   ==> chmod 764 xx.txt

755  rwx,r-x,r-x
664  rw-,rw-,r--
644  rw-,r--,r--


创建目录/common/adm  ,所有者是root,所有组admin
任何人都可以在adm目录下创建文件
使用user1在adm下创建一个文件,让自己有所有权限,文件拥有组是admin,让拥有组可以修改该文件,读取该文件,其他人没有任何权限
mkdir -p /common/adm
chgrp admin /common/adm
chmod 777 /common/adm

user1> touch userfile  <--- user1:user1
root> chown user1:admin userfile
user1> chmod 760 userfile



拷贝/etc/fstab 到/tmp/test
任何人对该文件都没有执行权限
user1对该文件有读写权限


/tmp/test/fstab  <---- root:root
chmod -x /tmp/test/fstab  <--- ls -l /tmp/test/fstab
chown root:user1 /tmp/test/fstab
chmod g=rw /tmp/test/fstab

===============================================================

特权位,粘贴
系统每运行一个进程,进程都必须有身份,一般来说,谁运行该程序,进程就是属于谁的身份。



特权位touch命令 ---- 属于root ----- tom使用它创建文件 , 这件事情当中,touch是使用root的身份去执行。


特权位针对命令程序设定: u+s  , g+s
特权位针对目录设定: g+s  --> 作用:让在该目录下创建的文件或者子目录的拥有组身份自动继承该目录拥有组身份


粘贴位stick bit ,只能针对目录设定,作用:在该目录下,只能是目录的拥有者可以删除目录里内容,还有只有文件拥有者可以删除,没办法删除不属于自己的文件
chmod o+t xxxdir
一般用在文件共享服务上

chmod u+s xxx
chmod g+s  xxx

chmod o+t  xxx


特殊文件属性
chattr,lsattr
# chattr  +i fstab
+a  ,  -a ,- i


acl
setfacl , getfacl


-rw-r--r-- 1 root root 16 08-29 09:45 fstab


user::rwx  ,  group::rw, other::r
user:mary:rw  ,  user:tom:r-x


# setfacl  -m user::rwx,group::rw,other::r,user:mary:rw,user:tom:r-x ./fstab
# setfacl  -b ./fstab <--取消原有的acl设定


在/common/adm目录下创建一个文件,文件属性:  root:tom
文件权限要求:拥有者具有所有权限,拥有组具有r-x,其他人具有r
mary具有rwx,user1具有r-x
touch  /commom/adm/testfile
chown root:tom /commom/adm/testfile
chmod 754 /commom/adm/testfile
setfacl -m user:mary:rwx,user:user1:r-x /commom/adm/testfile


总结: useradd -s -d -g -G
usermod
groupadd ,groupdel 
gpasswd -a
suid,sgid,stick bit <-- chmod u+s  g+s  o+t 
chattr,lsattr 
acl