精华内容
下载资源
问答
  • Linux权限

    千次阅读 2018-04-06 11:15:10
    Linux里一般将文件可存取访问的身份分为所有者(owner),用户组(group),其他人(others)。 有了这个概念,那我们再来了解什么是权限。在一个目录下执行 ls -al 我们来看最后一行fib.c这个文件,了解一下...

    Linux里一般将文件可存取访问的身份分为所有者(owner),用户组(group),其他人(others)。
    有了这个概念,那我们再来了解什么是权限。在一个目录下执行 ls -al
    这里写图片描述
    我们来看最后一行fib.c这个文件,了解一下这些字母都是啥意思。
    这里写图片描述
    在图一中咱发现每个文件的第一个文件权限都不一样,而且一堆字母,都是什么意思呢?
    第一个字符代表这个文件是什么类型的文件:

    • 【-】:普通文件
    • 【d】:目录文件
    • 【p】:管道文件
    • 【b】:块设备文件
    • 【c】:字符设备文件
    • 【s】:socket文件
    • 【l】:软连接文件

    接下来的字符中,三个为一组,第一组对应“文件所以者的权限”,第二组对应“同用户组的权限”,第三组对应“其他人的权限”,我们还是拿上面的fib.c来示例说明。
    这里写图片描述
    其中,各字符和权限的对应关系是:

    • 【-】:无权限
    • 【r】:读
    • 【w】:写
    • 【x】:执行
    • 【s】:用户设置位

    分析一下fib.c的权限属性,fib.c是普通文件,它的所有者可以对它进行读写操作,同组的用户可以对它进行读写操作,其他人只能读。

    那么怎么来修改权限呢?
    命令 chmod :改变文件的权限
    这里权限的设置方法有两种:1.使用数字 2.使用符号

    方法一:
    设置的规则是:(owner,group,others)中各组中权限分数相加,再把各组合起来组成数字,比如
    -(rw-)(rw-)(r- -) 是664(’r’=4,’w’=2,‘x’=1,‘-’=0)
    -rwxrwxr– 是774
    -r—w—- 是420

    我们来试着改变fib.c的权限:命令 chmod 666 fib.c
    {666(-rw- rw- rw-):【所有者:(可读,可写,不可执行)】【同组用户:(可读,可写,不可执行)】【其他用户:(可读,可写,不可执行)】}
    改之前:这里写图片描述
    改之后:这里写图片描述

    改成774: {774(-rwx rwx r–):【所有者:(可读,可写,可执行)】【同组用户:(可读,可写,可执行)】【其他用户:(可读,不可写,不可执行)】}
    这里写图片描述

    方法二:
    设置的规则是:
    这里写图片描述
    u:所有者,g:同组用户,o:其他用户,a:所有用户

    比如在上面的基础上设置fib.c的权限为{666(-rw- rw- rw-)}
    命令是:chmod u=rw,g=rw,o=rw fib.c
    这里写图片描述
    也可以:chmod ugo=rw fib.c
    再给其他用户除去读和写的权限:chmod o-rw fib.c
    这里写图片描述
    给所有者加上执行权限,给同组用户减去写权限加上执行权限,给其他用户加上读和执行权限(结果应是:-rwxr-xr-x)
    命令 chmod u+x,g-w,g+x,o+rx fib.c
    这里写图片描述
    也可以 chmod a+x,g-w,o+r fib.c

    展开全文
  • linux 权限

    千次阅读 2018-06-01 17:20:49
    0 表示管理员(root),超级管理员,最大权限 1 - 500 表示系统用户,与一些系统服务有关 501 - 65535 表示普通用户,也就是自己创建的用户 不同的 Linux 发行版,这些数字可能不一样 #创建用户 useradd ...

    Linux 系统中,UID以如下的方式划分:

    0 表示管理员(root),超级管理员,最大权限
    1 - 500 表示系统用户,与一些系统服务有关
    501 - 65535 表示普通用户,也就是自己创建的用户

    不同的 Linux 发行版,这些数字可能不一样

    #创建用户
    useradd zhangsan
    #删除用户
    
    #仅删除用户
    userdel zhangsan
    #删除家目录
    userdel -r zhangsan
    
    #显示用户id
    id zhangsan
    
    #修改用户密码
    echo "newpassword" | passwd --stdio zhangsan
    

    文件权限
    这里写图片描述
    每一列分别为 权限,文件硬链接数 ,所属用户,所属组,大小,时间,名称

    其中权限里
    第一个 为d代表是目录,为-代表用户可以查看的如文本文件,为c或者d代表块或者设备文件
    这里写图片描述

    r,w,x分别代表读,写,执行权限,没有该权限为-,不能省略
    例如,只能读,则为 r–
    然后r,w,x又分别对应4,2,1
    那么 rwx=7, r-x=5, -wx=3

    #改变文件权限,a代表所有,u代表拥有者,g代表组,o代表其他
    #把拥有者权限改成读写执行
    chmod u=rwx test.txt
    #单独增加某项权限,给所有用户执行权限
    chmod a+x test.txt
    #一起改变三类用户权限,权限分别为 rwx,r-x,-w-
    chmod 752 test.txt
    #更改文件所属用户
    chown root test.txt

    还有3个特殊权限
    SUID,SGID和SBIT
    这里写图片描述
    分别出现在文件所属用户,所属组,和其他上的执行位
    若当这些权限存在,执行位为-时,该位为s(t),执行位为x时,该位为S(T)

    SUID
    1.SUID只对二进制文件有效
    2.调用者对该文件有执行权
    3.在执行过程中,调用者会暂时获得该文件的所有者权限
    4.该权限只在程序执行的过程中有效

    SGID
    它对普通二进制文件和目录都有效。当它作用于普通文件时,和SUID类似,在执行该文件时,用户将获得该文件所属组的权限。当SGID作用于目录时,意义就非常重大了。当用户对某一目录有写和执行权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。

    SBIT
    即Sticky Bit,它出现在其他用户权限的执行位上,它只能用来修饰一个目录。当某一个目录拥有SBIT权限时,则任何一个能够在这个目录下建立文件的用户,该用户在这个目录下所建立的文件,只有该用户自己和root可以删除,其他用户均不可以。

    4表示SUID 2表示SGID 1表示SBIT
    写在前面的三种权限之前,若都有,则为7777

    chattr命令用来改变文件属性。又称隐藏权限,不会改变前面的几种权限
    这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

    a:让文件或目录仅供附加用途;
    b:不更新文件或目录的最后存取时间;
    c:将文件或目录压缩后存放;
    d:将文件或目录排除在倾倒操作之外;
    i:不得任意更动文件或目录;
    s:保密性删除文件或目录;
    S:即时更新文件或目录;
    u:预防意外删除。

    #增加和删除a权限
    chattr +a test.txt
    chattr -a test.txt
    
    #查看隐藏权限
    lsattr

    对单个用户设置权限
    文件访问权限控制列表 facl

    #设置权限
    setfacl -Rm u:zhangsan:rwx momo
    #查看权限
    getfacl momo
    展开全文
  • Linux 权限管理 1. 文件访问者的分类(对于用户来说) 2.文件类型和访问权限(对于文件或目录来说) 1). 文件类型 2). 其中 r , w, x, - 具体含义 文件权限值的表示方法 粘滞位 文件访问权限的相关设置方法 ...

    目录

    Linux 中的用户

    su指令

    Linux 权限管理

    1. 文件访问者的分类(对于用户来说)           

    2.文件类型和访问权限(对于文件或目录来说)

              1). 文件类型                  2). 其中 r , w,  x, -  具体含义            文件权限值的表示方法

    粘滞位

    文件访问权限的相关设置方法

                      1. chmod    2.chown    3. chgrp    3.umask      4. file      5.sudo


    相关博客 : Linux文件目录类常用指令 

    Linux 中的用户

    linux 中说到权限, 就绕不开用户, 有了不同用户权限才有意义

    Linux下有两种用户:超级用户(root)、普通用户。

    超级用户 : 可以在linux系统下做任何事情,不受限制
    普通用户 : 在linux下做有限的事情(权限受到限制)

    su

    功能描述: 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
    基本用法 : su  (命令参数)  (命令对象) 
    su username : 切换到username用户, 但不获取其环境变量(su root 可以省略root写成su)
    su - username  (注意, - 左右都有空格), 完全切换到username用户(并获取其环境变量), (su - root 可以省略root写成su -)
    例如:
    su root 
    su 
    su - root
    su -
    常用命令参数 : 
    -c : 执行完指定的指令后,即恢复原来的身份, 例如: su -c ls root , 在切换到root用户后执行完ls命令自动切换回原用户

    补充 : 
           在所有Linux系统中,系统都是通过UID来区分用户权限级别的,  UID (User Identify)用户ID, 相当于我们身份证号码一般的存在, UID为 0 的用户被定义为超级用户(也就是root用户).
          一般来说, 用户和UID是一 一对应的, 就是像我们的身份证号码一样, 但确是可以将一个UID给多个用户, 但这样的操作是危险的, 不安全的, 可能会造成系统权限管理的混乱, 尤其是把root用户的UID如果被普通用户所共有, 那么这个 普通用户就有了和root一样的权限, 这是非常不安全的行为


    Linux 权限管理

    1. 文件访问者的分类(对于用户来说)

    前面说到, 权限作用于多个用户才显得有意义,  在linux中可以按对文件的访问权限将用户(人)分为三种 :

    文件和文件目录的所有者u---User
    文件和文件目录的所有者 所在的组的用户(同组用户) : g---Group
    其它用户o---Others

    2.文件类型和访问权限(对于文件或目录来说)

    用 ll 或 ls -l 命令可以显示目录下所有文件详细信息(不包括隐藏文件), 如下图
    在每个文件信息开头的 d - w r x 共10位是什么信息呢, 是文件对于不同文件访问者的权限, 具体如下图 :

    1). 文件类型

    d:文件夹
    -:普通文件
    l:软链接(类似Windows的快捷方式)
    b:块设备文件(例如硬盘、光驱等)
    p:管道文件
    c:字符设备文件(例如屏幕等串口设备)
    s:套接口文件

    2). 其中 r , w,  x, -  具体含义

    r(read),  w(write),  x(execute), - (表示没有这个权限) 都是用来表示权限的
    它们在表示权限时有固定顺序, 为 r, w ,x
     - 出现在哪个位置就表示没有哪个权限

    对文件而言 
    r  : 具有读取文件内容的权限
    w: 具有修改文件内容的权限
    x : 具有执行文件的权限 (只是具备执行的权限, 但文件是否能执行还取决于文件本身属性)
    - : 在哪个位置就表示不具有该项权限

    对目录而言
    r  : 具有浏览该目录信息的权限(是否可以查看目录中的内容)
    w : 具有删除,移动,增加这个目录中文件(或目录)的权限
    x : 具有进入目录的权限
    - :  在哪个位置就表示不具有该项权限
    注意: 如果目录没有x权限, 则无法对目录执行任何命令, 甚至无法cd进入目录, 即使目录仍然有r权限(这个地方很容易犯错, 即认为有读权限就可以进入目录读取目录下的文件), 然而如果目录具有x权限, 但没有r权限, 则用户可以执行命令, 可以cd进入目录. 但由于没有目录的x权限所以在目录下, 即使可以执行ls命令, 仍然没有权限读出目录下的文档. 例如下面


    那么问题来了
    换句话来讲, 就是只要用户有目录的写(w)权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写(w)权限.
    这好像不太科学啊, 我创建的一个文件, 凭什么别的用户可以删掉? 我们来验证一下是否是这样

    我们在root用户创建的文件ff, 可以看到同组用户和其他用户都没有写(w)权限, 但在test用户下我们却删掉了root用户所有的ff文件
    为了解决这个不科学的问题, Linux引入了粘滞位的概念.

    粘滞位

    给目录添加粘滞位: chmod +t 目录路径

    当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
    一、超级管理员删除
    二、该目录的所有者删除
    三、该文件的所有者删除

    设置粘滞位后再来试一遍test用户是否可以删除ff文件

    可以看到, 结果正如我们所料, 删不了了

    文件权限值的表示方法

    1). 字符表示方法

    就是上面的这种用r  w  x  -这四种字符来表示权限的方法

    2). 8进制表示法
     

    字符表示8进制二进制
    ---0000
    --x1001
    -w-2010
    -wx3011
    r--4100
    r-x5101
    rw-6110
    rwx7111

    文件访问权限的相关设置方法

    1. chmod 

    功能描述: 设置文件或目录的访问权限
    基本用法 : 
    chmod u+x,g+w f01 (增加f01拥有者执行权限, 组员写入的权限)(相应的u-x代表去除此权限)(在原有权限的基础上增加或去除相应权限)
    chmod u=rwx,g=rw,o=r f01 (将f01的权限设置为rwxrw-r--)(不管之前是什么, 修改成我们设置的)
    chmod 764 f01 (文件f01权限设置为rwxrw-r--)(不管之前是什么, 修改成我们设置的)
    chmod a+x f01 (文件f01的u,g,o都设置可执行属性)
    常用命令参数 : 
    + : 向权限范围增加权限代号所表示的权限
    -  : 向权限范围取消权限代号所表示的权限
    = : 向权限范围赋予权限代号所表示的权限用户符号
    u : 拥有者
    g : 拥有者同组用户
    o : 其它用户
    a : 所有用户

    2.chown

    功能描述: 改变某个文件或目录的所有者和所属的组(只有文件主和超级用户才可以便用该命令)
    基本用法 : 
    chown [参数] 用户名 文件名(或目录)     
    例子: chown user f             (将文件f的所有者改为user)
             chown -R user fd       (将目录f及其目录下的文件及目录的所有者递归改为user)
    常用命令参数 : 
    -R : 递归处理,将指定目录下的所有文件及子目录一并处理
    -v : 显示指令执行过程

    3. chgrp

    功能描述: 修改文件或目录的所属组
    基本用法 : 
    chgrp [参数] 用户组名 文件名
    例子: chgrp user /abc/f2     (将abc目录下f2文件的用户组改为user) 
             chgrp -R user mengxin /meng     (将mengxin目录下meng目录及其目录下的内容的的用户组递归改为改为user)
    常用命令参数 : 
    -R 递归修改文件或目录的所属组

    3.umask

    功能描述:  用来查看和设置限制新建文件权限的掩码。(新建文件权限的掩码 : 我们新建一个文件时,默认的权限)
    用户可以通过执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
    补充说明 :
    新建文件默认权限=0666,  新建目录默认权限=0777  (此处的默认权限并不是实际新建文件或目录的预设权限)
    (0666, 0777前面的0是8进制的前缀, 下文也同样)
    但实际上所创建的文件和目录,看到的权限却不是上面的默认值值。如下图

    原因就是创建文件或目录时预设权限还要受到umask的影响。
    假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
     输入umask可以查看当前用户的掩码值umask为 , 
    可以看到umask = 0002, 目录实际预设权限 = 0777 & ~(0002) = 0777 & 0775  = 0775 ==> 111111101 ==> rwxrwxr-x
    新创建文件实际预设值  = 0666 & ~(0002) =  0666 & 0775 = 0664 ==> 110110100 ==> rw-rw-r--
    基本用法 : 
    umask      查看当前用户的掩码值umask
    利用umask命令可以指定哪些权限将在新文件的默认权限中被删除, 例如:
    umask u=,g=w,o=rwx  (组用户的写权限, 其他用户的读, 写和执行权限都被取消)
    注意: =在umask命令和chmod命令中的作用恰恰相反. 在chmod命令中, 利用它来设置指定的权限,而其余权限则被删除,但是在umask命令中, 它将在原有权限的基础上删除指定的权限。
    常用命令参数 : 
    -S : 以符号方式输出权限掩码。
    注意 :
    不能直接利用umask命令创建一个可执行的文件, 用户只能利用chmod命令使它具有执行权限 . 假设执行了命令
    umask u=, g=w, o=rwx , 虽然在命令行中, 没有删去文件主和组用户的执行权限, 但默认的文件权限还是640(即 rw- r-- ---), 而不是750(rwx r-x ---). 但是, 如果创建的是目录或者通过编译程序创建的一个可执行文件, 将不受此限制. 在这种情况下, 会设置文件的执行权限

     4. file

    功能描述: 辨识文件类型。
    基本用法 : 
    file [参数] 文件或目录
    常用命令参数 : 
    -b:列出辨识结果时,不显示文件名称
    -c:详细显示指令执行过程,便于排错或分析程序执行的情形
    -z:尝试去解读压缩文件的内容。

    5.sudo

    功能描述: 用来以其他用户身份(权限)来执行命令
    补充: sudo 预设的身份为root, 在/etc/sudoers中设置了可执行sudo指令的用户. 用户使用sudo时,必须先输入密码
    基本用法 : 
    实例: 在test用户下安装tree, 提示需要root权限, 我们可以用sudo来在test用户下获取root的权限来执行

     

     

    展开全文
  • linux 权限赋予

    万次阅读 2018-06-05 19:02:53
    查看权限如下: 通过 ll 命令查看当前文件夹下所有文件和文件夹第一行显示的就是 权限 拥有人 分组权限说明:一个用户、一个组 我们来看一看 Linux 权限和所有权模型。我们已经看到每个文件属于一个用户和一个组。...
    查看权限如下: 通过 ll 命令查看当前文件夹下所有文件和文件夹

    第一行显示的就是 权限  拥有人  分组


    权限说明:

    一个用户、一个组
    我们来看一看 Linux 权限和所有权模型。我们已经看到每个文件属于一个用户和一个组。这正是 Linux 中权限模型的核心。您可以在 ls -l 清单中查看用户和组:

    $ ls -l /bin/bash

     

    -rwxr-xr-x    1 root     wheel      430540 Dec 23 18:27 /bin/bash
    在这个特殊的示例中,/bin/bash 可执行文件属于 root 用户,并且在 wheel 组中。Linux 权限模型通过允许给每个文件系统对象设置三种独立的权限级别来工作 — 它们为文件的所有者、文件的组以及所有其他用户。

    理解“ls -l”

    我们来看一看我们的 ls -l 输出,检查一下这个清单的第一栏:

    $ ls -l /bin/bash
    -rwxr-xr-x    1 root     wheel      430540 Dec 23 18:27 /bin/bash
    第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符(-)指定该文件的类型,本例中它是一个常规文件。其它可能的首字符还有:
    “d”目录
    “l”符号链接
    “c”字符专门设备文件
    “b”块专门设备文件
    “p”先进先出
    “s”套接字
    三个三元组
    $ ls -l /bin/bash
    -rwxr-xr-x    1 root     wheel      430540 Dec 23 18:27 /bin/bash
    该字段的其余部分由三个三元组字符组成。第一个三元字符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权限:
    "rwx"
    "r-x"
    "r-x"
    上面,r 表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x 表示允许“执行”(运行程序)。将所有这些信息放在一起,我们可以发现每个人都能够读该文件的内容和执行该文件,但是只允许文件所有者(root 用户)可以以任何方式修改该文件。因此,虽然一般用户可以复制该文件,但是只允许 root 用户更新或删除它。
    我是谁?
    在我们看怎样改变文件的用户所有权和组所有权之前,我们首先来看一看怎样得知您当前的用户标识和组成员资格。除非最近您使用过 su 命令,否则您当前的用户标识是您用来登录系统的用户标识。但是,如果您经常使用 su,您可能不记得您当前有效的用户标识。要查看用户标识,输入 whoami:
    # whoami
    root
    # su drobbins
    $ whoami
    drobbins
    我在哪一组?
    要看看您属于哪一组,使用 group 命令:
    $ groups
    drobbins wheel audio
    在上面的示例中,我是 drobbins、wheel 和 audio 组的成员。如果您想看看其他用户在什么组,指定他们的用户名作为参数:
    $ groups root daemon
    root : root bin daemon sys adm disk wheel floppy dialout tape video
    daemon : daemon bin adm
    改变用户和组所有权
    为了改变文件或其它文件系统对象的所有者或组,分别使用 chown 或 chgrp。这两个命令都要一个用户名或组名作参数,后面跟上一个或多个文件名。

    # chown root /etc/passwd
    # chgrp wheel /etc/passwd
    您还可以用 chown 命令的另一种形式同时设置所有者和组:
    # chown root.wheel /etc/passwd
    除非您是超级用户,否则您不可以使用 chown,然而任何人都可以使用 chgrp 来将文件的组所有权改为他们所属的组。
    递归的所有权改变
    chown 和 chgrp 都有一个 -R 选项,该选项可以用来告诉它们递归地将所属权和组改变应用到整个目录树中。例如:
    # chown -R drobbins /home/drobbins
    介绍 chmod
    chown 和 chgrp 可以用来改变文件系统对象的所有者和组,而另一个程序 — 叫做 chmod — 用来改变我们可以在 ls -l 清单中看到的 rwx 权限。chmod 带有两个或多个参数:“mode”,描述怎样改变权限,后面跟将会受到影响的文件或文件列表:
    $ chmod +x scriptfile.sh
    在上面的示例中,我们的“mode”是 +x。您可能会猜到,+x 模式告诉 chmod,使该特殊文件对于用户、组以及其它任何人都是可执行的。如果我们想要除去一个文件的所有执行权限,我们应该这样做:
    $ chmod -x scriptfile.sh
    用户/组/其他粒度
    到此,我们的 chmod 示例已经影响到了所有三个三元组 — 用户、组和所有其他用户。通常,一次只修改一个或两个三元组很方便。要这样做,只需要在 + 或 - 符号之前,给您想要修改的特定的三元组指定符号字符。对于“用户”三元组使用 u,对于“组”三元组使用 g,对于“其他/每个人”使用 o:
    $ chmod go-w scriptfile.sh
    我们刚除去了组和所有其他用户的写权限,而保留“所有者”权限不动。
    重新设置权限
    除了交替打开和关闭权限位以外,我们还可以一起重新设置它们。通过使用 = 操作符,我们可以告诉 chmod 我们要指定权限和取消别的权限:
    $ chmod =rx scriptfile.sh
    上面,我们只设置了所有的“read”和“execute”位,没有设置所有的“write”位。如果您仅仅想重新设置特定的三元组,您可以像下面这样,在 = 之前指定该三元组的符号名:
    $ chmod u=rx scriptfile.sh
                            数字模式
                            直到现在为止,我们使用了叫做“符号”的模式来用 chmod 指定权限的改变。然而,指定权限还有
                            一种普遍使用的方法 — 使用 4 位八进制数。使用叫做数字权限语法的语法,每一位代表一个权限
                            三元组。例如,在 1777 中,777 设置本章我们所讨论的“owner”、“group”和“other”
                            标志。1 用来设置专门的权限位,我们将在本章的结束部分讲到。这个图表说明了怎样解释第二到
                            四位(777):
                            模式 数字
                            rwx 7
                            rw- 6
                            r-x 5
                            r-- 4
                            -wx 3
                            -w- 2
                            --x 1
                            --- 0
                            
                            数字权限语法
                            当您需要给一个文件指定所有权限时,数字权限语法特别有用,比如在下面的示例中:
    $ chmod 0755 scriptfile.sh
                            $ ls -l scriptfile.sh
                            -rwxr-xr-x    1 drobbins drobbins        0 Jan  9 17:44 scriptfile.sh
                            在该示例中,我们使用了 0755 模式,它展开为一个完整的权限设置“-rwxr-xr-x”。
                            Umask
                           
    当进程创建了新文件时,它指定新文件应该具有的权限。通常,所请求的模式是 0666(每个人可读和可写),它比我们希望的具有更多的权限。幸运的是,不管什么时候创建了新文件,Linux 将参考叫做“umask”的东西。系统用 umask 值来将初始指定的权限降低为更合理、更安全的权限。您可以通过在命令行中输入 umask 来查看您当前的 umask 设置:
                            $ umask
                            0022
                            Linux 系统上,umask 的缺省值一般为 0022,它允许其他人读您的新文件(如果他们可以得到它们),但是不能进行修改。为了在缺省的情况下使新文件更安全,您可以改变 umask 设置: $ umask 0077umask 将确保组和其他用户对于新创建的文件绝对没有任何权限。那么,umask 怎样工作呢?与文件的“常规”权限不同,umask 指定应该关闭哪一个权限。我们来参阅一下我们的“模式到数字”映射表,从而使我们可以理解 0077 的 umask 的意思是什么: 模式 数字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使用该表,0077 的最后三位扩展为 ---rwxrwx。现在,请记住 umask 告诉系统禁用哪个权限。根据推断,我们可以看到将关闭所有“组”和“其他”权限,而“用户”权限将保留不动。
    介绍 suid 和 sgid
                            当您最初登录时,将启动一个新的 shell 进程。您已经知道,但是您可能还不知道这个新的 shell
                             进程(通常是 bash)使用您的用户标识运行。照这样,bash 程序可以访问所有属于您的文件和
                            目录。事实上,作为用户,我们完全依靠其它程序来代表我们执行操作。因为您启动的程序继承了
                            您的用户标识,因此它们不能访问任何不允许您访问的文件系统对象。
                            例如,一般用户不能直接修改 passwd 文件,因为“write”标志已经对除“root 用户”以外的每个用户关闭:
    $ ls -l /etc/passwd
                            -rw-r--r--    1 root     wheel        1355 Nov  1 21:16 /etc/passwd
                            但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd(至少间接地)。但是,如果用户不能修改该文件,究竟怎样完成这个工作呢?
                            Suid
                            幸好,Linux 权限模型有两个专门的位,叫做“suid”和“sgid”。当设置了一个可执行程序的“suid”这一位时,它将代表可执行文件的所有者运行,而不是代表启动程序的人运行。现在,回到 /etc/passwd 问题。如果看一看 passwd 可执行文件,我们可以看到它属于 root 用户:
                            $ ls -l /usr/bin/passwd
                            -rwsr-xr-x    1 root     wheel       17588 Sep 24 00:53 /usr/bin/passwd
                            您还将注意到,这里有一个 s 取替了用户权限三元组中的一个 x。这表明,对于这个特殊程序,设置了 suid 和可执行位。由于这个原因,当 passwd 运行时,它将代表 root 用户执行(具有完全超级用户访问权),而不是代表运行它的用户运行。又因为 passwd 以 root 用户访问权运行,所以能够修改 /etc/passwd 文件,而没有什么问题。
                            suid/sgid 告诫说明
                            我们看到了 suid 怎样工作,sgid 以同样的方式工作。它允许程序继承程序的组所有权,而不是当前用户的程序所有权。这里有一些关于 suid 和 sgid 的其它的但是很重要的信息。首先,suid 和 sgid 占据与 ls -l 清单中 x 位相同的空间。如果还设置了 x 位,则相应的位表示为 s(小写)。但是,如果没有设置 x 位,它将表示为 S(大写)。另一个很重要的提示:在许多环境中,suid 和 suid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。最好尽可能地少用“suid”程序。passwd 命令是为数不多的必须使用“suid”的命令之一。
                            改变 suid 和 sgid
                            设置和除去 suid 与 sgid 位相当简单。这里,我们设置 suid 位:
                            # chmod u+s /usr/bin/myapp
                            此处,我们从一个目录除去 sgid 位。我们将看到 sgid 位怎样影响下面几屏中的目录:
    # chmod g-s /home/drobbins
                            权限和目到此为止,我们从常规文件的角度来看权限。当从目录的角度看权限时,情况有一点不同。目录使用同样的权限标志,但是它们被解释为表示略微不同的含义。 对于一个目录,如果设置了“read”标志,您可以列出目录的内容;“write”表示您可以在目录中创建文件,“execute”表示您可以进入该目录并访问内部的任何子目录。没有“execute”标志,目录内的文件系统对象是不可访问的。没有“read”标志,目录内的文件系统对象是不可查看的,但是只要有人知道磁盘上对象的完整路径,就仍然可以访问目录内的对象。目录和 sgid如果启用了目录的“sgid”标志,在目录内创建的任何文件系统对象将继承目录的组。当您需要创建一个属于同一组的一组人使用的目录树时,这种特殊的功能很管用。只需要这样做:
    # mkdir /home/groupspace
                            # chgrp mygroup /home/groupspace
                            # chmod g+s /home/groupspace
                            现在,mygroup 组中的所有用户都可以在 /home/groupspace 内创建文件或目录,同样,他
                            们也将自动地分配到 mygroup 的组所有权。根据用户的 umask 设置,新文件系统对象对于
                            mygroup 组的其他成员来说,可以或不可以是可读、可写或可执行的。
                            目录和删除
                            缺省情况下,Linux 目录以一种不是在所有情况下都很理想的方式表现。一般来说,只要对一个
                            目录有写访问权,任何人都可以重命名或删除该目录中的文件。对于个别用户使用的目录,这种行
                            为是很合理的。
                            但是,对于很多用户使用的目录来说,尤其是 /tmp 和 /var/tmp,这种行为可能会产生麻烦。
                            因为任何人都可以写这些目录,任何人都可以删除或重命名任何其他人的文件 — 即使是不属于
                            他们的!显然,当任何其他用户在任何时候都可以输入“rm -rf /tmp/*”并损坏每个人的文
                            件时,很难把 /tmp 用于任何有意义的文件。
                            所幸,Linux 有叫做“粘滞位”(sticky bit)的东西。当给 /tmp 设置了粘滞位(用
                            chmod +t),唯一能够删除或重命名 /tmp 中文件的是该目录的所有者(通常是 root 用户)
                            、文件的所有者或 root 用户。事实上,所有 Linux 分发包都缺省地启用了 /tmp 的粘滞位,
                            而您还可以发现粘滞位在其它情况下也很管用。
                            难以理解的第一位
                            总结本章,我们最后来看一看数字模式的难以理解的第一位数。您可以看到,这个第一位数
                            用来设置 sticky、suid 和 sgid 位:
                            suid sgid sticky 模式数字 on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0
                            这里有一个怎样用 4 位数字模式来设置一个目录的权限的示例,该目录将由一个工作组使用:
                            # chmod 1775 /home/groupfiles
                            请想一想 1755 数字模式权限设置的含义。



    展开全文
  • Linux权限修改(详细)

    万次阅读 2019-01-08 22:15:17
    Linux权限修改(详细) 前言:本人最近在学Linux相关操作,虽然之前也有部署过自己的网站以及个人博客,但是对于Linux系统的基本操作终究只是知其然并不知其所以然,故特地学习。 基本权限查看 首先,当我们连接上...
  • linux权限数字详解

    千次阅读 2020-11-23 13:11:39
    linux权限数字详解 1、常用linux文件权限: 444 r–r--r– 600 rw------- 644 rw-r–r-- 666 rw-rw-rw- 700 rwx------ 744 rwxr–r-- 755 rwxr-xr-x 777 rwxrwxrwx 从左至右, 1-3位数字代表文件所有者的权限, 4-6...
  • linux权限详细介绍

    万次阅读 多人点赞 2018-12-26 10:09:17
    这些信息中包含了这个文件的权限信息和所有者以及所在组,还有该文件的大小,该文件最后修改的日期时间,文件名称等信息. 从左往右看, 第一个代表文件的类型, 如果是一个普通文件为"-", 如果是一个目录...
  • Linux权限管理

    千次阅读 2018-06-30 17:40:46
    1、ACL权限的简介与开启 Linux权限只有所属者,所属组和其他人,身份权限不够用,但是ACL权限可以解决这个问题,具体做法是找到这个人的id,赋予其权限即可。 查看分区的ACL权限是否开启: dumpe2fs -h /dev/sda3...
  • linux权限的设定

    千次阅读 2018-10-10 15:29:43
    文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作 为一个程序执行。文件被创建时,文件所有者自动拥有对该...
  • 一、文件基本权限 1-1.基本权限的修改 -rw-r--r--  - 第一个"-"表示文件类型(- 文件,d 目录,l 软链接文件)  - rw- r-- r--  u所有者 g所属组 o其它人 其中r读,w写,x执行 (1).chmod [选项] ...
  • linux权限之可操作性权限x

    千次阅读 2017-07-15 17:18:02
    Linux系统中,对于文件目录和文件权限都有rwx即读、写、操作权限,其中r为read,读权限,w为write,写权限,好理解。那么x 的execute操作权限该如何理解呢? 这里需要区分文件、目录和可执行脚本三类来查看:文件...
  • Linux权限设置方法

    千次阅读 2018-09-21 21:54:42
    修改某个目录下的所有文件的权限,包括子目录中的文件,例子如下: chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子...
  • Linux -- Linux权限对应的数字

    千次阅读 2018-02-06 08:28:14
    x=1 w=2 r=4 例: 在Linux中,对file.sh文件执行#chmod 645 file.sh中,该文件的权限是-rw-r--r-x 因为6是rw- 4是r-- 5是r-x
  • Linux权限控制的基本原理

    千次阅读 2017-06-03 12:05:36
    我们访问文件需要先取得相应的访问权限,而访问权限是通过LinuxLinux系统中的安全模型,我们需要知道下面两点 Linux系统上最初的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。后来又...
  • Linux权限位中的s、t

    万次阅读 2018-09-12 17:28:00
    一、UNIX下关于文件权限的表示方法和解析 SUID是Set User ID, SGID是Set GroupID的意思。 UNIX下可以用ls -l命令来看到文件的权限。用lis命令所得到的表示法的格式是类似这样的:-rwxr-xr-x。下面解释一下这些格式...
  •  Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。  Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。  Linux权限的粒度有 拥有...
  • linux 权限 命令777(755,750)

    千次阅读 2019-08-31 10:07:17
    chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。 一般是三个数字: chmod 750 “授权文件名” 第一个数字表示文件所有者的权限 第二个数字表示文件所有者同属一个用户组的...
  • linux权限drwxrwxrwx所代表的意义

    千次阅读 2020-12-02 10:25:22
    016575020@DESKTOP-F9IGROA MINGW64 /d/workspace/lake ...共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称 d :第一位表示文件类型  d 文件夹  - 普通文.
  • linux权限不够

    万次阅读 2016-02-24 16:52:06
    想操作某个目录,或者某个目录下的文件,提示权限不够; 最简单的方法:chmod 777 文件/文件夹名称 赋给所有用户这个文件/文件夹的读,写,看权限; 其他特别指定方法,请参照官方文档。
  • 1-3位数字代表文件所有者的权限, 4-6位数字代表同组用户的权限, 7-9数字代表其他用户的权限。 读取权限:等于4 用 r 表示 写入权限:等于2 用 w 表示 执行权限:等于1 用 x 表示 例如: 755 7: 4+2+1 rwx 所有...
  • Linux权限问题——Permission denied

    千次阅读 2019-03-09 19:38:25
    原因:没有权限进行读、写、创建文件、删除文件...sudo:是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具 -R:指目录里所有子目录和文件 777:指所有用户都拥有的最高权限 ...
  • Linux权限位及特殊(S位)

    千次阅读 2018-07-23 18:03:46
    一、UNIX下关于文件权限的表示方法和解析  SUID 是 Set User ID, SGID 是 Set Group ID的意思。   UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析...
  • 修改linux权限全部开放

    千次阅读 2017-07-26 13:53:59
    chmod 777 *.sh
  • 关于linux权限问题Permission denied.

    万次阅读 2018-08-22 21:30:20
    转自:[weixin_39523998]... 在linux下执行sh文件时提示下面信息: -bash: ./xx.sh: Permission denied 解决: chmod 777 xx.sh   Linux chmod +755和chmo...
  • linux=> Linux权限不够

    千次阅读 2015-12-16 16:00:30
    Linux权限不够 sudo su输入密码就行了
  • linux 权限rwxrwxrwx(4 2 1)详细说明

    千次阅读 2018-01-25 10:18:42
    1. 第一段表示文件所有者对此文件的操作权限 2. 第二段表示文件所有者所在组对些文件的操作权限 3. 第三段表示除上述两种外的任何用户/组对此文件的操作权限 r读取:4 w写入:2 x执行:1 加起来就...
  • 1.常用的linux文件权限:444 -r--r--r-- 600 -rw------- 644 -rw-r--r-- 666 -rw-rw-rw- 700 -rwx------ 744 -rwxr--r-- 755 -rwxr-xr-x 777 -rwxrwxrwx 注:使用ll命令查看文件/文件夹属性时候,一共有10列,第一个小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 810,263
精华内容 324,105
关键字:

linux权限

linux 订阅