zoukankan      html  css  js  c++  java
  • Linux用户操作及权限

    Linux入门之 用户操作及权限

      在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分。每个级别在公司的职责不同,权限也不同。在Linux操作系统中也一样,不同的用户身份拥有着不同的功能与权限。


    Linux用户的分类


    超级管理员: UID为0 root用户拥有至高无上的命令,root用户不能改名

    系统用户:UID小于1000,用于管理服务,一般不允许登陆

    普通用户:UID大于或等于1000,权限较小,允许登陆,只能使用bin下命令


    1.用户创建,删除,修改

    useradd命令

     useradd - create a new user or update default new user information
    
    -c,  --comment  描述
    -d,  --home HOME_DIR 家目录
    -e, --expiredate EXPIRE_DATE  过期时间
    -f, --inactive INACTIVE 是否启用过期机制
    -g, --gid GROUP   指定组ID号
    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  附加组
    -m, --create-home     建立家目录           
    -M,                    不建立家目录
               Do not create the user′s home directory, even if the system wide
               setting from /etc/login.defs (CREATE_HOME) is set to yes.
    
    -N, --no-user-group 不指定用户同名组
    -r, --system    指定该帐号是系统帐号
    -s, --shell SHELL  指定登录shell
    -u, --uid UID   指定用户ID号
    -U, --user-group 指定用户创建用户同名组
    -o, --创建用户是可以uid重复
    
    

    usermod命令

    usermod - modify a user account
    -a, --append
    -L, --lock
    -U, --unlock
    -m, --move-home with -d
    

    userdel命令

    userdel - delete a user account and related files
    -f, --force
    -r, --remove 删除主目录及邮箱
    

    change命令

    chage
    -h, --help    display this help message and exit
    -m, 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
    -M, 密码保持有效的最大天数。
    -W, 用户密码到期前,提前收到警告信息的天数。
    -E, 帐号到期的日期。过了这天,此帐号将不可用。
    -d, 上一次更改的日期    如果设置为0 用户下次登录必须改密码
    -i, 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
    -l, 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
    

    who命令

      who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。而who am i 命令将列出使用该命令的当前用户的相关信息。例如:

    [root@localhost ~]# who
    root     :0           2019-10-10 07:59 (:0)
    root     pts/0        2019-10-10 07:59 (:0)
    root     pts/1        2019-10-10 07:59 (:0)
    
    [root@localhost ~]# who am i
    root     pts/1        2019-10-10 07:59 (:0)
    

    2.密码设置及密码文件

    passwd命令

    passwd - set user password
    -l, lock
    -u, unlock
    -d, delete a passwd  for an account
    -S,  This will output a short information about  the  status  of  the password for a given account.
    --stdin,
        echo linux |passwd --stdin vfast    1 > 0
    

    密码文件

    /etc/passwd
       User account information.
           [用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell] 
    /etc/shadow
               Secure user account information.
                     用户名:这是用户登录系统时使用的用户名,它在系统中是惟一的
                     口令:此字段存放加密的口令
                     最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
                     最小时间间隔:两次修改口令之间的最小天数
                     最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
                     警告时间:从系统开始警告到口令正式失效的天数
                     不活动时间:口令过期多少天后,该账号被禁用
                     失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
                     标志:未使用
    

    shadow文件

      目前,大多数UNIX/Linux系统中,利用/etc/shadow文件存放用户账户的加密密码信息和密码的有效期信息。

    user01:!!:18173:0:99999:7:::
    

      Linux系统的shadow文件中,为每个用户提供一条记录,各个字段用“:”隔开,这9个字段按先后顺序分别是
    注册名:密文密码:上次更改密码时间距1970年1月1日的天数:密码更改后不可以更改的天数:密码更改后必须再次更改的天数(即密码的有效期):密码失效前警告用户的天数:密码失效后距离账户被查封的天数:账户被查封时间距1970年1月的天数;保留字段


    3.组的管理

    groupadd

    groupadd - create a new group
    命令语法
    groupadd [选项] 组名
    命令选项
    -g, --gid GID        指定GID
    -r, --system        创建一个系统组
    -o, --non-unique    此选项允许添加一个使用非唯一 GID 的组
    注意:组名最长为 32 个字符
    

    groupmod命令

    groupmod - modify a group definition on the system
    命令语法
    groupmod [选项] 组名
    命令选项
    -g, --gid GID
    -n, --new-name NEW_GROUP  给组改名
    -o, --non-unique 
    
    例子  
    1、将组名为test3的名字改为baism
    groupmod test3 -n baism
    

    groupdel命令

    groupdel - delete a group
    

    4.组密码及组配置文件

    gpasswd命令

    gpasswd - administer /etc/group and /etc/gshadow
    -a, --add USER                add USER to GROUP
    -d, --delete USER             remove USER from GROUP
    -r, --remove-password         remove the GROUP's password
    -R, --restrict                restrict access to GROUP to its members 限制用户登录该组,除了组成员。
    -M, --members USER,...        set the list of members of GROUP
    -A, --administrators ADMIN,...
                                    set the list of administrators for GROUP
    案例:
    设置组root密码    #gpasswd root
    用户组身份切换为root $newgrp root
    组管理员设置 #gpasswd test -A user3
    限制陌生用户切换到组 #gpasswd -R test
    指定组的成员列表   # gpasswd test -M user3,user2
    

    配置文件

    /etc/group
      Group account information.
          [组名]:[密码域]:[GID]:[组员列表] 
    /etc/gshadow
      Secure group account information.
    

    5.相关文件

    /etc/passwd
            用户账户信息。
    /etc/shadow
            安全用户账户信息。
    /etc/group
            组账户信息。
    /etc/gshadow
             安全组账户信息。
    /etc/default/useradd
               账户创建的默认值。
    /etc/skel/
               包含默认文件的目录。
    /etc/login.defs
               Shadow 密码套件配置。
    

    6.身份切换

    su 命令--用户身份的切换

    su [options...] [-] [user [args...]]
    如:
    su - root
    
    su user01
    

      在大多的linux的版本中,都可以使用"su"或者"su -",但是"su"和"su -"有何差别:
      "su"只是切换了root身份,但Shell环境仍然是普通用户的Shell;而"su -"连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。"su"切换成root用户以后,"pwd"一下,发现工作目录仍然是普通用户的工作目录;而用"su -"命令切换以后,工作目录变成root的工作目录了。用"echo $PATH"命令看一下"su"和"su -"以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用"su -"命令。

    当一个用户同时属于多个组,如何切换组身份 ?

    newgrp 命令

      newgrp指令类似login指令,它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。



    附加知识:文件与文件夹权限

    Linux 基本权限

    linux基本权限
    使用ls -l filename 命令查看文件或文件夹详细权限
    ls -l
    -rw-r--rw-  1 root root    22 Jan  6 15:42 abc
    - --- --- ---
    第1个 -  文件类型
    第2-4个 -  文件所有者的权限  root    rw-       r  读   w  写   x  执行
    第5-7个 -  文件所属的组中的成员对其权限  root   r--
    第8-10个 -  其他人   rw-
    22 文件或文件夹的大小
    Jan  6 15:42   创建日期
    abc  文件名
    

    chmod命令

    chmod - 改变文件的访问权限
    命令语法
    chmod [options] mode file...
    命令选项
    -R 递归设置权限,针对目录有效
    mode  谁给什么权限
    u(所有者)  g(所属组)   o(其他人)  a(所有人)
    + - =
    权限  r 读  w 写   x 执行
    数字权限
    r 读 4
    w 写 2
    x 执行 1
    chmod 760 abc
    

    chown命令

    chown 修改文件或文件夹所有者命令
    命令语法
    chown [options] user [:group] file...
    命令选项
    -R, 递归设置,针对文件夹
    chown 新所有者  文件名
    chown   新的所有者.新的所属组  文件名
    -R, 递归修改
    

    chgrp命令

    chgrp  改变所属的组
    命令语法
    chgrp [选项] 组文件...
    命令选项
    -R, 递归设置权限,针对目录有效
    chgrp 新所有组  文件名
    chown   .新的所属组  文件名
    

    Linux特殊权限

    linux特殊权限 7 777
    suid 4    当一个二进制文件拥有SUID权限后,当其他用户执行该二进制文件的时候,该二进制文件就会以他所有者的权限去执行
    sgid 2   
      要求文件夹下的新建的子文件夹或者子文件继承父文件夹的属组
    sticky bit  1
    如果给文件夹 赋予粘连位  则该文件夹下的文件或文件夹只能由所有者及ROOT删除
    

    Linux隐藏权限

    chattr命令

    chattr [+-=][ASacdistu] 文件或文件名
     命令选项:
            + : 增加某个特殊参数,其他原本存在的参数不动。
            - : 删除某个特殊参数,其他原本存在的参数不动。
            = : 设置一定,且仅有后面接的参数
            A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。
            S : 这个功能有点类似sync。就是将数据同步写入磁盘中。可以有效地避免数据流失。
            a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。
            c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。
            d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。
            i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。
            j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。
            s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。
            u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除.
                注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。
    

    lsattr命令

    lsattr 文件或文件名
     查看文件或文件夹的隐藏权限
    

    Linux file ACL 权限

    setfacl命令

    setfacl - set file access control lists
    命令语法
    setfacl [选项] file...
    命令选项
    -m, 修改acl
    -x, 删除acl
    -b, 删除所有acl
    -k, 删除默认的acl
    -R, 递归
    

    getfacl命令

    getfacl 查看文件权限
    命令语法
    getfacl  file...
    

  • 相关阅读:
    java实现LFU算法
    2.1 测试函数-Rastrigin函数
    VM虚拟机如何与主机共享文件夹
    .bashrc文件和.bash_profile文件的区别
    1.2 准备工作
    1.1 JSOP架构
    vue中页面跳转拦截器的实现方法
    Javascript性能优化阅读笔记
    理解 e.clientX,e.clientY e.pageX e.pageY e.offsetX e.offsetY
    Vue.directive()的用法和实例
  • 原文地址:https://www.cnblogs.com/aqiao/p/11650899.html
Copyright © 2011-2022 走看看