Linux 账号和权限管理

200 阅读4分钟

Linux 账号和权限管理

1、账号

  • 账号信息存放文件

    /etc/passwd                #账号信息/etc/shadow                #密码信息
    
    cat /etc/passwdroot0root:/root:/bin/bash字段1:root(用户登录名)字段2:x(密码占位符)字段3:0(用户的UID)字段4:0(用户的GID)字段5:root(用户的显示名)字段6:/root(用户的家目录)字段7:/bin/bash(用户登录的shell环境),/bin/bash表示用户可以从本地登录,/sbin/nologin表示用户无法从本地登录
    
    cat /etc/shadow
    

2、管理账户

  • 创建账户

    useradd#创建账户zhangsan,不允许本地登录,不创建宿主目录,指定UID为1500,指定GID为1200,加入root组useradd -s /sbin/nologin -M -u 1500 -g 1200 -G root zhangsan#创建账户lisi,指定lisi的家目录为/lisi,指定账户失效时间2024-8-30useradd -d /lisi -e 2024-8-30 lisi
    

    创建用户如果不指定uid或gid,第一个用户默认是1000

  • 修改账户

    usermod#修改用户的宿主目录,需要提前将源宿主目录移动到目标位置再进行修改,将lisi的宿主目录修改为/home/lisi,原宿主目录在/lisimv /lisi /home/usermod -d /home/lisi lisi#锁定用户账户(实际是锁定用户密码)usermod -L lisi#解锁用户账户,如果用户没有密码是无法解锁usermod -U lisi
    
  • 给用户设置密码

    passwd#锁定用户密码passwd -l lisi#解锁用户密码passwd -u lisi#清空用户密码passwd -d lisi#查看用户状态passwd -S lisi
    
    #设置用户密码[root@CentOS7-1 ~]# passwd lisi更改用户 lisi 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
    
    #设置用户密码,从文件中直接提取内容给用户作为密码passwd wangwu --stdin < pass.txt
    
  • 删除用户

    userdel#删除用户时同时删除宿主目录userdel -r wangwu
    

3、管理组

  • 组文件

    cat /etc/grouproot0:zhangsan字段1:组名字段2:密码占位符字段3:组id字段4:组中的用户
    
  • 创建组:在创建用户时会自动创建和用户名相同的组名

    groupadd#创建xiaoshoubu组,指定gid为2000groupadd -g 2000 xiaoshoubu
    
  • 删除组

    groupdel#删除组,如果有用户的gid为该组,则无法删除groupdel xiaoshoubu
    
  • 组中添加用户

    gpasswd#添加成员,-a只能一次添加一个用户gpasswd -a user1 xiaoshoubu#删除组成员gpasswd -d user1 xiaoshoubu#重新指定组中成员,原本在组中的成员将不存在gpasswd -M user2,user3,user4 xiaoshoubu
    

管道

|            #将前面命令操作的结果作为后面命令的操作对象(参数)cat /etc/passwd | wc -lgrep -v "^$" /etc/ssh/sshd_config | grep -v "^#"

重定向

>            #标准重定向,将前面命令的操作结果写入到后面文件中,会覆盖原有内容>>            #附加重定向,将前面命令的操作结果写入到后面文件中,在原有内容后面附加内容2>            #错误重定向,只写入命令执行结果的错误信息&>            #不管正确还是错误都写入文件中,会覆盖原有内容&>>            #不管正确还是错误都写入文件中,不会覆盖原有内容<            #标准输入,将后面文件内容输入到前面

4、查看用户信息

  • 查询用户所属的组

    groups[root@CentOS7-1 ~]# groups zhangsanzhangsan : zhangsan xiaoshoubu
    
  • 查看用户身份标识

    id[root@CentOS7-1 ~]# id zhangsanuid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan),1001(xiaoshoubu)
    
  • 查看当前系统已登录的用户

    finger                #需要安装finger软件包w
    
  • 查看历史登录账户

    last            #历史登录成功的lastb            #历史登录失败的
    

5、文件权限

  • 在Linux系统中针对文件权限主要分为三类:r(读)、w(写)、x(执行),使用文件的对象:属主(文件所有者的权限)、属组(文件所处的组的权限)、其他人(除前面两类都是其他人)

  • 设置权限

    chmod[root@CentOS7-1 /]# chmod g+w /2.sh                #增加权限[root@CentOS7-1 /]# chmod g-w /2.sh                #减去权限[root@CentOS7-1 /]# chmod g=rw /2.sh            #赋予对应权限
    

    g 表示数组

    u 表示属主

    o 表示其他人

    a 表示所有人(包括属主、属组、其他人)

  • 设置权限也可以采用8进制数字表示

    #文件权限chmod 664        #属主和属组是读写,其他人只读chmod 644        #除属主外其他人都是只读chmod 640        #属主是读写,属组是只读,其他人没有权限
    
    #文件夹权限chmod 755        #除属主外其他人只读,对标文件权限的644chmod 750        #对标文件权限的640
    
  • 设置文件的属主和属组

    chownchown zhangsan woniuxy            #只改变属主chown :zhangsan woniuxy            #只改变属组chown zhangsan:zhangsan woniuxy        #都改变