zoukankan      html  css  js  c++  java
  • 👥 用户权限🔧 创建🔐 管理📌 属主属组

    一、Linux用户

     1.什么是用户

    用户由来:用户对硬件资源的操作都需要通过系统,比如用户要读取硬盘中的一份关键数据,出于安全考虑,操作系统的开发者们专门开发了安全机制,需要使用操作系统必须事先输入正确的用户名与密码

    2.为何要有用户?

    权限问题

    系统上的每一个进程,都需要一个特定的用户运行,一个用户拥有特定的权限,该用户运行的进程与用户权限一致

    通常使用普通用户,root用户权限过大,容易出问题

    3.如何查看用户信息

    root@bobo ~]# id #查看当前用户
    uid=0(root) gid=0(root) groups=0(root)
    [root@bobo~]# whoami # 查看当前用户是谁
    root
    [root@bobo ~]# id bobo   查看bobo用户
    uid=0(root) gid=0(root) groups=0(root) 
    [root@bobo ~]# who # 查看所有登录用户
    root pts/2 2020-10-23 15:24 (139.227.12.100)
    [root@bobo ~]# ps aux |grep [s]sh # 每一个 进程都有其他用户
    root 1067 0.0 0.2 112920 4328 ?        Ss Feb15 0:04 
    /usr/sbin/sshd -D
    root 27197 0.0 0.2 154708 5576 ?       Ss 15:24 0:00 sshd:
    root@pts/2

    4.linux系统中用户角色划分

     在linux系统中的用户分为管理员与其他用户

    管理严权最高

    其他用户根据管理员的分配获得权限

    在linux中只能识别UID和GID这种数字

    UID:用户ID,唯一标识一个系统用户的账号,,UID在系统中是唯一的。UID相对于个人身份证,用户名相当于名字

    GID:组ID,把操作系统当做一家公司,uid相当于个人员工号,gid相当各自的部门编号

    centos 7 系统约定

    0            超级管理员,最高权限,有着极强的破坏能力

    1-200         系统用户,用来运行系统自带的进程,默认已创建

    201-999        系统用户,用来运行安装的程序,所以此类用户无需登录系统

    1000+         普通用户,正常可以登录系统对的用户,权限比较小,能执行的任务有限

    用户和组的关系:一对一,多对一,多对多

    5.超级用户:root

    二、用户与组

     用户与组相关文件

    • /etc/passwd
    • /etc/shadow
    • /etc/group
    • /etc/gshadow

    /etc/passwd

    /etc/shadow

    /etc/group : 组文件

    /etc/gshadow : 组密码文件

    /etc/skel/ 用户老家的模板

    /home/xxx 用户家目录

    /var/spool/mail/xxx 用户邮箱文件

    三、用户管理

    • useradd     添加用户
    • userdel      删除用户
    • usermod    修改用户信息

    1、创建用户

    [root@localhost ~]# useradd user1

    2、查看用户

    [root@localhost ~]# id user1
    uid=1002(user1) gid=1003(user1) 组=1003(user1)
    
    [root@localhost ~]# who # 查看所有用户登录信息
    [root@localhost ~]# whoami # 查看当前登录用户名

    注:当创建一个用户时,如果没有指定用户的主组,将会创建一个同名的组作为用户的主组

    3、删除用户

    [root@localhost ~]# userdel user1 # 删除用户user1,但不删除用户家目录mail
    [root@localhost ~]# userdel -r user1 # 要想彻底删除,加-r选项

    4、useradd命令详解   创建用户的同时指定选项

    怎样在linux系统中添加一个新的用户账户
    掌握useradd命令的功能:能增加一个用户
    了解useradd命令的常规选项
    –u:指定用户的UID
    –g:指定用户所属的主群
    –G:指定用户所属的附加群
    –d:指定用户的家目录
    –c:指定用户的备注信息
    –s:指定用户所用的shell
    -e:修改过期时间
    -M: 不创建家目录
    -r:创建系统账户uid处于系统用户范围内,默认就是家目录
    灵活应用useradd命令的例举:
    如:在系统中新增一个fox(狐狸)     用户命令:useradd fox
          在系统中新增一个用户user01,属组为police以及uid为600的命令:
          useradd -u 600 -g policeuser01

    5、usermod命令

    同useradd参数基本一致,只不过useradd是添加,而usermod是修改

    -u     指定要修改用户的UID
    -g     指定要修改用户基本组
    -a     将用户添加到补充组,与 -G选项一起使用
    -G    指定要修改的用户附加组,使用逗号隔开多个附加组,覆盖原有的附加组
    -d     指定要修改用户家目录
    -c     指定要修改用户用户注释信息
    -s     指定要修改用户的bash shell
    [root@root ~]# usermod -e 2013-02-11 user1000  修改时间
    [root@root ~]# usermod -g group1 jj  修改主组
    [root@root ~]# usermod -a -G group2 jj  修改附加组,-a添加,不加-a代表覆盖其它选项
    -m    将用户主目录的内容移动到新位置,如果当前目录不存在,则不会创建新的目录
    -l      指定修改用户登录名
    -L     指定要锁定的用户
    -U    指定要解锁的用户

    6、设定与修改密码

    passwd  默认给当前应用户设定密码
    passwd  用户名    root用户可以给自己以及其他账户设定密码,普通账户只能设定自己的密码
    echo "密码" | passwd --stdin 用户名   非交互式
    补充:可以利用系统内置变量生成随机字符串来串来充当密码
    [root ~]# echo $RANDOM|md5sum|cut -c 1-1070ba11a74b

    四、组管理

    管理命令

    groupadd
    groupmod
    groupdel 
    gpasswd # 设置组密码
    newgrp  #切换主组  

    创建组

    [root~]# groupadd gg1 #创建基本组,不指定gid
    [root ~]# tail -1 /etc/group
    gg1:x:2005:
    [root~]# groupadd -g 5555 gg2 #创建基本组,指定gid为5555
    [root~]# tail -1 /etc/group
    gg2:x:5555:
    [root ~]# groupadd -r gg3 #创建系统组gid从201-999
    [root ~]# tail -1 /etc/group
    gg3:x:991:

    修改组

    [root ~]# groupmod -g 1111 gg3
    [root ~]# tail -1 /etc/group
    gg3:x:1111:
    [root ~]# 
    [root ~]# groupmod -n new_gg3 gg3 # -n 修改组名称
    [root ~]# tail -1 /etc/group
    new_gg3:x:1111:

    删除组

    如果一个组是一个用户的主组,那么该组不能被删除,删除用户会默认一起删掉它的主组
    [root ~]# useradd coco1
    [root ~]# groupadd devops
    [root ~]# usermod -G devops coco1
    [root ~]# id coco1
    uid=2004(coco1) gid=2004(coco1) groups=2004(coco1),5556(devops)
    
    
    [root~]# groupdel devops # 附加组可以删除
    [root~]# id coco1# 查看用户,发现他的附加组没有了
    uid=2004(coco1) gid=2004(coco1) groups=2004(coco1)
    [root~]# groupdel coco1 # 无法删除coco1因为组coco1属于coco1用户的主组
    groupdel: cannot remove the primary group of user 'coco1'

    五、手动创建用户

    1、/etc/passwd

    [root ~]# vim /etc/passwd #新加一行
    [root ~]# tail -1 /etc/passwd
    coco:x:2002:2002:hahaha:/home/coco:/bin/bash

    2、/etc/shadow

    [root ~]# openssl passwd -1 -salt 'i have a dream'
    Password: 
    $1$i have a$jBGkkhpFu9WPSI1Nv.whT/
    [root ~]# vim /etc/shadow
    [root ~]# tail -1 /etc/shadow
    coco:$1$i have a$jBGkkhpFu9WPSI1Nv.whT/:18303::::::

    制作密码

     3、/etc/group

    [root ~]# vim /etc/group
    [root~]# tail -1 /etc/group
    coco:x:2002:

    4、/etc/gshadow

    [root~]# vim /etc/gshadow
    [root ~]# tail -1 /etc/gshadow
    coco:!::

    5、创建用户家目录,并用用户老家的模块板/etc/skel/装修一下,注意权限

    [root ~]# mkdir /home/coco
    [root ~]# cp -r /etc/skel/.[!.]* /home/coco/
    [root ~]# chmod 700 /home/coco/
    [root ~]# chown -R coco.coco /home/coco/

    6、/var/spool/mail/xxx用户邮箱文件

    [root ~]# touch /var/spool/mail/coco
    [root ~]# chmod 660 !$
    chmod 660 /var/spool/mail/coco
    [root ~]# chown coco.mail /var/spool/mail/coco

    测试账号的登录

    [root ~]# ssh coco @127.0.0.1
    coco@127.0.0.1's password: 
    Last login: Mon Aug 10 23:18:55 2020 from 127.0.0.1
    Welcome to Alibaba Cloud Elastic Compute Service !
    [coco@ ~]$ whoami 
    coco
  • 相关阅读:
    新萝卜家园GHOST WIN7系统32,64位极速装机特别版
    BiliBili 第三方 Android 客户端应用源码
    高仿饿了么应用项目源码
    12306火车票订票项目源码
    美女的秘密项目源码
    漫画阅读应用源码
    高仿美团应用客户端布局源码
    Unix时间戳 和 NSDate 的转换
    NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
    ReactiveCocoa入门教程——第一部分
  • 原文地址:https://www.cnblogs.com/ChuangShi-HolySpirit/p/13892704.html
Copyright © 2011-2022 走看看