文件权限管理(2016.1.10第三周linux课程笔记)

权限管理:
 针对文件。
ls -l /root

# ls -l
total 104
-rw-------. 1 root root  1531 Nov  4 14:30 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 Nov  4 14:34 Desktop
drwxr-xr-x. 2 root root  4096 Nov  4 14:34 Documents
drwxr-xr-x. 2 root root  4096 Nov  4 14:34 Downloads
-rw-r--r--. 1 root root 51084 Nov  4 14:30 install.log
-rw-r--r--. 1 root root 10033 Nov  4 14:27 install.log.syslog

第1段:

1列:文件的类型
c:字符设备
-:普通文件
d:目录
b:设备文件
l:链接文件(类似windows快捷方式)
p:管道文件,一般是类unix操作系统中进程之间的通信
s:套接字文件,一般用户网络程序和本地进程之间的通讯

第2段:文件的权限
rw- | r-- |r--
属主(u)|属组(g)|其他人(o)

第2段:目录的子目录个数或者文件的硬链接个数

硬盘读取数据的最小单位(扇区)512字节——>操作系统读取数据的最小单位是“块”(一次性读取8个连续的扇区【512X8=4096字节=4kb】)

设备(硬盘)格式化成某种文件系统——>操作系统会将设备分成2个区域(data数据空间|inode)

硬链接:通过索引节点(inode)来链接的文件,两个互为硬链接的文件的inode号是一致的,并且一个文件发生改变另外的文件也会同样改变;删除一个硬链接不影响其他的硬链接文件。
注意:目录不能创建硬链接(linux操作系统不支持)

open文件——>系统根据文件的inode号——>根据inode号找到数据元数据信息——>读取相应的block

ln 源文件 目标文件
# ln file1 test1

[[email protected] Desktop]# ls -lid /etc/init.d/
654165 drwxr-xr-x. 2 root root 4096 Nov  5 11:06 /etc/init.d/
[[email protected] Desktop]# ls -lid /etc/rc.d/init.d/
654165 drwxr-xr-x. 2 root root 4096 Nov  5 11:06 /etc/rc.d/init.d/

ls -i 查看文件的inode号

软链接:两个互为软链接的文件的inode号是不一样的,当删除源文件的时候,软链接的文件失效。快捷方式

# ln -s 源文件 目标文件

第3段:文件的拥有者(属主)
第4段:文件的所属组(属组)
第5段:文件的大小
第6、7、8段:文件的修改时间
第9段:文件的名字

用户权限:
r-- ——>100(2进制)——>4(10进制)
-w- ——>010——>2
--x ——>001——>1
r(4):读
  文件:可以查看文件的内容
  目录:可以列出该目录下的文件列表
w(2):写
  文件:修改文件的内容
  目录:可以创建文件、修改文件属性信息、重命名等
x(1):执行
  文件:是否可以执行
  目录:是否可以切换到该目录

注意:目录来说r-x是同时存在的

修改文件的权限:
chmod   更改文件的权限
# chmod g-wx file
# chmod u-x,g=---,o+w file
# chmod a+x file

rw-r-xr-- ——> 654 file
# chmod 654 file

# chmod -R 755 dir1  给dir1目录及目录下的子目录及文件递归授权

chown  更改文件的属主和属组

# chown redhat dir1/
# chown .admin dir1/ -R
# chown :admin dir1/
# chown redhat.admin dir1/
# chown redhat:admin dir1/

# chgrp admin file  修改文件的属组

默认权限(遮罩权限)
 操作系统用户默认情况下所创建的文件或者目录的权限
umask 查看用户的默认权限
0022
 目录的最大权限:777
 文件的最大权限:666

root用户默认情况下:
创建目录的权限:0777-0022=0755 ——>rwx r-x r-x
创建文件的权限:0666-0022=0644 ——>rw- r-- r--

普通用户默认情况下:
创建目录权限:0777-0002=0775 ——>rwx rwx r-x
创建文件权限:0666-0002=0664——> rw- rw- r--

修该默认权限:
umask 0022  临时修改当前用户的默认权限,当前终端生效

redhat——>0033——>目录:744;文件:633【644】

vim ~/.bashrc  永久生效
..
umask 0033
:wq

source ~/.bashrc 或者 . ~/.bashrc

vim /etc/bashrc  全局配置文件,所有用户默认权限一致
..
umask 0002
:wq

source /etc/bashrc

特殊权限:
1、冒险位(u+s|4000):一般针对命令,让用户临时拥有该文件的拥有者的身份。上方宝剑

chmod u+s 或者 4755 /usr/bin/vim
# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 1967072 Feb 17  2012 /usr/bin/vim

2、强制位(g+s|2000):一般针对目录,任何人在该目录下创建的文件或者目录强制继承父目录属组属性。强制家族企业

chmod g+s 或者2755 /home/test/dir1
drwxr-srwx. 3 root admin 4096 Jan 10 14:46 .

3、粘制位(o+t|1000):一般针对公共目录,除了root和文件的拥有者可以删除文件外,其他人不能删除其他人的文件。自己管理自己。

chmod o+t 或者1777 /share

ACL 访问控制列表
 普通权限、默认权限、特殊权限都无法满足需求时,使用ACL
setfacl:
-m:修改acl策略
-d:递归授权,针对目录,对于新建的文件会继承acl策略
-R:递归授权,针对于原来的目录或者文件会继承acl策略
-x:删除某个用户的acl策略
-b:删除所有的acl策略
--mask :设置除拥有者和其他人以外的最大权限

demo:
# setfacl -m u:user01:rw file1   给user01用户对于file1文件添加一个rw权限
# getfacl file1  查看file1文件的acl策略
# file: file1
# owner: root
# group: admin
user::rw-
user:user01:rw-
group::rw-
mask::rw-
other::r--

# setfacl -m g:admin:rwx dir1  给admin组的成员对于dir1这个目录添加一个rwx的权限
# getfacl dir1 查看dir1目录的acl策略

# setfacl -Rd -m u:user01:rwx dir1  给user01用户对于dir1目录增加一个rwx权限,并且对该目录下面新建的目录也有相应的权限

# setfacl -m m::r-- file1  设置除了file1的属主和其他人以外的最大权限
# getfacl file1
# file: file1
# owner: root
# group: admin
user::rw-
user:user02:rwx            #effective:r--
group::r--
mask::r--
other::r--

练习一:
1、root新建目录/tmp/common,要求目录的所属组为tom。
2、是否允许tom在该目录/tmp/common下创建文件tomfile?如果不允许,怎么办?
3、用户jack如果想修改tomfile文件,怎么办?

练习二:
 以普通用户user01身份登录,新建目录/shared/sysadmin,并属于sysadmin组。
  1
要求:
1、组成员有可读可写的权限,其他成员没有任何权限
2、组成员不可以删除属于其他成员的文件
3、在/shared/sysadmin下创建的文件全部属于sysadmin组
4、要求harry用户可写,natasha用户不能读写
参考:

  # groupadd sysadmin
  #su - user01
  $ mkdir /shared/sysadmin -p
   # setfacl -m u:user01:rwx /
   $ mkdir /shared/sysadmin -p
  chmod g+s /shared/sysadmin/
  chmod o+t /shared/sysadmin
  ll -d /shared/sysadmin/
  useradd harry
  useradd natasha

  setfacl -m u:harry:rwx /shared/sysadmin/

未经允许不得转载:好玩吧 » 文件权限管理(2016.1.10第三周linux课程笔记)