权限设定

本文详细介绍了Linux文件权限的管理,包括查看、理解和改变文件权限的方法,如ls、chown、chgrp和chmod。此外,还讲解了特殊权限如sticky、sgid和suid的概念及其设置。同时,探讨了umask的临时和永久更改,以及ACL(Access Control Lists)的使用,用于设置特定用户对特定文件的权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件权限

1.文件权限存在的意义

系统最底层安全设定方法之一
保证文件可以被可用的用户做相应操作

 

2.文件权限的查看

ls -l     file
ls -ld    dir
ll     file
ll -d    dir

3.文件权限的读取

-  |rw-rw-r--| 1 |kiosk | kiosk | 0 | Jul 21 09:18 | file
[1]    [2]    [3]   [4]    [5]   [6]        [7]       [8]


[1]文件的类型
-                 ---空文件,或者文本
d                ---目录
l                  ---软链接
s                ---socket 套接字
b                ---block    块设备
c                ---字符设备

file文件的类型是纯文本

dir1的类型是目录

[2]文件的权限
rw-|rw-|r--
 1   2   3
1.[u] 文件拥有者对文件能做什么操作,文件拥有者可读写操作
2.[g] 文件所有组对文件能做什么操作,文件所有组可读写操作
3.[o] 其他人对文件能做什么操作,其他人可读操作

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

 

[4]文件的所有人,file文件所有人是root

[5]文件所有组,file文件所有组时root

[6]对文件:文件大小,file中文件大小为0
    对目录:目录中子文件元数据(matedate可以理解为文件的属性)大小,dir1中含有. ..,大小为6

 


[7]文件的内容被修改的时间

[8]文件的名称

 

4.如何改变文件的所有人和所有组

chown|chgrp

1)chown

chown       username    file|dir
chown       user.group    file|dir
chown    -R    user.group    dir

更改file的所有人为student

更改file的所有人和所有组为root,student

更改dir1的所有人和所有组为student,student

 

2)chgrp

chgrp            group        file       ---设定file拥有组为group
chgrp    -R    group        dir        ---设定dir拥有组为group      

修改dir1的拥有组为root

修改dir1的拥有组为student

 

5.如何改变文件的权限

1.对权限的理解
r

    对文件:是否可以查看文件中的内容   --->cat file
    对目录:是否可以查看目录中有什么子文件或者子目录 ---> ls dir
w
    对文件:是否可以改变文件里面记录的字符
    对目录:是否可以对目录中子目录或子文件的元数据进行更改
x
    对文件:是否可以通过文件名称调用文件内记录的程序
    对目录:是否可以进入目录

2.更改方式

chmod    <u|g|o><+|-|=><r|w|x>    file|dir
chmod     u+x    /mnt/file1
chmod     g-r    /mnt/file2
chmod    ug-r    /mnt/file3
chmod    u-r,g+x    /mnt/file4
chmod    -r    /mnt/file5
chmod    o=r-x    /mnt/file6

使用watch -n 1 ‘ls -l file;ls -ld dir1'来监控实验

1.对file权限进行修改,拥有者添加执行权限,拥有组添加写权限,其他人减少读权限

2.对file的权限进行修改,减少拥有者与拥有组的读权限

.

3.对file的权限进行修改,令拥有组与其他人拥有rwx的权限

 

7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=--- 

 

 

6.umask

umask                  ---系统建立文件是默认保留的权力

1)临时更改

umask  077          ---临时设定系统预留权限为077

原来系统的预留权限为022,现在使用umask命令临时修改系统预留权限为077

新建目录dir2,权限值发生改变。

但是关闭当前的shell,重新新建一个目录,系统预留权限变回022,

但是之前临时设定预留权限时所建立的文件,权限值不发生变化。

2)永久更改umask

vim /etc/profile    ##系统配置文件
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60     umask 002                ---普通用户的umask
61 else
62     umask 077                ---超级用户的umask
63 fi

vim /etc/bashrc                   ---shell配置文件
70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71        umask 002
72     else
73        umask 077
74     fi


source /etc/profile           ---让更改立即生效
source /etc/bashrc

 

7.特殊权限

1.sticky    ##粘制位

    只针对目录生效,当一个目录上有sticky权限时
    在这个目录中的文件只能被文件的所有者删除

设定方式:
    chmod o+t       dir
    chmod 1xxx     dir     

2.sgid               ---强制位

    对文件:    只针对与二进制可执行文件
            当文件上有sgid时任何人执行此文件产成的进程都属于文件的的组touch文件权限进行修改,则执行touch命令后所产生的文件都属于touch文件的组
    对目录:
            当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

设定方式
    chmod g+s  file|dir
    chmod 2xxx file|dir

3.suid        ##冒险位

只针对与2进制可执行文件
    当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
    
设定方式
    chmod u+s  file
    chmod 4xxx file

例子:

1.新建用户组,shengchan,caiwu,jishu

 

2.新建用户要求如下

1)tom时shengchan组的附加用户

2)harry时caiwu组的附加用户

3)leo时jishu组的附加用户

 

3.新建目录要求如下:

1)/pub目录为公共存储目录对所有用户可以读,写,执行

2)/sc目录为生产部存储目录只能对生产部人员可以写入,并且

生产部人员所建立的文件都自动归属到shengchan组中

 

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

4)admin用户对于/sc和/cw目录可以读写执行


8.acl权限列表

1.作用

 让特定的用户对特定的文件拥有特定权限

2.acl列表查看

    -rw-rwxr--+ 1 root root 0 Jul 21 15:45 file (权限后出现+表示存在acl列表
          ^    
        acl开启

    getfacl file                       ---查看acl开启的文件的权限
    # file: file                          ---文件名称
    # owner: root                   ---文件拥有者
    # group: root                   ---文件拥有组
    user::rw-                          ---文件拥有人的权限
    user:kiosk:rwx                ---指定用户的权限
    group::r--                         --- 文件拥有组的权力
    mask::rwx                        --- 能赋予用户的最大权力伐值
    other::r--    ##其他人的权限

3.acl列表的管理

setfacl  -m u:username:rwx file    ---设定username对file拥有rwx权限
setfacl  -m g:group:rwx    file        ---设定group组成员对file拥有rwx权限

setfacl  -x u:username    file          ---从acl列表中删除username
setfacl  -b file                                  ---关闭file上的acl列表

新建一个文件file,查看acl列表,将student设定对file拥有rwx权限

切换用户student,对文件file进行写操作,可以执行

4.mask值


在权限列表中mask标示能生效的权力值
当用chmod减小开启acl的文件权限时mask值会发生改变

chmod g-w westos

如果要恢复mask值
setfacl -m m:rw westos

5.acl的默认权限设定


acl默认权限只针对目录设定
"acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限"

实验:
先新建/mnt/test,再新建/mnt/test/westos,
再打开test的权限列表,设定student对test拥有rwx权限,
查看westos的权限列表,与test不同,于是设定test的默认权限,
setfacl -m d:u:student:rw /mnt/test.再查看test与westos,没有变化,说明对已经存在的文件没有影响。
再新建/mnt/test/linux,查看linux的权限列表,发现列表中的设定与test的相同。

setfacl -k /mnt/westos删除默认权限。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值