• Linux用户和用户组的操作


    Linux是多用户操作系统,即多个用户可以在自己的权限范围内执行对系统资源的使用,多个用户之间互不干扰。window系统从win7以后也是多用户操作系统,直观上来看win7好像只是单用户,但是切换到guest用户后执行关机发现提示其他用户正在使用,这就是多用户的直观感受。

    用户和用户组概念

    与windows一样,linux下登录系统需要用户和密码,一般有root超级用户和普通用户的区别,其中root用户拥有最高权限,并可以对普通用户的密码进行管理以及权限分配。用户组则是将不同用户的公共行为抽象出来形成一个组,只要是这个组内的成员,都可以访问用户组有拥有的资源。

    用户和用户组的关系

    用户和用户组的关系,类似数据库中表和表的关系,即存在一对一,一对多,和多对多的关系。

    (1)一个用户对应一个用户组

    (2)一个用户可以属于多个用户组,一个用户组可以有多个用户

    在linux下,/etc/passwd,/etc/shadow和/etc/group三个文件保存了用户和用户组的信息,对这三个文件的操作,可以实现用户和用户组的创建、修改和删除,以及用户组对用户的管理。

    用户和用户组操作

    以下操作均基于centos6.5。

    用户相关

    (1)用户创建 useradd [选项] {用户名},常用选项如下

    [root@node02 ~]]# useradd
    Usage: useradd [options] LOGIN
    Options:
    -c, --comment COMMENT 指定一段描述 -d, --home-dir HOME_DIR 新用户的主目录,一般和-m配合使用 -g, --gid GROUP 指定新用户的主组,在/etc/group中不显示 -G, --groups GROUPS 指定新用户的附加组,在/etc/group中显示 -m, --create-home 如果没有目录则创建用户主目录 -r, --system 添加到系统变量,安装mysql时添加mysql用户时会用到 -s, --shell SHELL 指定用户的登录shell,默认是/bin/bash -u, --uid UID 指定用户的uid

    不使用选项,会默认添加用户组,centos下用户创建用户uid默认从500开始,并且在/home目录下创建工作空间。

    创建用户zhangshan,指定工作空间、主组、附加组和shell程序

    创建伪用户,指定shell程序为/sbin/nologin,这样的用户将无法登陆。

    可以给伪用户设置密码。 

    无法切换用户,提示用户被可用。

    (2)用户修改 usermod [选项] {用户名},常用选项和上面添加用户类似,此外还有-aG的选项,代表为当前用户追加用户组。

    修改lisi为正常用户

     修改lisi追加附加组

    (3)用户删除 userdel [选项] {用户名},常用选项为-r,如果不加则删除用户还保留用户家目录,如果加上-r选项则会删除用户的家目录。

    删除lisi,并删除工作目录

    (4)密码管理 passwd [选项] {用户名},常用选项为-l,-u和-d,分别代表锁定账户、解锁账户和删除用户密码,不加参数就是修改密码。

    修改zhangsan密码

     锁定zhangsan密码,不能远程登陆,除此之外,删除密码也不能远程登陆。

    使用zhangsan远程登陆,失败

    解除对zhangsan密码的锁定,重新远程连接登陆,ok 

    (5)用户切换 su {用户名}和su - {用户名},两者都可以切换,区别是前者切换依然在当前目录,而后者会切换到新用户的家目录

    用户组相关

    (1)用户组创建 groupadd [选项] {用户组名},主要选项如下 。

    Usage: groupadd [options] GROUP
    
    Options:
      -g, --gid GID                 指定新用户组的group id
    -o, --non-unique 和-g配合使用,代表新用户组可以和系统已有group id重复

    创建hadoop用户组,创建hdfs用户组,并且和hadoop使用同一个group id

     查看/etc/group信息

    (2)用户组修改 groupmod [选项] {用户组名},主要选项如下。

    Usage: groupmod [options] GROUP
    
    Options:
      -g, --gid GID                 修改新用户组的group id
      -n, --new-name NEW_GROUP      修改用户组名
      -o, --non-unique              和-g配合使用,代表新用户组可以和系统已有group id重复

    修改hdfs用户组名字为hive

    (3)用户组删除 groupdel {用户组名},如果删除的用户组被用户指定为主组,则无法删除,如果只是用户的附加组则可以删除,并撤销和用户的关系。

    删除hadoop组,hadoop组提前修改为zhangsan的主组

    删除hive组,hive组提前修改为zhangsan的附加组

    (4)用户组的切换 newgrp {用户组名},如果某用户属于多个用户组,如果想访问其他用户组的内容,需要切换组。

    在zhangsan的家目录下创建两个文件,分别属于hadoop用户组和yangchaolin用户组,并且组权限设置为只读,由于zhangsan属于两个组,因此两个文件都能读到

    但如果将hadoop组下的组权限设置为不可读,则切换到hadoop用户组下无法读取文件1,但是能读取文件2

    passwd、shadow和group文件说明

    passwd

    以下是etc/passwd文件中root用户的信息,分为7段,使用冒号分开。

    root:x:0:0:root:/root:/bin/bash

    (1)root:用户名,不要使用: . - + /

    (2)x:密码,这里是加密了。

    (3)0:uid,root用户是0,其他根据系统版本有不同的区段划分

    (4)0:group id,主组id

    (5)root:账户描述信息,这里意思为root账户,一般自己加的如果添加账户不加-c选项则为空

    (6)/root:家目录,用户登录后默认工作空间,默认只有root和当前用户可以访问

    (7)/bin/bash:用户指定的shell解释器

    group

    以下是/etc/group下root组的信息,包含四段,用冒号隔开。

    root:x:0:jerry

    (1)root:用户组名,为root组

    (2)x:用户组的密码,一般不设定

    (3)0:组的group id,root组id是0

    (4)jerry:组内成员列表,这里显示的是将root作为附加组的用户,主组不显示

    shadow

    以下是/etc/shadow下root的信息,包含8段,用冒号隔开。

    root:$6$:18180:0:99999:7:::

    (1)root:用户名

    (2)$6$:用户密码,这里一般是MD5加密后的口令

    (3)18180:代表密码创建至今的天数,从1970年1月1日开始

    (4)0:上次和下次修改密码的时间间隔,0代表没有修改过

    (5)99999:从密码创建时刻开始,最大有效的天数

    (6)7:密码到期前的7天,提醒用户修改密码

    (7)这里为空,如果有数字代表密码到期后允许N天之内依然可以登录

    (8)这里为空,密码的存活期,是一个绝对天数,到期之后不允许登录

    参考博文:

    (1)https://www.cnblogs.com/lemaden/p/10188848.html

  • 相关阅读:
    线程同步的方法
    为什么HashMap中key是引用类型而不是基本数据类型?为什么有了基本数据类型还有包装类型?
    使用MyBatis的mapper接口(动态代理对象)调用时的注意点
    redis的aof持久化模式
    redis的RDB持久化方式的优缺点
    快排算法
    JAVA8新特性
    NIO中Buffer的capacity,position和limit含义
    ArrayBlockingQueue与LinkedBlockingQueue对比
    写加锁但读没有加锁造成的脏读问题
  • 原文地址:https://www.cnblogs.com/youngchaolin/p/11680157.html
Copyright © 2020-2023  润新知