8权限 linux_linux设置权限linux设置权限 - CSDN
  • Linux文件权限详解

    2018-12-30 19:57:00
    文章目录Linux文件权限详解一、文件权限二、修改文件访问权限的方法三、UMASK值四、三种特殊权限suid、sgid、sticky(sticky权限工作环境中相对常用)五、ACL访问控制列表六、文件权限操作的常用命令 Linux文件权限...

    文件权限

    Linux文件权限详解

    Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。

    一、文件权限

    1. 文件的权限针对三类对象进行定义

      owner 属主,缩写u

      group 属组,缩写g

      other 其他,缩写o

    2. 每个文件针对每类访问者定义了三种主要权限

      r:Read 读

      w:Write 写

      x:eXecute 执行

      另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)

      注意:root账户不受文件权限的读写限制,执行权限受限制

    3. 对于文件和目录来说,r,w,x有着不同的作用和含义:

      针对文件:

       r:读取文件内容
       
       w:修改文件内容
       
       x:执行权限对除二进制程序以外的文件没什么意义
      

      针对目录:目录本质可看做是存放文件列表、节点号等内容的文件

       r:查看目录下的文件列表
       
       w:删除和创建目录下的文件
       
       x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
      

      权限

    4. 用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。

    二、修改文件访问权限的方法

    • chmod 修改权限 change mode

      方法1:mode法

      格式:chmod who opt per file

        who:u g o a(all)
        
        opt:+ – =
        
        per:r w x X
      

      方法2:数字法

      格式:chmod XXX file

        rwx rw- r–	
        111 110 100
        7   6   4
        
        r:4
        w:2
        x:1
      

      例:chmod 764 file 给file文件添加 rwxrw-r– 权限

      chmod -R +X dir 给dir目录添加X执行权限,dir目录下文件不添加执行权限

      (如果dir目录下有文件已具备执行权限,则添加该文件执行权限)

    三、UMASK值

    作用:取消对应的权限,影响创建文件和目录的默认权限

    对目录:	umask+default=777(dir)
    
    对文件:666-umask:观察结果,如果有奇数,奇数位+1,偶数不变
    

    四、三种特殊权限suid、sgid、sticky(sticky权限工作环境中相对常用)

    1. suid

      作用:给一个用户继承二进制程序所有者拥有的权限

      suid权限位 位于所有者的执行权限位上,如果一个文件具有suid权限,则所有者执行位为s,文件表现为红色背景

       例:ll /usr/bin/passwd
       	-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
      
       给file文件增加suid权限
       
       	chmod u+s file
       	
       	chmod 4755 file               suid数字法表示为4
      

      注: suid只适合作用在二进制程序上

    2. sgid

      作用1:给一个用户继承二进制程序所有组拥有的权限

      sgid权限位 位于所有组的执行权限位,如果一个文件具有suid权限,则所有组的执行位为s,文件表现为黄色背景

      例:ll `which cat`
      	-rwxr-sr-x. 1 root root 48568 Mar 23  2017 /bin/cat
      
      给file文件增加sgid权限
      
      	chmod g+s file
      	
      	chmod 2755 file               sgid数字法表示为2
      

      作用2:作用在目录上时,使一个目录下的新建的文件继承目录的所属组

    3. sticky

      作用:作用于目录上,此目录的文件只能被所有者删除

      sticky权限位 位于其他的执行权限位上,如果一个文件具有sticky权限,则其他的执行位为t,目录表现为绿色背景

      如:ll -d /tmp
      	drwxrwxrwt. 17 root root 4096 Apr  4 10:02 /tmp
      
      给dir目录添加sticky权限
      
      	chmod o+t dir
      
      	chmod 1777 dir                sticky数字法表示为1
      

    五、ACL访问控制列表

    作用:实现更加灵活的权限管理,打破了三类用户的权限管理

    1. 添加ACL权限

      setfacl -m u:wang:0 file 使wang账户对指定file文件无权限
      
      setfacl -m u:mage:rw file       使mage账户对指定file文件有读写权限
      
      setfacl -m g:g1:rw file 使g1组对指定file文件有读写权限
      
      getfacl     file                     查看指定file文件的ACL权限
      

      ACL权限执行顺序类似于用户获取文件权限的顺序,getfacl顺序从上到下执行,一旦生效,下面的将不再生效(如果属于多个组,权限累加)

    2. 删除ACL权限

      setfacl -x u:wang file      删除wang账户对指定file文件的ACL权限
      
      setfacl -x g:g1 file   删除g1组对指定file文件的ACL权限
      
    3. ACL权限下的mask

      设置用户对指定文件所能拥有的最大权限(限高作用)
      
      setfacl -m mask::r file             使指定文件file所拥有的最大权限位读r
      
      setfacl -x mask::r file               取消指定文件file的最大权限限制mask
      
      setfacl -b f1                      取消f1文件所有的ACL权限
      

      ACL生效顺序:所有者、自定义用户、自定义组、其他人

    4. 备份和恢复ACL权限

      getfacl -R /tmp/dir1>acl.txt           将dir1目录下ACL权限备份
      
      setfacl -R –set-file=acl.txt /tem/dir      恢复dir1目录下ACL权限
      

    六、文件权限操作的常用命令

    • chown 设置文件所有者(普通用户无法修改文件所有者)

    • chgrp 设置文件所属组(普通用户要想该所属组,前提是文件所有者为自己,自己在所属组中)

    • chmod 设置指定文件权限

        -R     递归
        
        –reference=f1 f2 f3        参考f1文件权限设置f2,f3文件
      
    • chattr 给指定文件添加保护,避免root账户误操作

        +i      锁定文件,不能删除,不能改名,不能更改内容
        
        -i      解锁+i
        
        -a     锁定文件,不能删除,不能改名,但可追加内容(追加重定向)
        
        -a     解锁+a
        
        +A    指定文件读时间atime不再更改
      
    • lsattr 查看指定文件是否有锁定状态

    • setfacl 设置文件ACL权限

        -m mask::r file          使指定文件file所拥有的最大权限位读r
        
        -x mask::r file            取消指定文件file的最大权限限制mask
        
        -b f1                   取消f1文件所有的ACL权限
        
        -R –set-file=acl.txt /tem/dir   恢复dir1目录下ACL权限
      
    • getfacl 查看文件ACL权限

    展开全文
  • Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。 Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。 Linux权限的粒度有 拥有者 ...

    权限简介

    • Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
    • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
    • Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
    • Linux上通常使用chmod命令对文件的权限进行设置和更改。

    一、快速入门

    更改文件权限 (chmod命令)

    一般使用格式

    chmod [可选项] <mode> <file...>

    参数说明:
    
    [可选项]
      -c, --changes          like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
      -f, --silent, --quiet  suppress most error messages  (若该档案权限无法被更改也不要显示错误讯息)
      -v, --verbose          output a diagnostic for every file processed(显示权限变更的详细资料)
           --no-preserve-root  do not treat '/' specially (the default)
           --preserve-root    fail to operate recursively on '/'
           --reference=RFILE  use RFILE's mode instead of MODE values
      -R, --recursive        change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
           --help		显示此帮助信息
           --version		显示版本信息
    [mode] 
        权限设定字串,详细格式如下 :
        [ugoa...][[+-=][rwxX]...][,...],
    
        其中
        [ugoa...]
        u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
        [+-=]
        + 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
        [rwxX]
        r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
     	
    [file...]
        文件列表(单个或者多个文件、文件夹)

     范例:

    • 设置所有用户可读取文件 a.conf
    chmod ugo+r a.conf 
    或 
    chmod a+r  a.conf
    
    • 设置 c.sh 只有 拥有者可以读写及执行
    chmod u+rwx c.sh
    
    • 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
    chmod a+r,ug+w,o-w a.conf b.xml
    
    • 设置当前目录下的所有档案与子目录皆设为任何人可读写
    chmod -R a+rw *
    

    数字权限使用格式

    在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,

    如:

    rwx = 4 + 2 + 1 = 7

    rw = 4 + 2 = 6

    rx = 4 +1 = 5

    若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7

    若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6

    若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5

    上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :

    chmod <abc> file...

    其中
    a,b,c各为一个数字,分别代表User、Group、及Other的权限。
    相当于简化版的
    chmod u=权限,g=权限,o=权限 file...
    而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
    

    范例:

    • 设置所有人可以读写及执行
    chmod 777 file  (等价于  chmod u=rwx,g=rwx,o=rwx file 或  chmod a=rwx file)
    
    • 设置拥有者可读写,其他人不可读写执行
    chmod 600 file (等价于  chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )
    

    更改文件拥有者(chown命令)

    linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限,而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人。

    语法格式:

    chown [可选项] user[:group] file...

    使用权限:root
    
    说明:
    [可选项] : 同上文chmod
    user : 新的文件拥有者的使用者 
    group : 新的文件拥有者的使用者群体(group)
    

    范例:

    • 设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom
    chown tom:users file d.key e.scrt
    
    • 设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James
    chown -R James:users  *
    

    二、Linux权限详解

    Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。这也是Linux有别于Windows的机制,也是基于这个权限机制,Linux可以有效防止病毒自我运行,因为运行的条件是必须要有运行的权限,而这个权限在Linux是用户所赋予的。

    Linux的文件权限有以下设定:

    • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
    • Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。
    • 通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

    如果我们要表示一个文件的所有权限详情,有两种方式:

    • 第一种是十位二进制表示法,(三个属组每个数组使用一个二进制位,再加一个最高位共十位),可简化为三位八进制形式
    • 另外一种十二位二进制表示法(十二个二进制位),可简化为四位八进制形式

    十位权限表示

    常见的权限表示形式有:

    -rw------- (600)      只有拥有者有读写权限。
    -rw-r--r-- (644)      只有拥有者有读写权限;而属组用户和其他用户只有读权限。
    -rwx------ (700)     只有拥有者有读、写、执行权限。
    -rwxr-xr-x (755)    拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
    -rwx--x--x (711)    拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
    -rw-rw-rw- (666)   所有用户都有文件读、写权限。
    -rwxrwxrwx (777)  所有用户都有读、写、执行权限。
    

    后九位解析: 我们知道Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位。 上面我们用字符表示权限,其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限。

    实际上,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,如果我们将各个位置权限的有无用二进制数 1和 0来代替,则只读、只写、只执行权限,可以用三位二进制数表示为

    r-- = 100
    -w- = 010
    --x = 001
    --- = 000
    

    转换成八进制数,则为 r=4, w=2, x=1, -=0(这也就是用数字设置权限时为何是4代表读,2代表写,1代表执行)

    实际上,我们可以将所有的权限用二进制形式表现出来,并进一步转变成八进制数字:

    rwx = 111 = 7
    rw- = 110 = 6
    r-x = 101 = 5
    r-- = 100 = 4
    -wx = 011 = 3
    -w- = 010 = 2
    --x = 001 = 1
    --- = 000 = 0
    

    由上可以得出,每个属组的所有的权限都可以用一位八进制数表示,每个数字都代表了不同的权限(权值)。如 最高的权限为是7,代表可读,可写,可执行。

    故 如果我们将每个属组的权限都用八进制数表示,则文件的权限可以表示为三位八进制数

    -rw------- =  600
    -rw-rw-rw- =  666
    -rwxrwxrwx =  777
    

    关于第一位最高位的解释: 上面我们说到了权限表示中后九位的含义,剩下的第一位代表的是文件的类型,类型可以是下面几个中的一个:

    d代表的是目录(directroy)
    -代表的是文件(regular file)
    s代表的是套字文件(socket)
    p代表的管道文件(pipe)或命名管道文件(named pipe)
    l代表的是符号链接文件(symbolic link)
    b代表的是该文件是面向块的设备文件(block-oriented device file)
    c代表的是该文件是面向字符的设备文件(charcter-oriented device file)
    

    十二位权限(Linux附加权限)

    附加权限相关概念

     

    linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限,叫做Linxu附加权限。包括 SET位权限(suid,sgid)和粘滞位权限(sticky)。

     

    SET位权限:

    suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。 一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。在许多环境中,suid 和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。(passwd 命令是为数不多的必须使用“suid”的命令之一)。

    • suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。
    • sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了。

    SET位权限表示形式(10位权限):

    如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了suid还设置了x(执行)位,则相应的执行位表示为s(小写)。但是,如果没有设置x位,它将表示为S(大写)。如:

    1、-rwsr-xr-x 表示设置了suid,且拥有者有可执行权限
    2、-rwSr--r-- 表示suid被设置,但拥有者没有可执行权限
    3、-rwxr-sr-x 表示sgid被设置,且群组用户有可执行权限
    4、-rw-r-Sr-- 表示sgid被设置,但群组用户没有可执行权限
    

    设置方式:

    SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):

    chmod u+s filename 	设置suid位
    chmod u-s filename 	去掉suid设置
    chmod g+s filename 	设置sgid位
    chmod g-s filename 	去掉sgid设置
    

    粘滞位权限:

     

    粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。 使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。

    粘滞位权限表示形式(10位权限):

    一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上。如果文件设置了sticky还设置了x(执行)位,其他组用户的权限的可执行位为t(小写)。但是,如果没有设置x位,它将表示为T(大写)。如:

    1、-rwsr-xr-t 表示设置了粘滞位且其他用户组有可执行权限
    2、-rwSr--r-T 表示设置了粘滞位但其他用户组没有可执行权限
    

    设置方式:

    sticky权限同样可以通过chmod命令设置:

    chmod +t <文件列表..>

    十二位的权限表示方法

    附加权限除了用十位权限形式表示外,还可以用用十二位字符表示。

    11 10 9 8 7 6 5 4 3 2 1 0
    S  G  T r w x r w x r w x
    

    SGT分别表示SUID权限、SGID权限、和 粘滞位权限,这十二位分别对应关系如下:

    第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位(后九位)。

    在这十二位的每一位上都置值。如果有相应的权限则为1, 没有此权限则为0。

    -rw-r-sr-- 的值为: 0 1 0  1 1 0  1 0 0  1 0 0
    -rwsr-xr-x 的值为: 1 0 0  1 1 1  1 0 1  1 0 1
    -rwsr-sr-x 的值为: 1 1 0  1 1 1  1 0 1  1 0 1 
    -rwsr-sr-t 的值为: 1 1 1  1 1 1  1 0 1  1 0 1
    

    如果将则前三位SGT也转换成一个二进制数,则

    • suid 的八进制数字是4
    • sgid 的代表数字是 2
    • sticky 位代表数字是1

    这样我们就可以将十二位权限三位三位的转化为4个八进制数。其中

    • 最高的一位八进制数就是suid,sgdi,sticky的权值。
    • 第二位为 拥有者的权值
    • 第三位为 所属组的权值
    • 最后一位为 其他组的权值

    附加权限的八进制形式

     

    通过上面,我们知道,正常权限和附加权限可以用4位八进制数表示。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)

    chmod <abc> file...

    我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限。

    chmod <sabc> file...

    其中s是表示附加权限的把八进制数字,abc与之前一致,分别是对应User、Group、及Other(拥有者、群组、其他组)的权限。因为SUID对应八进制数字是4,SGID对于八进制数字是2,则“4755”表示设置SUID权限,“6755”表示同时设置SUID、SGID权限。

    我们进一步将上小节的例子中的二进制数转变为八进制表示形式,则

    -rw-r-sr-- = 0 1 0 1 1 0 1 0 0 1 0 0 = 2644 
    -rwsr-xr-x = 1 0 0 1 1 1 1 0 1 1 0 1 = 4755
    -rwsr-sr-x = 1 1 0 1 1 1 1 0 1 1 0 1 = 6755
    -rwsr-sr-t = 1 1 1 1 1 1 1 0 1 1 0 1 = 7755
    

    对比范例:

    • 设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行
    chmod 755 netlogin
    
    
    • 设置 netlogin 的权限为拥有者可读写执行,群组和其他权限为可读可执行,并且设置suid
    chmod 4755 netlogin

    chmod 4755与chmod 755对比多了附加权限值4,这个4表示其他用户执行文件时,具有与所有者同样的权限(设置了SUID)。

    为什么要设置4755 而不是 755? 
    假设netlogin是root用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。但假如netlogin执行时需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。

     

    展开全文
  • 文件夹权限问题 ...很多人开始接触Linux时都很头痛Linux的文件权限问题。这里告诉大家如何修改Linux文件-文件夹权限。以主文件夹下的一个名为cc的文件夹为例。 下面一步一步介绍如何修改权限: 1.打开
     
    

    文件夹权限问题

    Linux、Fedora、Ubuntu修改文件、文件夹权限的方法差不多。很多人开始接触Linux时都很头痛Linux的文件权限问题。这里告诉大家如何修改Linux文件-文件夹权限。以主文件夹下的一个名为cc的文件夹为例。 下面一步一步介绍如何修改权限: 1.打开终端。输入su(没

     

    Linux、Fedora、Ubuntu修改文件、文件夹权限的方法差不多。很多人开始接触Linux时都很头痛Linux的文件权限问题。这里告诉大家如何修改Linux文件-文件夹权限。以主文件夹下的一个名为“cc”的文件夹为例。

    下面一步一步介绍如何修改权限:
    1.打开终端。输入”su”(没有引号)

    2.接下来会要你输入密码,输入你的root密码。

    3.假设我的文件夹在主目录里,地址为  /var/home/dengchao/cc  。假设我要修改文件权限为777,则在终端输入  chmod  777 /var/home/userid/cc

    文件夹的权限就变为了777。

    如果是修改文件夹及子文件夹权限可以用  chmod -R 777 /var/home/userid/cc

    具体的权限(例如777的含意等)在下面解释下:
    1.777有3位,最高位7是设置文件所有者访问权限,第二位是设置群组访问权限,最低位是设置其他人访问权限。

    其中每一位的权限用数字来表示。具体有这些权限:

    r(Read,读取,权限值为4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。

    w(Write,写入,权限值为2):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

    x(eXecute,执行,权限值为1):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

    2.首先我们来看如何确定单独一位上的权限数值,例如最高位表示文件所有者权限数值,当数字为7时,7用“rwx”表示–{4(r)+2(w)+1(x)=7}–

    又如果数值为6,则用“rw-”表示–{4(r)+2(w)+0(x)=6}–,”-”表示不具备权限,这里表示不具备“执行”权限。

    假如我们设定其他用户的访问权限为 “r–”,则数值为4+0+0=4

    一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则用1表示,没有则有0表示,那么rwx则可以表示成为:111

    而二进制的111就是7。

    3.我们再来看下怎么确定3个数位上的权限。假如我们要给一个文件设置权限,具体权限如下:

    文件所有者有“读”、“写”、“执行”权限,群组用户有“读”权限,其他用户有“读”权限,则对应的字母表示为”rwx r– r–“,对应的数字为744

    一般都是最高位表示文件所有者权限值,第二位表示群组用户权限,最低位表示其他用户权限。

    下面来举些例子熟悉下。

    权限

    数值

    rwx rw- r–

    764

    rw- r– r–

    644

    rw- rw- r–

    664

    具体linux修改文件夹-文件目录权限就是这样设置的了.

    chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    1. 文字设定法

    语法:chmod [who] [+ | - | =] [mode] 文件名

    命令中各选项的含义为:

    操作对象who可是下述字母中的任一个或者它们的组合:
      u 表示“用户(user)”,即文件或目录的所有者。
      g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
      o 表示“其他(others)用户”。
      a 表示“所有(all)用户”。它是系统默认值。
    操作符号可以是:
      + 添加某个权限。
      - 取消某个权限。
      = 赋予给定权限并取消其他所有权限(如果有的话)。
    设置 mode 所表示的权限可用下述字母的任意组合:
      r 可读。
      w 可写。
       x 可执行。
      X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
      s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
          方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
      t 保存程序的文本到交换设备上。
      u 与文件属主拥有一样的权限。
      g 与和文件属主同组的用户拥有一样的权限。
      o 与其他用户拥有一样的权限。
    文件名:以空格分开的要改变权限的文件列表,支持通配符。

      

    在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:

    chmod g+r,o+r example  % 使同组和其他用户对文件example 有读权限。

    2. 数字设定法

    我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限, 2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

    例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

    数字设定法的一般形式为:

    语法:chmod [mode] 文件名

    指令实例:

    chmod a+x sort   
    % 即设定文件sort的属性为:
     文件属主(u) 增加执行权限
     与文件属主同组用户(g) 增加执行权限
     其他用户(o) 增加执行权限
     
    chmod ug+w,o-x text
    % 即设定文件text的属性为:
     文件属主(u) 增加写权限
     与文件属主同组用户(g) 增加写权限
     其他用户(o) 删除执行权限
     
    chmod u+s a.out
    % 假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
     –rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
     并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw-------”,
      即该文件只有其属主具有读写权限。
       当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod
      命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为
      其他人不具备任何权限),这就是s的功能。
      因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非
      必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。
     
    chmod a–x mm.txt
    chmod –x mm.txt
    chmod ugo–x mm.txt
    % 以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。
     
    $ chmod 644 mm.txt
    % 即设定文件mm.txt的属性为:-rw-r--r--
     文件属主(u)inin 拥有读、写权限
     与文件属主同组人用户(g) 拥有读权限
     其他人(o) 拥有读权限
     
    chmod 750 wch.txt
    % 即设定wchtxt这个文件的属性为:-rwxr-x---
     文件主本人(u)inin 可读/可写/可执行权
     与文件主同组人(g) 可读/可执行权
     其他人(o) 没有任何权限

     

     

     

     

     

    linux下搭建FTP服务器

    *************FTP文件说明*********************
    本FTP服务器软件包为vsftpd-2.3.4-1.fc14.i686.rpm
    FTP客户端软件包为ftp-0.17-51.fc12.i686.rpm
    1、vsftpd不再由xinetd控制;
    2、FTP使用port 21发起连接,使用port 20进行数据传输;
    3、vsftpd配置文件:    /etc/vsftpd/vsftpd.conf         #主配置文件
                /etc/vsftpd/vsftpd/ftpusers     #拒绝该文件中列出的用户登录FTP
                /etc/vsftpd/vsftpd/user_list    #默认同ftpusers相同
    4、查看/etc/passwd文件,可以看到FTP默认的共享目录路径为/var/ftp;
    5、FTP日志文件:/var/log/xferlog
    6、相关软件包:tcp_wrappers、ip_conntrack_ftp、ip_nat_ftp
        (这3个软件包是教材上列出的,我没有测试过其用途,有兴趣的朋友可以研究一下)
    7、启动和停止vsftp指令:
    #service vsftpd start       //启动vsftpd服务
    #service vsftpd stop        //停止vsftpd服务
    #service vsftpd restart     //重启vsftpd服务,每次更改FTP相关配置后,一定要用该命令重启vsftpd服务
    #chkconfig vsftpd on        //使vsftpd服务开机启动。(可选操作)
    8、注意SElinux的安全性质:
    一般SElinux是被强行启用的,对许多服务都默认有权限控制,如果在我们对FTP服务器测试时碰到一些莫名奇妙的错误时,可以关闭SElinux,
    也可以仅关闭SElinux对FTP服务的保护设置;
    #sestatus         //查看当前系统SElinux是否开启
    如果开启了,则打开/etc/selinux/config文件,编辑:将SELINUX=enforcing改成SELINUX=disabled,并把SELINUXTYPE=targeted注释掉!

    或者#setsebool -P ftpd_disable_trans 1     //仅关闭SELinux对FTP的保护
    *************FTP权限需求**********************
    a.允许匿名用户登录;
    b.允许匿名用户上传和下载资料(拒绝覆盖已有资料);
    c.允许本地用户登录;(注意SElinux的影响)
    d.FTP共享目录/var/ftp/
    e.拒绝匿名用户创建新文件或者文件夹;
    f.使登录用户可以下载共享资料
    ============================================================================

    1、查询本机是否已经安装ftp-server和ftp-client;
    #rpm -qa vsftpd
    #rpm -qa ftp

    2、如果没有安装,则下载相应软件包,或者yum在线安装;
    #yum install vsftpd     //ftp服务器软件包
    #yum install ftp        //ftp客户端软件包

    3、编辑/etc/vsftpd/vsftpd.conf
    anonymous_enable=YES      //允许匿名用户登录

    local_enable=YES          //允许本地用户登录

    write_enable=YES          //允许登录到FTP的用户执行写操作

    local_umask=022
    anon_umask=077            //匿名用户上传的文件权限都会进行umask的计算,变成-rw- --- ---

    anon_upload_enable=YES    //允许匿名用户上传文件

    xferlog_file=/var/log/vsftpd.log     //FTP服务器日志文件默认路径

    ftpd_banner=***********Welcome to My FTP Server***********

    4、开启vsftpd服务
    #service vsftpd start

    5、在FTP共享目录下建立文件夹
    #mkdir /var/ftp/pub              //用于存放共享文件资料
    #mkdir /var/ftp/incoming         //用于存放匿名用户上传的资料

    #ls -l /var/ftp/
    drwxr-xr-x. 2 root root 4096  5月  8 14:13 incoming
    drwxr-xr-x. 2 root root 4096  5月  8 14:15 pub
    //新创建的文件夹默认归属于root用户和用户组,需要更正!

    #chown ftp.ftp /var/ftp/incoming       //改为所属用户为ftp,用户组为ftp组
    #chown ftp.ftp /var/ftp/pub
    #ls -l /var/ftp
    drwxr-xr-x. 2 ftp ftp 4096  5月  8 14:13 incoming
    drwxr-xr-x. 2 ftp ftp 4096  5月  8 14:15 pub

    6、登录到FTP服务器
    #ftp 127.0.0.1
    Connected to 127.0.0.1 (127.0.0.1).
    220 ************Welcome to My FTP Server*************.
    Name (127.0.0.1:root): ftp                //这里的登录用户名输入ftp或者anonymous或者本地有效账户名
    331 Please specify the password.
    Password:                                 //匿名登录时,直接回车
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>

    还有一种方法也可以登录到FTP服务器:打开火狐浏览器,输入ftp://127.0.0.1,即可匿名登录;
    7、允许登录用户下载/var/ftp/pub中的文件资料
    使用管理员帐号:
    #chmod +r /var/ftp/pub/*          //修改pub目录下文件的读权限

    展开全文
  • 三、Linux 文件权限首先来查看一下当前目录下的文件内容吧ls -l 查看当前目录下的文件列表 ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件我们可以看到文件的权限,-rw-rw-r-- ,一共有10位数。其中: 最前面...
    三、Linux 文件权限


    首先来查看一下当前目录下的文件内容吧

    ls -l    查看当前目录下的文件列表
    ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件


    我们可以看到文件的权限-rw-rw-r--  ,一共有10位数。

    其中: 最前面那个 - 代表的是类型(详细如下面贴图所示)
    中间那三个 rw- 代表的是所有者(user)
    然后那三个 rw- 代表的是组群(group)
    最后那三个 r-- 代表的是其他人(other)
    然后我再解释一下后面那9位数:
    r 表示文件可以被读(read)
    w 表示文件可以被写(write)
    x 表示文件可以被执行(如果它是程序的话)

    - 表示相应的权限还没有被授予

    文件和文件夹操作权限:

    权限简写对普通文件的作用对文件夹的作用
    读取r查看文件内容列出文件夹中的文件(ls)
    写入w修改文件内容在文件夹中删除、添加或重命名文件(夹)
    执行x文件可以作为程序执行cd 到文件夹
    图解:



    需要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。

    补充:

    特殊权限SUID、SGID、Sticky
    在 linux 系统中还有三种与用户身份无关的三个文件权限属性。即SUID、SGID和Sticky。
    SUID(Set User ID, 4):
    该属性只对有执行权限的文件有效,对目录无效。执行具有SUID权限的程序时,引发的进程的所有者是程序文件的所有者,而不是启动程序的用户(除非二者是同一个人)。比如,如果一个程序的所有者是root且具有SUID属性,一个普通用户执行此程序时,如同root执行此程序一样。(请注意该属性对Shell脚本程序无效)该属性为一些特殊程序(如lpr)的启动带来了方便。但有时也带来了安全隐患:比如一个具有SUID属性的程序如果在执行时运行了一个shell,那么用户可以籍此得到系统的最高权限。SUID可用s表示,如:
    $ ls -l /usr/bin/passwd
    -rwsr-xr-x 1 root root 47032 Feb 16  2014 /usr/bin/passwd

    SGID(Set Group ID, 4):
    对于可执行文件,SGID与SUID类似,引发的进程的所有组是程序文件所属的组。对于目录,SGID属性会使目录中新建文件的所属组与该目录相同。SGID也可以用s表示,如:
    $ ls -l /var
    drwxrwsr-x  2 root staff    4096 Apr 10  2014 local
    drwxrwxr-x 15 root syslog   4096 Apr  4 19:57 log
    Sticky, 1:
    仅对目录有效。带sticky属性的目录下的文件或目录可以被其拥有者删除或改名。常利用sticky属性创建这样的目录:组用户可以在此目录中创建新文件、修改文件内容,但只有文件所有者才能对自己的文件进行删除或改名。如系统中的/tmp文件夹。在属性字符串中,通常用t表示。
    $ ls -l /
    drwxrwxrwt   8 root root  4096 Apr  4 23:57 tmp


    修改文件和文件夹对应用户的操作权限

    如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:

    方式一:二进制数字表示


    每个文件的三组权限:
    u 代表所有者(user
    g 代表所有者所在的组群(group
    o 代表其他人,但不是u和g (other
    a 代表全部的人,也就是包括u,g和o
    根据上图,其中:rwx也可以用数字来代替
    r ------------4
    w -----------2
    x ------------1
    - ------------0

    当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
      -rw------- (600) 只有所有者才有读和写的权限
      -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
      -rwx------ (700) 只有所有者才有读,写,执行的权限
      -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
      -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
      -rw-rw-rw- (666) 每个人都有读写的权限
      -rwxrwxrwx (777) 每个人都有读写和执行的权限

    上实际操作

    查看了test的权限,是所有者拥有读、写、执行的权限:


    然后向文件里添加了些内容,更改了下权限(700:-rwx------),并尝试在shiyanlou(所有者)下读取文件,可以读取。


    更换到其他用户Peter,如下图再尝试读取,显示是权限不够,无法读取。



    方式二:加减赋值操作

    u 代表所有者(user)
    g 代表所有者所在的组群(group)
    o 代表其他人,但不是u和g (other)

    a 代表全部的人,也就是包括u,g和o

    + 和 - 分别表示增加和去掉相应的权限。+号一般不显示(初学练手时我还是会加上)

    在终端输入:
    chmod o+w xxx.xxx
    chmod o w xxx.xxx         表示给其他人授予xxx.xxx这个文件的权限

    chmod go-rw xxx.xxx      表示删除xxx.xxx中组群和其他人的读和写的权限
    chmod ug-r xxx.xxx




    修改文件或文件夹的拥有者/所属的组

    使用命令chown改变目录或文件的所有权(所有者/组)

    注释:这里说的断断续续的,将在学习下一个内容(用户/组 增删改查)之后补充

    文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。
    我们先执行ls -l看看目录情况:

    可以看到test文件的所属用户组为root所有者为root
    执行下面命令,把上图中test文件的所有权转移到用户peter:
    # chown peter test


    改变所属组,将test文件从root组中转移到组Peter中,可使用下面命令:
    # chown :peter test


    将所属的用户和组一起更改
    将文件夹或文件test的拥有者修改成shiyanlou,所属的组修改成shiyanlou,如下图:


    展开全文
  • Linux下更改文件权限

    2019-04-10 10:11:40
    目录 查看文件权限 修改文件权限 查看文件权限 查看文件权限可以通过ls -l命令查看,如下所示: ...如果只想查看某一个...在linux下,文件权限分为三种:可读权限(read)、可写权限(write)以及可执行权限(execut...
  • Linux的文件基本权限有9个,分别是owenr、group、others三种身份各自有自己的r、w和x,比如“rwxrwxrwx”,就表示owener具有r、w、x权限,同样group和others同样具有r、w、x权限,可以用xftp查看文件权限 ...
  • Linux系统中,对于文件目录和文件权限都有rwx即读、写、操作权限,其中r为read,读权限,w为write,写权限,好理解。那么x 的execute操作权限该如何理解呢? 这里需要区分文件、目录和可执行脚本三类来查看:文件...
  • Linux权限详解。

    2018-06-09 14:21:11
    在理解权限之前我们要知道linux中的用户组:在Linux中每个用户都属于一个组,Linux中每个文件都都有所有者、所有组、其他组。这几个概念我们可以用现实中的例子来理解。比如说你有一本书,那么你就是这本书的所有者...
  • Linux读写权限解析

    2018-09-10 10:32:22
     当我们操作linux系统的中的某些文件时候可能会遇到权限不够的问题,那么文件的读写权限是什么,又是怎么分化的呢?当我们想查看权限的时候可以通过“ll”指令了解,比如:  以Documents目录的权限来解说,...
  • Linux查看文件的权限

    2018-07-13 10:25:30
    Linux查看权限命令:ls -l 文件或文件夹
  • Linux权限修改(详细) 前言:本人最近在学Linux相关操作,虽然之前也有部署过自己的网站以及个人博客,但是对于Linux系统的基本操作终究只是知其然并不知其所以然,故特地学习。 基本权限查看 首先,当我们连接上...
  • 系统环境:Centos6.5 ...Linux系统下,为了安全,一般来说我们操作都是在普通用户下操作,但是有时候普通用户需要使用root权限,比如在安装软件的时候。这个时候如果我们切回root用户下效率就会比较低,...
  • 整理下Linux文件权限相关知识 一、查看文件夹或文件的可读可写权限: ls -l 文件夹 解析“drwxrwxrwx”,这个权限说明一共10位。 第一位代表文件类型,有两个数值:“d”和“-”,“d”代表目录,“-”...
  • 数字表示权限A、B、C、这三个数字如果各自转换为由“0”、“1”组成的二进制,则二进制数的每一位分别代表一个角色的读、写、运行的权限。“1”:表示允许。 “0”表示不允许。(俗话讲)比如User(A)组的权限: 可度...
  • Linux文件夹权限

    2019-01-09 09:43:21
      由上篇博客我们可以知道,文件的权限控制着文件可读可写可执行,但是大家看完上篇博客有没有发现一个问题,文件夹也是有[rwx]这三个权限的,难道文件夹给它一个x权限也可执行?这显然是不可能的,下面我们就来看...
  • 1、linux操作系统用户及用户组Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux权限;每当我们使用用户名登录操作系统时,linux都会对该用户...
  • 目录 一:用户和组信息的查看 查看用户信息 ... 查看组信息 特殊组wheel ...三:文件权限 ...文件权限的查看 ...文件权限的修改 ...ACL控制权限setfacl 、getfacl ...四:Linux中的sudo、sudo -i...相关文章:Linux用户方面的加固...
  • 可以参考这篇文章 传送门方法分为永久性获取root权限以及非永久性获取Root权限 非永久性获取Root权限可以在我们要键入的命令之前加上sudo前缀。如我们要键入的命令是: rm ,以Root用户执行的方式就是: sudo rm ...
  • Linux的777权限

    2019-04-27 17:12:39
    Linux的每个文件一般都有三个权限 r--读,w--写,x--执行,其分别对应的数值为4,2,1。 输入ll可以查看到文件的权限。 聪明的同学已经看出来了——7即代表有读、写和执行的权限。那么为什么是三个7呢?“三”是...
  • Linux系统下操作时,执行某些命令需要用到root权限,而当前登录的只是普通用户,如何能够不使用root用户密码,而又能执行root权限的命令呢?有两种临时方法: 一、sudo su 执行后按提示输入当前用户的...
1 2 3 4 5 ... 20
收藏数 677,736
精华内容 271,094
关键字:

8权限 linux