zoukankan      html  css  js  c++  java
  • linux用户及权限

    字母分析

    u           即文件或目录的拥有者;

    g           即文件或目录的所属群组;

    o           其他用户;

    a           所有用户(默认);

    r           读取,数字代号为“4”;

    w          写入,数字代号为“2”;

    x           执行或切换,数字代号为“1”;

    -           不具任何权限,数字代号为“0”;

    s           特殊功能说明:变更文件或目录的权限。

    用户及组管理

    id user1     #查看用户user1
    useradd user1    #创建新用户user1,useradd命令用于Linux中创建的新的系统用户账号,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

    passwd user1     #设定user1的用户密码

    userdel -r user1   #删除用户user1
    gpasswd -a user1 root      #把用户user1加入root组
    gpasswd -d user1 root     #把root组中用户user1删除

    groupadd mysql         #创建mysql用户组

    su命令——用户切换

    格式:su 【options】 【用户名】       

    options如下:

    -              用户想要切换到root

    -l             后面可以接用户名,可使用变换身份者的所有相关环境设置文件

    -m           使用当前环境设置,而不重新读取新用户的设置文件

    -c             仅进行一次命令,所以-c后面可以加命令

    ls命令查看文件权限

    格式:ls(选项)(参数)                

    终端输入:ls -l shell.text

    显示:-rw-r--r-- 1 root root 0 Oct 19 12:21 shell.txt

    注释:红色部分代表:所有者,rw(读写)权限。

             黄色部分代表:所属组,r(只读)的权限。

             蓝色部分代表:其他用户,r(只读)的权限。

    chmod修改文件权限

    chmod u+x file                       给file的属主增加执行权限
    chmod 751 file                    给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
    chmod u=rwx,g=rx,o=x file            上例的另一种形式
    chmod =r file                       为所有用户分配读权限
    chmod -R u+r directory              递归地给directory目录下所有文件和子目录的属主分配读的权限
    chmod 4755                            设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。
     
    文件ACL,访问控制列表
    传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x),随着应用的发展,这些权限组合已不能适应现在复杂的文件系统权限控制要求。(对于一个文件,有一个用户不是所有者、也不在所有者组,然后单独给他设置权限,而不影响 其他用户)
     例如,目录data的权限为:drwxr-xr—x,所有者与所属组均为root,在不改变所有者和所属组的前提下,要求用户test对该目录有完全访问权限(rwx),但又不能让其他有用完全权限(rwx),这种情况就只能使用acl访问控制列表权限来控制了。
     
    命令:
    getfacl:查看文件或目录的ACL设定内容
    setfacl:设置文件或目录的ACL内容
     
    命令格式:
    # setfacl  [选项]  要修改的权限  文件
     
    命令选项:
    -m :添加acl参数
    -x :删除acl参数
    -b :删除所有的ACL设定参数
    -R :递归设置acl参数
     
    设置格式如下
    # setfacl -m u:test:rw 1.txt          --为文件1.txt设置test用户可读写的acl权限
    # mkdir /test/a -p
    # cd /test
    # touch 1.txt
     # ll
    总用量 0
    -rw-r--r-- 1 root root 0 7月   8 21:41 1.txt
    drwxr-xr-x 2 root root 6 7月   8 21:39 a
     
    开启另一个终端,并切换之test用户测试1.txt是否可写
     
    设置用户ACL权限
    # setfacl -m u:user1:rwx 1.txt          --多个用户用逗号隔开
     
    查看设置后的权限
    # getfacl 1.txt
    # file: 1.txt
    # owner: root
    # group: root
    user::rw-
    user:test:rwx          --这里可以看到刚刚设置的acl权限
    group::r--
    mask::rwx
    other::r--
     
     
     
    设置ACL的mask          (mask 掩码:允许的最高acl权限)                   
    # setfacl -m m::r 1.txt
     
    查看1.txt的权限和之前有什么不同
    # file: 1.txt
    # owner: root
    # group: root
    user::rw-
    user:test:rwx               #effective:r--          --这里会有一个警告,因为acl的权限大于了掩码的最高权限,此时的test用户依旧不可写
    group::r--
    mask::r--
    other::r--
     
     
    为目录设置默认ACL权限,设置后,在该目录内创建的文件依然继承该acl
    # setfacl -m d:user1:rw a/
    # mkdir b
     
    # touch b/1.txt
     
    # touch a/1.txt
     
    # getfacl a/1.txt
     
    # file: a/1.txt
    # owner: root
    # group: root
    user::rw-
    user:test:rw-
    group::r-x               #effective:r--
    mask::rw-
    other::r--
     
    # getfacl b/1.txt
    # file: b/1.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
     
     
    删除ACL权限
    # setfacl -x u:user1 1.txt
    # setfacl -b 1.txt
     
    递归设置acl参数
    # mkdir /test/b
    # touch /test/b/1.txt
     
    # setfacl -m u:user1:rw /test/b
    # getfacl /test/b
    # file: b/
    # owner: root
    # group: root
    user::rwx
    user:user1:rw-
    group::r-x
    mask::rwx
    other::r-x
     
    # getfacl /test/b/1.txt
    # file: b/1.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
     
    # setfacl -Rm u:user1:rw /test/b               递归设置acl权限后,目录下所有内容均会拥有相同的acl权限
    # file: b/1.txt
    # owner: root
    # group: root
    user::rw-
    user:user1:rw-
    group::r--
    mask::rw-
    other::r--
     
  • 相关阅读:
    假脱机技术
    HTTP报文
    字符串转换成浮点数的方法
    表变量与临时表空间
    规范浮点数
    什么是批处理
    浅谈性能测试、压力测试和负载测试
    关于CSDN的一个安全漏洞
    HttpWatch7.0测试工具
    vbscript能做什么
  • 原文地址:https://www.cnblogs.com/lanchang/p/6537458.html
Copyright © 2011-2022 走看看