美文网首页
linux用户管理

linux用户管理

作者: 墨线宝 | 来源:发表于2023-08-22 10:34 被阅读0次

    linux用户管理

    linux中的用户一般分为两类:系统管理员和一般用户,系统管理员名称为root,具有对系统完全的控制权,可以对系统做任何设置以及修改,其主目录为/root;而对于一般用户,默认的主目录为/home/用户名称,仅能对于具有相应权限的文件/目录进行读取/修改/执行

    用户管理

    用户信息文件

    在linux中的/etc/passwd文件中保存着linux的所有用户信息

    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    

    以冒号分隔分为七个字段

    第一个字段为用户名
    第二个字段为密码标志 x表示有密码,密码存在/etc/shadow文件中
    第三个字段为用户ID 0是超级用户 1-499是系统用户 500-65535是普通用户
    第四个字段为组id 对应着/etc/group文件中的记录
    第五个字段为用户说明
    第六个字段为用户家目录
    第七个字段为登录shell

    密码文件

    用户的密码存在/etc/shadow文件中

    bin:*:15980:0:99999:7:::
    daemon:*:15980:0:99999:7:::
    adm:*:15980:0:99999:7:::
    

    以冒号分隔分为九个字段

    第一个字段 用户名
    第二个字段 加密后的密码
    第三个字段 密码最近修改时间 (距离1970年1月1日的天数)
    第四个字段 两次密码的修改间隔时间
    第五个字段 密码有效期
    第六个字段 密码到期前多少天进行警告
    第七个字段 密码到期后的宽限天数
    第八个字段 密码失效时间
    第九个字段 保留字段

    用户命令

    添加用户

    添加用户使用useradd命令

    useradd [option] 用户名
    
      -c, --comment COMMENT      说明
      -d, --home-dir HOME_DIR     指定用户的家目录
      -m  自动创建家目录,同时把/etc/skel中的文件复制一份到用户的家目录中
      -g, --gid   指定用户组,初始组id或组名,默认是与用户名相同
      -G, --groups GROUPS      指定用户的附加组,多个组,用逗号分隔
      -p, --password PASSWORD     用户密码
      -r, --system       创建一个系统用户
      -s, --shell SHELL    登录shell,默认是bin/bash
      -u, --uid UID    指定用户的 UID 值
      -M  不建立家目录
    
    
    修改用户信息
    usermod [options] 用户名
    
    -c, --comment COMMENT      说明
      -d, --home-dir HOME_DIR       home directory of the new account  家目录
      -g, --gid GROUP     初始组id或组名,默认是与用户名相同
      -G, --groups GROUPS     附加组
      -p, --password PASSWORD       encrypted password of the new account  密码
      -r, --system                  create a system account   创建一个系统用户
      -s, --shell SHELL             login shell of the new account  登录shell,默认是bin/bash
      -u, --uid UID                 user ID of the new account   用户id
    
    删除用户
    userdel [-r] 用户名
    
    -r 表示删除用户的同时删除家目录
    
    切换用户
    # 直接使用su,不指定用户名,默认会切换到root用户
    su - 用户名
    
    -m  保留环境变量不变
    -c  执行完该次命令后用户切换回来
    

    由于su的权限是没有限制的,所以此时用到了sudo命令,通过 sudo,我们能把某些 root 有针对性的下放,并且无需普通用户知道 root 密码,所以 sudo 相对于权限无限制性的 su 来说,还是比较安全的,所以 sudo 也能被称为受限制的 su ;另外 sudo 是需要授 权许可的,所以也被称为授权许可的 su;

    sudo 执行命令的流程是当前用户转换到 root(或其他指定转换到的用户),然后以 root(或其他指定的转换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过 sudo 的 配置文档/etc/sudoers 来进行授权;

    sudo 命令
    
    # 列出用户在主机上可用的和被禁止的命令
    sudo -l 
    # 以便经常的实行一些只能非常用户才可以实行的权限,而无需每一次键入密码,能够应用该命令。提醒键入密码时该密码为当今帐户的密码
    sudo -i
    
    查看当前用户
    #显示当前用户
    whoami
    #当前系统所登陆的用户,以及所登录的控制台
    who
    #当前系统所登陆的用户,以及所登录的控制台的详细信息
    w
    
    密码设置修改
    #密码设置
    passwd 用户名
    
    #对于普通用户来说,只可以修改当前用户密码,不需要指定用户名
    passwd
    --------------------
    -l  使密码失效,停止账号使用
    -u  用户解锁,与-l相对
    -d  删除密码
    -f  强制执行下次登陆时更改密码
    -S  显示密码信息
    
    查看用户信息
    id
    
    uid=501(zhanghe) gid=20(staff) groups=20(staff),12(everyone)
    

    组管理

    组信息文件

    组信息存在/etc/group文件中

    root:x:0:
    bin:x:1:bin,daemon
    daemon:x:2:bin,daemon
    

    以冒号分隔分为四个字段

    第一个字段 组名
    第二个字段 组密码
    第三个字段 组ID
    第四个字段 用户列表,每个用户之间用,号分割

    组密码文件

    groupname:password:admin,admin,...:member,member,...
    

    第 1 字段:用户组
    第 2 字段:用户组密码,这个段可以是空的或!,如果是空的或!,表示没有密码
    第 3 字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
    第 4 字段:组成员,如果有多个成员,用,号分割;

    组命令

    添加组
    groupadd 组名
    
    -g 指定 GID,0~499留给系统使用,从500开始,如果省略该参数,系统会自动指定GID
    -o 一般和 g 选项同时使用,可以与已有组的 GID 相同
    
    删除组

    再删除组前,要执行find / -group 组名称来检查系统中隶属于改组的目录及文件,并利用chown命令改变所属组

    groupdel 组名
    
    修改组
    groupmod [options] 组名
    
    
    -g 指定新的 GID
    -o 与-g 配合使用同 groupadd 的-o
    -n 修改组名
    
    把用户加入组或者删除组
    gpasswd [options] 组名
    
    -a, --add USER                add USER to GROUP 把用户加入组
    -d, --delete USER             remove USER from GROUP 把用户移出组
     
    
    切换用户组
    newgrp 组名
    

    https://zhhll.icu/2021/linux/基础/用户管理/

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:linux用户管理

          本文链接:https://www.haomeiwen.com/subject/sequmdtx.html