linux系统下用户管理相关介绍

目录
  • 一、用户及用户组存在的意义
    • 1)用户存在的意义
    • 2)用户组存在的意义
  • 二、用户及用户组在系统中存在的方式
  • 三、用户涉及到的系统配置文件
    • /etc/shadow        用户认证信息文件
  • 四、用户相关操作
    • 1)用户和用户组建立及删除
    • 2)用户和用户组的信息管理
  • 五、用户权力下放
  • 六、文件权限查看和读取

一、用户及用户组存在的意义

1)用户存在的意义

系统的资源是有限的,如何合理分配系统资源?

1.身份 account

2.授权 author

3.认证 auth

以上3个 'a' 称为3A机制,3A机制组成系统中最底层的安全架构。

2)用户组存在的意义

用户组是一个逻辑容器,对用户进行归类和统一授权。

简单说用户组就像是我们在学校的时候的班级或者社团组织一样,你在的班级被赋予了什么权利,你在社团中的部门有什么权力,那你就有什么权利。这样做方便了权力的统一下放。

二、用户及用户组在系统中存在的方式

因为计算机对数字敏感,而我们人对名称比较敏感,利用这个特性我们在计算机内部可以用数字和字符串相关联的形式存储用户。

我们知道,在Linux中一切都是文件,所以用户也不例外,我们所说的用户和用户组其实也就是文件中的一条字符串。

用户是在/etc/passwd文件中的一行字符
用户组是在/etc/group文件中的一行字符
vim /etc/passwd   用此命令可以查看passwd文件内容,进而得知用户信息
vim /etc/group    用此命令可以查看group文件内容,进而得知用户组信息

但是在文件中查看用户或用户组的id信息终究有些麻烦,Linux给我们提供了这样的命令方便我们查看用户的相关信息:

whoami  查看当前用户名称
id  [参数][用户名]  查看用户的id信息,用户名缺省则查看当前用户

    -u查看用户的用户id
    -g查看用户的主组id
    -G查看用户所有组id
    -n显示名称,不能单独使用,需要和上面的命令连用来显示信息

用户id范围:
    0:超级用户id
    1-999:Linux系统自用id
    1000-65535:用户级id

            以上id信息都被记录在/etc/login.defs

三、用户涉及到的系统配置文件

/etc/passwd        用户身份信息文件

passwd中的字符串意义
用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell

/etc/group        组身份信息文件

组名称:组密码:组id:组的附加成员

/etc/skel/.*        用户环境配置文件模板

/etc/shadow        用户认证信息文件

/home/username        用户家目录

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

四、用户相关操作

1)用户和用户组建立及删除

我们可以用watch命令来监控用户的创建和删除

watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"

用户建立命令useradd:

useradd username    ##用户建立
        -u id username        ##指定用户uid
        -g id username        ##指定主组id
        -G id username        ##指定附加组id
        -d dir username       ##指定用户的家目录
        -M     username       ##创建用户时不自动创建家目录
        -c word username      ##创建用户时指定用户说明
        -s shell username     ##指定shell
userdel username    ##用户删除
        -r username           ##删除用户同时删除家目录和系统配置文件
groupadd groupname  ##组建立
         -g id groupname      ##指定组id
groupdel groupname  ##组删除

2)用户和用户组的信息管理

有时候我们在服务器的使用过程中需要更改用户的相关属性,虽然我们知道在/etc/passwd文件中用户是以字符串的形式存储,并且知道字符串的意义:

用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell

那么理所当然我们就可以用root用户修改这些字段达到更改用户信息的目的,但是在实际应用中我们并不会这么做,而是使用一些相关命令:

usermod [选项] [参数] [username]

[选项]
        -l    #修改用户名称
        -u    #修改用户的uid
        -g    #修改用户主组id
        -G    #修改用户附加组身份
        -aG   #添加用户附加组身份
        -c    #更改用户说明文字
        -d    #更改用户家目录指向
        -md   #同时更改家目录指向和家目录名称
        -s    #更改默认shell
        -L    #冻结账号
        -U    #解锁账号

我们的密码信息存储在shadow文件中,shadow内容:

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

我们可以用passwd命令来修改密码相关属性信息

passwd [选项] [参数] [username]
如果选项和参数缺省则修改'username'的密码

[选项]
        -S    #查看密码状态
        -l    #冻结账号认证
        -u    #解锁账号认证
        -d    #删除用户密码
        -e    #修改默认使用时间为0
        -n    #设置最短使用时间
        -x    #设置密码过期时间
        -w    #设置过期警告时间
        -l    #设置非活跃天数
change -d 0 [username]    #必须修改密码才能登陆
change -E "xxxx-xx-xx" [username]    #设置冻结日期

五、用户权力下放

我们在实际中使用服务器,经常使用到权力下放,这可以让我们以更高的权限执行一些命令,例如我们可以用权力下放使普通用户以root身份运行一些命令,这样我们不用登录root账号,在保证了系统安全的同时也达到了我们的目的。

授权方法:

我们可以用visudo命令来修改/etc/sudoers文件(当然我们也可以用vi或者vim修改,但是vi和vim不提供语法检测,当我们错误修改文件之后不方便错误查找)

为了方便,我们约定俗成的在文件的100行左右添加权力下放:

username        hostname=(newusername)        [NOPASSWD:] /command, /command1

六、文件权限查看和读取

1)权限查看

ls -l file        #查看文件权限
ls -ld dir        #查看目录权限

文件权限的信息分为三大类ugo

u代表user也就是文件的所有者
g代表group也就是文件的拥有组
o代表other也就是其他人,和文件的归属没有关系的人
每个大类型中拥有权力的标志位,也就是rwx
r代表read也就是读权限
w代表write也就是写权限
x代表执行权限

我们可以用chmod命令来修改文件相关权限信息

chmod [ugo][+-=][rwx] [filename/dirname] #通过表达式来赋予权限

chmod [xxx] [filename/dirname]    #通过数字来赋予权限

通过对布尔量的理解我们可以对rwx三位进行二进制转8进制的转换
分别
r-4
w-2
x-1

S权限

可以用字符串表达式的方式设置S权限,S权限的作用:

当对文件的u位设置s权限的时候,表示文件执行者在执行时会获得文件的所有者身份,它只能用在二进制文件上
当对文件的g位设置s权限的时候,表示文件的执行者会获得文件所属组身份,如果用在目录上那么在目录下创建的文件的所属组将会变成此目录
Sticky Bit的作用只对目录生效,效果是在当前目录下只有文件的所有者可以删除自己的文件

到此这篇关于linux系统下用户管理相关介绍的文章就介绍到这了,更多相关linux系统用户管理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何在Linux命令行与其他用户通信

    在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用.因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的. wall wall 命令(意为 write all )允许你向所有在系统已登录的用户发送信息.任何用户都可以使用 wall 命令,但 wall 命令通常是系统管理员用来向用户发送公告通知的(比如服务器将关闭维护). 一个系统管理员可能会发送如下信息: $ wall The s

  • Linux系统用户管理命令小结

    用户和组管理 1.用户/组基本概念 Users and groups: . Every process (running program) on the system runs as a particular user. . Every file is owned by a particular user. . Access to files and directories are restricted by user. . The user associated with a running

  • linux文件及用户管理的实例练习

    1.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录. [root@centos7 etc]# ls -d /etc/[^[:alpha:]][:alpha:]* 2.复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中. [root@centos7 etc]# mkdir /tmp/mytest1 && cp -a /etc/[p]*[^[:digit:]] /tmp/mytest1/ [root@centos7

  • linux系统下用户管理相关介绍

    目录 一.用户及用户组存在的意义 1)用户存在的意义 2)用户组存在的意义 二.用户及用户组在系统中存在的方式 三.用户涉及到的系统配置文件 /etc/shadow        用户认证信息文件 四.用户相关操作 1)用户和用户组建立及删除 2)用户和用户组的信息管理 五.用户权力下放 六.文件权限查看和读取 一.用户及用户组存在的意义 1)用户存在的意义 系统的资源是有限的,如何合理分配系统资源? 1.身份 account 2.授权 author 3.认证 auth 以上3个 'a' 称为3

  • linux系统下vim插件安装介绍

    目录 安装vim插件管理器 添加插件演示 删除插件: 安装vim插件管理器 第一次使用插件推荐安装插件管理器,它可以简化我们安装插件的步骤. 1.下载 plug.vim 文件,根据操作系统不同,放置在以下autoload目录中: Linux: ~/.vim/autoload Windows: ~\vimfiles\autoload\plug.vim plug.vim地址:https://raw.githubusercontent.com/junegunn/vim-plug/master/plug

  • Linux系统下netstat命令详细介绍

    目录 一.介绍 二.输出信息描述 三.netstat常见参数 四.netstat网络状态详解 Linux的相关keepalive参数 五.常用netstat相关命令 一.介绍 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的状态信息. Netstat用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况. 二.输出信息描述 执行netstat后输出如下: [root@sy-s

  • Linux系统下ssh的相关配置详细解析

    ssh是大家常用的登录linux服务器的方式,但是为了安全考虑,有时候我们需要针对ssh做一些特殊处理,本文记录笔者曾经做过的一些修改,供大家参考. 一.修改ssh端口 ssh默认为22端口,如果需要修改成其它端口,则可以修改/etc/ssh/sshd_config文件,将#Port 22 注释去掉,修改成需要的端口(比如8888),然后使用如下命令重启ssh服务service sshd restart 二.关闭root用户远程ssh登录的权限 如果不希望root用户远程登录,可以按照如下修改:

  • Unix/Linux系统下的nobody用户与nologin详细介绍

    Unix/Linux系统下的nobody用户是什么? 1.Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在 系统安装后就有的,就像Windows系统中的内置帐户一样. 2.它们是用来完成特定任务的,比如nobody和ftp等,我们访问LinuxSir.Org的网页程序时,官网的服务器就是让客户以'nobody'身份登录的(相当于Windows系统中的匿名帐户); 我们匿名访问ftp时,会用到用户ftp或nobody. 3.首先,nobody是一个普通用户

  • 在linux系统下部署selenium爬虫程序介绍

    目录 前言 一.selenium是什么? 二.使用步骤 1.引入库 2.测试代码 三.部署程序 1.安装chrome 2.安装chromedriver驱动 3.运行测试代码 总结 前言 我这里是工作需要把selenium 爬虫程序部署到Linux 服务器上面 顺便跟大家交流一下 如果有兴趣的话可以看一下 一.selenium是什么? Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样, 爬虫用它来抓取一些js动态加载的数据 二.使

  • Linux系统下Mysql使用简单教程(一)

    如果你会查询这些相关的问题,说明你是一个正在或者准备从事IT的程序猿,对于一个程序猿而言,不会使用linux系统的程序猿不是一好的程序猿哦!因为windows有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的.so以下都是在linux系统中的使用: 安装mysql命令 :$ sudo apt-get install -y mysql-server 查看mysql的版本命令(注意-V是大写,不然会出现如下错误):$ mysql -V 启动mysql命令(其它关闭,重启等功能只需将star

  • linux系统下的ssh登录和配置方法

    一 ssh的两种登录方式 1密码登录: [root@westos Desktop]# ssh root@192.168.122.26 Address 192.168.122.26 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! root@192.168.122.26's password: Last login: Tue Jan 17 13:27:29 2017 from

  • jmeter在linux系统下运行及本地内存调优的方法详解

    1.在linux系统下安装跨系统传输文件工具 root用户下 根目录输入 yum -y install lrzsz 2.把apache-jmeter-4.0zip包 用rz命令上传到linux系统的根目录下 解压 3.配置jmeter环境变量 vim /etc/profile 添加 export PATH=/apache-jmeter-4.0/bin/:$PATH 注意路径 4.使用 rz命令上传jdk1.8 linux 64位版本 解压到 usr/local 目录下 下载jdk安装包 下载地址

  • Windows+Linux系统下Go语言环境安装配置过程

    Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本.现在Go的开发已经是完全开放的,并且拥有一个活跃的社区. 1. Windows安装配置 1️⃣ 下载SDK SDK 的全称是Software Development Kit

随机推荐