Linux - Linux权限

梦里梦外; 2023-06-07 08:14 136阅读 0赞

$ ls -l

drwxr-xr-x.3 root root 4096 Oct 12 13:38 dirname

d:**文件类型:**

  • d:目录
  • -:文件
  • l:软链接

rwx:所有者权限 r-x:用户组权限 r-x:其他人权限 . :ACL权限位

r读 w写 x执行

基本权限的修改

chmod [选项] 模式 文件名

  • 选项

    • -R 递归
  • 模式

    • [u/g/o/a][+/-/=][rwx]
  • 权限数字

    • r 4
    • w 2
    • x 1

    $ chmod 666 1.txt 设置文件权限为rw-rw-rw-
    $ chmod u+w 1.txt 给所有者添加w写的权限
    $ chmod g+x 1.txt 给用户组添加x执行的权限
    $ chmod o+r 1.txt 给其他人添加r读的权限

    $ chmod g+x,o+x 1.txt 同时给用户组和其他人添加x执行的权限

    $ chmod u-w 1.txt 给所有者减掉w写的权限

    $ chmod u=rwx 1.txt 设置所有者的权限为rwx

文件权限

























权限 含义 示例
r 读取文件内容 cat more head tail
w 编辑、新增、修改文件内容,不能删除文件,除非对目录有写权限 vi echo
x 可执行

目录权限


























权限 含义 示例
r 可以查看目录下的文件名 ls
w 具有修改目录结构的权限。如新建、删除和重命名此目录下的文件和目录 touch rm mv cp
x 进入目录 cd

chown

  • chown 用户名 文件名
  • 如果想让一个用户拥有7权限,可以把这个文件的所有者改成这个用户名

    1. chmod 755 folder
    2. chown mino folder

chgrp

  • chgrp 组名 文件名

    chgrp students folder
    chown root:root folder

默认权限

umask

  • 查看默认权限
  • 0022

    • 第一位0 文件特殊权限
    • 022 文件默认权限

文件权限

  • 默认权限就是文件一创建后就拥有的权限
  • 文件默认不能建立可执行文件,必须手工赋予执行权限
  • 文件默认权限最大为666
  • 默认权限需要换算成字母再相减
  • 建立文件之后的默认权限,为666减去umask值

666 - 022 = 744

2.3 目录

  • 目录默认权限最大为777
  • 建立目录之后的默认权限,为777减去umask值

777 - 022 = 755

2.4 修改umask值

临时修改

  1. umask 0002

永久修改

  1. vi /etc/profile

ACL

  • 一个文件或文件夹只能有一个所有者和所属组,无法适应某些应用场景
  • 访问控制(Access Control List,ACL)就是为特定的用户和组分配特定权限

    查看分区ACL权限是否开启

  • dumpe2fs 命令是查询指定分区详细文件系统信息的命令

    • -h 仅显示块中的信息,而不显示磁盘块组的详细信息

    dumpe2fs -h /dev/sda1

    Default mount options: user_xattr acl

临时开启分区的ACL权限

  1. mount -o remount,acl /dev/sda1 #重新挂载根分区,并挂载加入ACL权限

永久开启分区的ACL权限

  1. vi /etc/fstab
  2. UUID / ext4 defaults,acl 1 1
  3. mount -o remount /dev/sda1

读写ACL权限

setfacl

  • setfacl 选项 文件名

































选项 含义
-m 设定ACL权限
-x 删除指定的ACL权限
-b 删除所有的ACL权限
-d 设定默认ACL权限
-k 删除默认的ACL权限
-R 递归设定ACL权限
  • 给用户guest赋予rx权限
  • 格式 “u:用户名:权限”

    1. useradd guest
    2. mkdir /home/guest/folder
    3. useradd teacher
    4. groupadd students
    5. mkdir folder
    6. chown teacher:students /home/guest/folder
    7. chmod 770 /home/guest/folder
    8. #创建用户guest,teacher,创建用户组students
    9. #创建目录/home/guest/folder
    10. #修改目录权限为770,所有者和用户组分别为:teacher,students
    11. #用户guest没有权限访问该目录
    12. setfacl -m u:guest:rw /home/geuest/folder

    设置最大权限

  • mask是最大有效权限,如果给用户赋予了ACL权限,是需要和mask的权限做与运算后才能得到真正权限
  • 如果mask值是777,那么任何数与它相与,得到的是权限本身
  • 如果允许自定义ACL,又不想让它超出最大权限

    setfacl -m m:r folder #修改掩码mask
    [root@localhost someone]# getfacl folder

    file: folder

    owner: teach

    group: stus

    user::rwx
    user:someone:r-x #effective:r—
    group::rwx #effective:r—
    mask::r—
    other::—-

删除ACL权限

删除指定用户的ACL权限

  1. setfacl -x u:someone folder #setfacl -x u:用户名 文件名

删除文件所有用户的ACL权限

  1. setfacl -b folder #setfacl -b 文件名

删除指定用户组的ACL权限

  1. setfacl -x g:students folder #setfacl -x g:组名 文件名

递归权限

  • 向下一级一级传递权限
  • 父目录设定ACL权限的时候,所有的子文件和子目录也会拥有相同的ACL权限
  • 递归仅能赋给目录不能赋给文件

    setfacl -m u:someone:rx folder
    setfacl -m u:someone:rx -R folder

默认权限

  • 默认ACL权限是指如果给父目录设置了默认ACL权限,那么父目录里所有新建的子文件都会继承父目录的ACL权限
  • setfacl -m d:u:用户名:权限 目录名

    setfacl -m d:u:someone:rw folder

sudo权限

  • root把本来只有超级管理员可以使用的命令赋予普通用户来使用
  • sudo操作的对象是系统命令

4.1 visudo

  • 通过visudo可以由超级用户赋权
  • 实际修改的是/etc/sudoers文件
  • 命令必须写绝对路径

    root ALL=(ALL) ALL
    用户名 被管理主机地址=(可使用的身份) 授权命令(绝对路径)

    guest localhost=(root) /usr/sbin/useradd //新增加用户行

    %wheel ALL=(ALL) ALL
    %组名 被管理主机地址(IP)=(可使用的身份) 授权命令(绝对路径)

    sudo -l 查看目前的sudo权限

发表评论

表情:
评论列表 (有 0 条评论,136人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux--权限

    前言: “权限”这一词并不陌生,在我们日常生活中经常会有权限的设定。比如我们一个学校,老师有讲课的权限,而且学生有听课的权限,学校的食堂阿姨他们是没有这些权限的。我们感觉

    相关 LinuxLinux权限

    权限的概念 > 限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否允许被谁“做”。 > > 权限 = 人 + 事物属性 `Linux`上的用户分类

    相关 Linux 权限

    Linux 权限 认识 Linux 用户 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通

    相关 Linux 权限

    Linux 权限详解 权限简介 快速入门 一般使用格式 数字权限使用格式 更改文件拥有者(chown命令) 权限简