Linux文件权限管理

Linux文件权限管理

1、文件权限的查看

ls  -l  file  = ll file

ls -ld  dir  = ll -d dir

ls  -lR     递归显示

ls -l file
-rw-r--r--. 1 root root 0 Jan 5 13:28 file
1)    2)    3) 4)  5)   6)     7)      8)

1)文件的类型

-空文件,文本文件
d目录
c字符设备
s套接文件
p管道
b块设备
l软链接

2) rwx|rwx|rwx

文件读写权限

u:文件拥有者的权限

g:文件所有组的权限

o:其他人对文件的权限

3) 对文件指文件硬链接个数(文件内容被记录的次数);对目录指目录中子目录的个数

4)文件的拥有者

5)文件的所有组

6)对文件指文件大小;对目录指目录中子文件元数据大小(元数据-->matedata)可以理解为文件的属性大小(时间戳不被包括)

7)文件内容被修改的时间

8)文件的名称

2、更改文件的拥有者和所有组

chown     username     file/dir      ##更改文件/目录的拥有者
chgrp     groupname    file/dir      ##更改文件/目录的所有组
chown     username.groupname    file/dir   ##更改文件/目录的拥有者、所有组
chown     -R   username   file/dir    ##递归更改文件/目录的拥有者
chgrp     -R   groupname  file/dir    ##递归更改文件/目录的所有组

例:

 

3、文件权限的更改

1)文件权限理解

r
对文件:可以查看文件的字符(内容)
对目录:可以查看目录中文件/目录的信息

w
对文件:可以更改文件内的字符
对目录:在目录中增删改查

x
对文件:可以运行文件中记录的程序动作
对目录:可以进入目录

2)更改方式

+-
赋予去掉
chmod    u/g/o +/- r/w/x    file/dir

 相同的权限可以合并目标,不同的用逗号分隔,例:

chmod     ugo-r      file/dir

chmod      u-r,g-w,o-x   file/dir

r4
w2
x1

文件的满权限值为666,目录的满权限值为777。

3)系统默认权限的设定

①系统对新建文件和目录会去掉一些权限

umask     ##查看系统减掉的当前用户权限

一般系统默认普通用户umask值为002,超级用户umask值为022。

umask   xxx   ##临时修改umask值,只在当前shell生效。

②永久更改umask

系统配置文件:vim  /etc/bashrc

    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
      umask 002 #普通用户的umask
    else
      umask 022 #超级用户的umask
    fi

shell配置文件:vim /etc/profile

 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
     umask 002
 else
     umask 022
 fi

直接对umsk重新输入新的权限值

以上两个文件的umask值必须保持一致

输入 :

source   /etc/bashrc

source   /etc/profile

让系统重新加载配置文件,使设定立即生效

 

理解不同用户间的权限问题,可以分别对目录和文件操作:

当student用户编辑liuyifei用户的文件时,不拥有w权限的student用户无法使vim结果保存。

当对目录时:

4、 文件的访问控制(ACL列表)

1)ACL的定义

ACL=access control

指定特殊的用户对特殊的文件有特殊的权限

ls -dl  /home/student/
drwx--x---+  60 student student 4097 Jan 5 15:06 /home/student/
          ↑ ##这个标识开启了ACL列表


getfacl   file    ##查看开启ACL权限的文件权限列表

# file: /home/student     ##目录/文件的名称
# owner: student          ##d/f 的拥有者
# group: student          ##d/f 的所属组
user::rwx                      ##拥有者的权限
user:qemu:--x              ##acl列表中(特殊用户)的权限
group::---                     ##特殊组的权限
mask::--x                     ##权限掩码
other::---                      ##其他人的权限

2)设定ACL列表

setfacl -m u:username:rwx file  ##设定用户对文件拥有的rwx权限
setfacl -m g:group:rwx file     ##设定指定组成员对文件拥有的rwx权限
setfacl -x u:username:rwx file  ##从ACL列表中删除指定用户
setfacl -x g:groupname:rwx file ##从ACL列表中删除指定用户组
setfacl -b  file   ##关闭指定文件的ACL列表


setfacl -m u:username:rwx file  ##设定用户对文件拥有的rwx权限

setfacl -m g:group:rwx file     ##设定指定组成员对文件拥有的rwx权限
例:

setfacl -x u:username:rwx file  ##从ACL列表中删除指定用户
setfacl -x g:groupname:rwx file ##从ACL列表中删除指定用户组

例:

setfacl -b  file   ##关闭指定文件的ACL列表

例:

3)ACL mask值

在权限列表中mas值表示能生效的权限值

当用 chmod  g-w   file 时,会影响已有的用户权限,并改变mask值。

改变前:

改变后及恢复mask值:

4)ACL的默认权限设定 

当我们需要普通用户对属于root的某个目录拥有写的权限时,并且目录中新建的子目录对普通用户也生效,就要设定acl默认权限

 注意:默认权限只对目录中新建的目录或文件生效,对已经建立的目录和文件无效,对目录本身也无效

setfacl -m d:u:student:rwx /mnt/test   ##设立默认权限


setfacl -k /mnt/test   ##删除默认权限



例:对目录本身是无效的

例:对已有的文件或目录也无效:

例:对新建的目录或文件生效,新建的子目录继承默认权限:

5、特殊权限位

1) suid     ##冒险位
只针对二进制可执行文件,文件内记录的程序产生的进程的拥有者为文件的拥有者,和进程的发起人没关系

chmod u+s file
 = chmod 4*** file

 

2) sgid        ##强制位
对文件:只针对二进制可执行文件,任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组,和程序发起人组的身份无关

chmod g+s file
=chmod 2*** file

 

对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关

chmod g+s /dir/

 

3) sticky    ##粘制位
只针对目录生效,当一个目录上有sticky权限时,在这个目录的文件只能被文件的拥有者删除 

chmod o+t /dir
=chmod	1*** /dir

练习:

1、新建用户组:shengchan,caiwu,jishu

2、创建用户要求如下:

* tom是shengchan组的附加用户

* harry是caiwu组的附加用户

* leo是jishu组的附加用户

* 新建admin用户,此用户不属于以上提到的三个部门

3、新建目录要求如下:

* /pub目录为公共存储目录对所有用户可以读,写执行,但用户只能删除属于自己的文件

* /sc目录为生产部存储目录只生产部人员可以写入,且生产部人员所建立的文件都自动归属到shengchan组中

*/cw目录为财务部存储目录只财务部人员可以写入,且财务部人员所建立的文件都自动归属到caiwu组中

*admin用户能用touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件

4、设定普通用户新建文件权限为"r--r-----"

5、设定admin用户可以通过sudo自由建立新用户

 

1、2、

3、

4、修改/etc/bashrc   /etc/profile文件,更改普通用户权限

5、用visudo编辑/etc/sudoers文件,下放给admin用户权力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值