zoukankan      html  css  js  c++  java
  • Linux用户和组

    用户和组

    Linux多用户的意义

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    用户

    每个用户有唯一的编号uid

    使用ls -l可以查看文件所属的用户和组

    用户分类

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

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

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

    每个组有唯一的gid,用户一定属于某个组,同时也可以加入多个辅助组(创建用户,系统会创建一个同名的组来装载该用户)

    用户管理命令

    用户创建 useradd

    -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重复
    
    注意:用户名不能超过 32 个字符
    
    #创建用户成功后会自动创建用户同名的组
    useradd zx125 
    

    密码设置 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
    

    查看用户信息

    id user
    

    修改账号信息 usermod

    -a, --append 将用户添加到附加组
    -L, --lock 锁定账号
    -U, --unlock 解锁账号
    -m, --move-home with -d 将用户的目录移动到新位置
    

    删除账号 userdel

    -f, --force 删除账号,不包括账号文件
    -r, --remove 删除主目录及邮箱
    

    修改用户简短信息 chage

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

    查看

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

    用户切换和注销

    su - 用户名	切换用户
    exit		  回到原来用户
    
    前提:如果在系统的图形界面无效
    logout
    
    who am i 原始登录用户
    whoami 当前用户
    

    组管理命令

    groupadd

    -g, --gid GID        指定GID
    -r, --system        创建一个系统组
    -o, --non-unique    此选项允许添加一个使用非唯一 GID 的组
    
    注意:组名最长为 32 个字符
    

    groupmod

    -g, --gid GID
    -n, --new-name NEW_GROUP  给组改名
    -o, --non-unique 
    
    例子  
    1、将组名为test3的名字改为baism
    groupmod test3 -n baism
    

    groupdel

    groupdel - delete a group
    

    gpasswd

    gpasswd  newgrp
    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.
    

    组密码的用处

    可以临时给一个用户 加入组内(用户本身不属于这个组)

     当一个用户同时属于多个组,如何切换组身份  newgrp 命令 
                su - user1 
                newgrp test     切换到test组
    
           如何临时切换到某个外组【用户本身不属于这个组】
                1)首先给外组设置一个组密码 
                     gpasswd root
                     正在修改 root 组的密码
                     新密码:
                     请重新输入新密码
                     su - user1
                     newgrp root
    

    所有相关文件

    创建用户流程

    创建一个用户首先会在下面开头的4个文件写入相关的默认信息,默认信息从哪里来呢?首先会从useradd里面拿去基本的用户默认值,密码相关的默认值从login.defs里面拿,用户文件是直接拷贝的/etc/skel/文件到home目录下面

    /etc/passwd
            用户账户信息。
    
    /etc/shadow
            安全用户账户信息。
    
    /etc/group
            组账户信息。
    
    /etc/gshadow
             安全组账户信息。
    
    /etc/default/useradd
               账户创建的默认值。
               (比如创建用户并设置不创建同名组,就会去这个文件夹找默认配置的组100)
    
    /etc/skel/
               包含默认文件的目录。
    
    /etc/login.defs
               Shadow 密码套件配置。
    
  • 相关阅读:
    Android中@id与@+id区别和sharedUserId属性详解*
    Android应用的安全的攻防之战
    Android动态方式破解apk进阶篇(IDA调试so源码)
    Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
    Android动态方式破解apk终极篇(加固apk破解方式)
    Android中插件开发篇之----动态加载Activity(免安装运行程序)
    Android中插件开发篇之----应用换肤原理解析
    Android中插件开发篇之----类加载器
    Android中的动态加载机制
    Android 编程下Touch 事件的分发和消费机制和OnTouchListener,OnClickListener和OnLongClickListener的关系*
  • 原文地址:https://www.cnblogs.com/zx125/p/11568846.html
Copyright © 2011-2022 走看看