Linux -- 用户与用户组

1.Linux 系统中有三种角色:所有者(用户),用户组与其他人,一张图可以说明用户与用户组的关系。

如图,某公司相当于一个用户组,该用户组下有A,B两个用户,用户拥有各自的私密空间和公用空间,不是该用户组下的就是其他人,其他人无法访问用户组下的内容。

2.GID 与 UID

UID 可以理解为 user ID,也就是 用户ID,GID 可以理解为 group ID,也就是 用户组ID,这两个 ID 值非常重要,一般不建议更改,比如 Linux 中会根据 UID 和 GID 来判断一个文件属于哪个用户和用户组,如果随意改动 UID 和 GID,导致无法找到用户下的文件或者对文件没有了权限,会很麻烦。

用户ID 的范围不同,在 Linux 中代表的特性也不同,在学习对用户组操作前,先了解一下不同 UID 的范围对应的不同特性。

查看用户的 UID 和 GID  id username ,如

[root@localhost ~]# id sherlock
uid=(sherlock) gid=(holmes) 组=(holmes)

3.用户组和用户常用的相关系统文件

/etc/passwd - 使用者账号咨询
/etc/shadow - 使用者账号咨询加密
/etc/group - 用户组信息

Linux -- 用户组

1.groupadd 新增用户组

用法:groupadd [-g gid [-o]] [-r] [-f] group

[root@localhost home]# groupadd holmes
[root@localhost home]# grep holmes /etc/group /etc/gshadow
/etc/group:holmes:x::
/etc/gshadow:holmes:!::

2.groupmod 修改 group 参数

-n 修改组名
-g 修改GID
[root@localhost home]# groupmod  -n demo holmes #将holmes重命名为demo
[root@localhost home]# grep demo /etc/group /etc/gshadow
/etc/group:demo:x::
/etc/gshadow:demo:!::

3.groupdel 删除用户组

需要保证没有用户使用该用户组作为初始用户组,如果有用户将要删除的用户组做为初始用户组,那么可以将修改用户的GID,或者删除这个用户,然后再删除用户组

[root@localhost home]# groupdel home
groupdel: cannot remove the primary group of user 'tom'
#删除 tom 用户/修改 tom 的GID后,可以进行删除操作
[root@localhost home]# groupdel home

4.gpasswd 用户管理员功能

所谓用户管理员就是为一个用户组设置管理员,管理员可以管理账户进行加入或者移出该用户组。

用法:gpasswd [option] group

gpasswd [-ad] user group

root操作
-A 将某个用户设为某个用户组的管理员
-M 将某些账号加入到用户组中
-r 将用户组的密码删除
-R 让用户组的密码栏失效
用户组管理员操作
-a 将用户加入到用户组中
-d 将用户移除用户组中
  • 创建用户组 home 的管理员 tom (用root创建)
[root@localhost home]# gpasswd -A tom home
[root@localhost home]# grep home /etc/group /etc/gshadow
/etc/group:home:x::
/etc/gshadow:home:!:tom:
  • 切换到 tom 管理员下,将 jun 加入到 home 用户组中
[tom@localhost ~]$ id jun
uid=(jun) gid=(jun) 组=(jun)
[tom@localhost ~]$ gpasswd -a jun home
Adding user jun to group home
[tom@localhost ~]$ id jun
uid=(jun) gid=(jun) 组=(jun),(home)
  • 将 jun 移出 home 用户组下
[tom@localhost ~]$ gpasswd -d jun home
Removing user jun from group home
[tom@localhost ~]$ id jun
uid=(jun) gid=(jun) 组=(jun)

用户功能

1.finger 查阅用户相关信息

用法:finger [-lmsp] [user ...] [user@host ...]

-s 单行显示
-l 多行显示
[root@localhost ~]# finger -s tom
Login Name Tty Idle Login Time Office Office Phone
tom * * No logins
[root@localhost ~]# finger -l tom    # -l 可省略
Login: tom Name:
Directory: /home/tom Shell: /bin/bash
Never logged in.
No mail.
No Plan.
  • 新建一个计划
[tom@localhost ~]$ echo "I will work hard this year" >~/.plan
[tom@localhost ~]$ finger tom
Login: tom Name:
Directory: /home/tom Shell: /bin/bash
Never logged in.
No mail.
Plan:
I will work hard this year
  • 查看系统上登录的用户与登录时间
[tom@localhost ~]$ finger
Login Name Tty Idle Login Time Office Office Phone
jun pts/ 7d Jan : (192.168.123.123)
root root pts/ Feb : (192.168.111.111)

2.chfn 修改 finger 的信息

用法:chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username](一般没什么用)

[tom@localhost ~]$ chfn
Changing finger information for tom.
密码:
Name []: tom
Office []: - #办公室电话
Office Phone []: #办公室手机号
Home Phone []: - #家里电话 Finger information changed.

3.chsh 修改用户的shell

用法:chsh [-s shell] [-l] [-u] [-v] [username]

  • 查看自己的shell
[tom@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
  • 修改自己的shell (一般别乱改)
[tom@localhost ~]$ chsh -s /bin/csh

关于用户的内容见 用户与用户组之用户篇

https://www.cnblogs.com/holmes-cat/p/10345553.html

Linux -- 用户组篇的更多相关文章

  1. Linux入门篇(一)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  2. Linux入门篇(二)——文件

    这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...

  3. Linux -- 用户篇

    Linux -- 用户与用户组 1.Linux 系统中有三种角色:所有者(用户),用户组与其他人,一张图可以说明用户与用户组的关系. 如图,某公司相当于一个用户组,该用户组下有A,B两个用户,用户拥有 ...

  4. Linux随笔-鸟哥Linux基础篇学习总结(全)

    Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...

  5. 前端学习 linux —— 第一篇

    前端学习 linux - 第一篇 本文主要介绍"linux 发行版本"."cpu 架构"."Linux 目录结构"."vi 和 v ...

  6. 不就是抽个血吗,至于么-jQuery,Linux完结篇

    hi 趁着周一去抽血化验,真开心...下午报告才出来,不过早上来了就开始各种晕菜,叫错名字,说错话.....至于么.. 还有在教研室的30天就可以肥家了,凯森凯森.今天不想干活(哪天想干过我就问问), ...

  7. LNMP平台搭建---Linux系统安装篇

    在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...

  8. linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解

    linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...

  9. Linux — 用户组、权限

    Linux 用户组分为:所有者.所在组.其他组 所有者:谁创建,谁是所有者.命令:ls -al 所在组:当创建文件或者文件夹时,这个文件或者文件夹所分配到的用户组,这样就会有效地隔离文件. 其他组:和 ...

随机推荐

  1. DOM节点常见的属性及操作

    (1)常见节点属性 childNodes      子节点 nodeList children      子节点(元素节点) HTMLCollection parentNode       父节点 p ...

  2. 【Android】13.0 UI开发(四)——列表控件RecyclerView的横向布局排列实现

    1.0 新建项目,由于ListView的局限性,RecyclerView是一种很好取代ListView的控件,可以灵活实现多种布局. 2.0 新建项目RecyclerviewTest,目录如下: 3. ...

  3. webstorm添加自定义代码块

    widnow下使用alt+ctrl+s 调出setting面板 mac下使用command+,(逗号)调出Preferences面板 搜索live template选中js,在javascrpt 模板 ...

  4. C语言——顺序表插入、删除、定位运算算法

    说明:将元素x插入到顺序表L的第i个数据元素之前,这个i是从1开始的,但是程序中数组都是从0算起的,不要混淆了. 头文件: header.h // 顺序表的结构定义 #define Maxsize 1 ...

  5. Java 开源博客 Solo 1.4.0 发布 - 简化

    Solo 1.4.0 正式发布了!这个版本主要是简化了配置项,修复了一些缺陷并改进了很多细节体验,感谢一直以来关注和支持我们的朋友! 只需一个命令即可启动(不需要安装数据库.部署容器):也可以通过 w ...

  6. 创建第一个windows服务

    windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志. 计算机启动时,服务会自动开 ...

  7. spring-wind 搭建过程问题记录

    最近想搭一个 shiro+ssm的快速开发框架,用于后台管理以及微信公众号的开发.后台主要是权限管理,于是选择有spring+shiro,微信公众号的前端页面搜了下有用velocity开发的,刚好看到 ...

  8. Log4Net使用教程

    简介 为方便跟踪程序运行情况,我们可以记录系统运行异常日志,winform和web都可以通过继承异常或者try来实现. 官方网站:http://logging.apache.org/log4net/ ...

  9. linux第一个C语言和sh脚本

    linux第一个C语言 $ gedit hello_world.c #include <stdio.h> int main(void) { printf("hello world ...

  10. java通过jxls框架实现导入导出excel

    //使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 02 03//读取04 05public class ReadExcel {06 private ...