zoukankan      html  css  js  c++  java
  • Linux中的用户管理-创建删除修改

    用户管理

    一、用户分类

    用户分为三类:

    1.管理员 root

    root UID:0 #拥有最高权限 默认系统中就一个

    UID即user ID 类似于身份号码,唯一的,不可重复

    2.虚拟用户

    作用:在运行程序的时候必须要有一个用户来启动它,但这个用户不需要登录,只用来运行程序

    centos6.x中 虚拟用户的UID是 1-499

    centos7.x中 虚拟用户的UID是 1-999

    虚拟用户的特点是:仅用于运行程序,不可登录系统,没有家目录

    3.普通用户

    UID:

    centos6.x 500+ #默认没有普通用户,需要手动创建用户,普通用户可以登录系统,正常运行命令,有家目录

    centos7.x 1000+ #默认没有普通用户,需要手动创建用户,可以登录系统,正常运行命令,有家目录

    二、用户相关目录

    /etc/passwd 用户的信息

    /etc/shadow 用户的密码信息

    /etc/group 组信息

    /etc/gshadow 组的密码信息文件

    ⭐/etc/passwd 用户信息文件详解

    以冒号分割 看每一列的含义
    	root:x:0:0:root:/root:/bin/bash
    第一列
    	root: 用户名
    第二列:
    	 x:   用户密码 x必须存在如果删除 表示清空密码  可以使用su的方式进行免密码切换用户
     
    第三列:
         0:   UID 
    第四列:
         0:   GID
    第五列:
    	 root: 用户的描述信息 可有可无
    第六列:
    	 /root: 家目录
    第七列:
         /bin/bash  解释器 当前用户登录系统后默认的使用什么解释器运行命令  普通用户和管理员用户
    	 /sbin/nologin	 不运行当前的用户登录操作系统  傀儡用户 虚拟用户
    

    group: 默认创建后的用户属于自身命名的组
    

    三、用户相关命令

    useradd #创建普通用户

    语法格式: useradd 参数选项 用户名称

          参数选项:
    			  -s 指定解释器
    			  -u 指定UID
    			  -g 指定GID
    			  -G 指定属于多个组 附属组
    			  -M 不创建家目录    # 普通用户会在/home下自动创建一个家目录
    			  -c 描述
    			  
    	      [root@oldboyedu ~]# # 创建一个虚拟用户 UID999 不允许登录 不创建家目录
    		  [root@oldboyedu ~]# #oldboy2
    		  [root@oldboyedu ~]# useradd -u899 -M -s /sbin/nologin oldboy2
    

    usermod #修改已经创建的用户信息

    选项:
    -c, --comment 注释 GECOS 字段的新值
    -d, --home HOME_DIR 用户的新主目录
    -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
    -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
    -g, --gid GROUP 强制使用 GROUP 为新主组
    -G, --groups GROUPS 新的附加组列表 GROUPS
    -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户

    -h, --help 显示此帮助信息并推出
    -l, --login LOGIN 新的登录名称
    -L, --lock 锁定用户帐号
    -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
    -o, --non-unique 允许使用重复的(非唯一的) UID
    -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
    -R, --root CHROOT_DIR chroot 到的目录
    -s, --shell SHELL 该用户帐号的新登录 shell
    -u, --uid UID 用户帐号的新 UID
    -U, --unlock 解锁用户帐号
    -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

    例:

    [root@oldboyedu ~]# usermod -s /bin/bash -Goldboy1,root -c hehe oldboy2

    -s 指定oldboy2用户新的登录环境为/bin/bash

    -G 为oldboy2用户添加附加组 oldboy1、root、

    -c 写入注释信息 hehe

    清空附加组
    [root@oldboyedu ~]# id oldboy2 #id 命令查看用户信息
    uid=899(oldboy2) gid=1003(oldboy2) groups=1003(oldboy2),0(root),1002(oldboy1)
    [root@oldboyedu ~]# usermod -G '' oldboy2 #清空oldboy2用户的附加组
    [root@oldboyedu ~]# id oldboy2
    uid=899(oldboy2) gid=1003(oldboy2) groups=1003(oldboy2)

    userdel #删除用户

    userdel zhangsan

    仅删除用户张三,不删除张三的家目录

    userdel -r zhangsan

    删除用户张三所有用户信息,以及张三的家目录

    passwd # 给用户设置密码

    1.passwd zhangsan

    给用户张三设置密码

    2.非交互式,直接用命令修改用户密码

    非交互式方式
    [root@oldboyedu ~]# echo 1|passwd --stdin oldboy1 #设置用户密码为 1(把echo输出到屏幕的内容 --stdin作为oldboy1的密码)
    Changing password for user oldboy1.
    passwd: all authentication tokens updated successfully.

    chown # 修改文件的属主属组

    -R 同时修改目录及目录以下所有的文件的属主属组
    chown oldboy.oldboy file # 同时修改文件的属主属组
    chown oldboy file # 只修改文件的属主
    chown .oldboy file # 只修改文件的属组
    [root@oldboyedu ~]# chown -R oldboy.oldboy dir #同时修改dir目录的属主属组
    [root@oldboyedu ~]# ll dir/
    total 0
    -rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 1.txt
    -rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 2.txt
    -rw-r--r-- 1 oldboy oldboy 0 Nov 9 11:08 3.txt

    last

    查看用户登录信息

    [root@oldboy-lnb ~]# last
    lisi pts/1 10.0.0.1 Tue Nov 10 22:46 still logged in
    root pts/0 10.0.0.1 Tue Nov 10 14:34 still logged in
    reboot system boot 3.10.0-957.el7.x Tue Nov 10 14:33 - 22:46 (08:12)
    root pts/0 10.0.0.1 Tue Nov 10 08:27 - crash (06:06)
    reboot system boot 3.10.0-957.el7.x Tue Nov 10 08:26 - 22:46 (14:20)
    root pts/0 10.0.0.1 Mon Nov 9 08:30 - down (12:28)
    reboot system boot 3.10.0-957.el7.x Mon Nov 9 08:29 - 20:59 (12:30)
    root pts/0 10.0.0.1 Fri Nov 6 08:32 - down (03:41)

    如何查看当前公司的公网IP地址 排除安全隐患
    1.查看登录IP是否是公司和家庭的公网IP
    2.看时间点
    3.查看Linux服务器的公网IP地址

    	[root@oldboyedu ~]# curl ifconfig.me
    	123.112.22.134[root@oldboyedu ~]# curl cip.cc
    	IP	: 123.112.22.134
    	地址	: 中国  北京
    	运营商	: 联通
    
    	数据二	: 北京市 | 联通
    
    	数据三	: 
    

    id 查看用户信息

    id zhangsan

    查看用户张三的uid等信息

    如何判断用户是否存在

    	1. id 用户名 
    	2. cat /etc/passwd  
    	3. 使用grep 过滤文件内容
    	[root@oldboyedu ~]# grep 'oldboy1' /etc/passwd
    	oldboy1:x:1002:1002::/home/oldboy1:/bin/bash
    	4.[root@oldboyedu ~]# useradd oldboy1
        useradd: user 'oldboy1' already exists  # oldboy1 用户已存在
    

    lastlog

    查看所有用户最后的登录系统的时间

    [root@oldboy-lnb ~]# lastlog
    用户名 端口 来自 最后登陆时间
    root pts/0 二 11月 10 21:45:49 +0800 2020
    bin 从未登录过
    sshd 从未登录过
    postfix 从未登录过
    apache 从未登录过
    ntp 从未登录过
    lisi pts/1 10.0.0.1 二 11月 10 22:46:29 +0800 2020
    qwe pts/0 二 11月 10 21:44:25 +0800 2020

    whoami

    查看当前登录系统用户

    [root@oldboy-lnb ~]# whoami
    root

    四、用户创建过程

    1. 使用命令创建用户 自动创建/home/oldboy1
    2. 会复制/etc/skel/目录下的隐藏文件 存放环境变量的文件 到/home/oldboy1
      .bash_logout # 退出操作系统
      .bash_profile # 用户的环境变量 供操作系统正常使用 正常运行
      .bashrc # 别名的配置文件
    3. 系统自动修改拷贝过去的隐藏文件权限为普通用户

    五、创建用户中可能遇到的问题

    1.为什么出现以下错误

    	[root@oldboyedu ~]# useradd oldboy1
    	useradd: warning: the home directory already exists.
    	Not copying any file from skel directory into it.
    	Creating mailbox file: File exists
    	
    	在创建用户时提示无法为用户创建家目录,所以无法创建此用户。可能是由于之前删除同名用户时没有删除他的家目录,那么后面再创建同名用户时,新用户无法使用上一个同名用户的家目录。
    

    如何解决?

    分别删除用户oldboy1的家目录、邮件目录,删除oldboy1用户的用户组信息

    rm -rf /home/oldboy1

    rm -rf /var/sprool/mail/oldboy1

    vim /etc/group 进去编辑删除oldboy1的用户组信息,保存退出

    至此用户oldboy1彻底删除 然后就可以再创建一个同名的用户了!

    2.出现以下错误的解决方式

    ​ 创建完的用户登录后如下,用户误删家目录,导致的家目录变量丢失,或者是创建用户时出现异常导致。
    ​ -bash-4.2$

    怎么解决?

    1. 先拷贝隐藏文件到当前家目录
    	-bash-4.2$ cp /etc/skel/.* .
    2. 退出重新登录到当前用户
    	   方法1: 使用su的方式
    	   方法2: ssh远程连接的方式登录
    	  或者:
           source 和 .   重新执行.bash_profile 
    
    
    如:	   -bash-4.2$ source .bash_profile 
    		[oldboy1@oldboyedu ~]$
  • 相关阅读:
    NanUI for Winform发布,让Winform界面设计拥有无限可能
    使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
    jQuery功能强大的图片查看器插件
    Entity Framework 5.0 Code First全面学习
    封装EF code first用存储过程的分页方法
    NET中使用Redis (二)
    Redis学习笔记~Redis主从服务器,读写分离
    ID3算法
    定性归纳(1)
    js加密
  • 原文地址:https://www.cnblogs.com/yangte/p/13961252.html
Copyright © 2011-2022 走看看