本文梳理了一下Linux用户和用户组的常用的一些命令。


有关的配置文件:

  • /etc/group 存储当前系统中所有用户组信息
  • /etc/gshadow 存储当前系统中所有用户组的密码
  • /etc/passwd 存储当前系统中所有用户的信息
  • /etc/shadow 存储当前系统中所有用户的密码信息

配置文件的内容格式说明:

说明:在使用cat /etc/group查看的时候,你会发现有的组最后是不显示用户列表的。那么如何查看用户组的用户名单列表,下面有code。


用户组的添加,修改,删除

    1. groupadd group_name//添加用户组
    2. groupmod -n new_name old_name//修改用户组的名字
    3. groupmod -g 668 group_name//修改组编号
    4. groupdel group_name//先删除用户再删除用户组

用户的添加,修改,删除

  1. useradd -g group_name user_name//用户组中添加用户或(gpasswd -a username groupname)(创建用户的时候,没有指定用户组,则系统会创建与用户名相同的用户组)
  2. useradd -d /home/xxx user_name//个人文件夹
  3. usermod -c info user_name//添加用户备注信息
  4. usermod -l new_user old_name//新用户 占用 旧用户(离职)
  5. usermod -d /home/xxx user_name//修改用户的文件路径
  6. usermod -g group_name user_name//移动用户
  7. userdel user_name//删除用户(不会删除个人文件夹)
  8. userdel -r user_name//用户和文件一同删除

passwd 命令

  1. passwd -l user_name//锁定用户(违规用户)或者 在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。
  2. passwd -u user_name//解锁用户
  3. passwd -d user_name//清除用户的密码
  4. passwd user_name//修改或设置用户密码

主组&附属组

一个用户可以同时属于多个用户组(其中必有一个主组和多个附属组)

  1. gpasswd -a user_name affiliated_group//用户添加附属组
  2. newgrp affiliated_group //临时切换到附属组(有密码的需要输入密码)
  3. gpasswd -d user_name affiliated_group//从附属组中删除用户
  4. useradd -g main_group -G group1,group2,group3 //
  5. gpasswd group_name//修改组密码
  6. gpasswd -d A GROUP 或者 从组中删除用户,编辑/etc/group 找到GROUP1那一行,删除 A

查看命令

  1. Whoami//我是谁?显示当前登录用户
  2. id username//显示指定用户信息,包括编号、用户名、主要组编号及名称,附属组列表
  3. groups user_name//查看用户所属组别
  4. id -gn//查看当前登录用户,所属组别,或者直接groups
  5. id -a mark//显示详细的信息,如:uid=500(mark) gid=500(teacher) 组=500(teacher)
  6. 查看某个组的所有组员 grep 'groupName' /etc/group //查看组的ID awk -F":" '{print $1"tt"$4}' /etc/passwd | grep 'groupId' //将groupId替换为ID

设置用户文件的访问权限

  1. chmod 命令,功能:chmod命令是非常重要的,用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.
  2. chgrp命令,功能:改变文件或目录所属的组。chgrp -R groupName fileName
  3. chown 命令,功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。

其他命令

  1. chfn username//设置用户资料,依次输入用户资料
  2. finger username//显示用户详细资料
  3. touch /etc/nologin//暂时禁止所有普通用户的登录,建一个空的文件就可以了。
  4. su username//切换用户,不加参数(username)代表切换到root
  5. 用户已经登录,无法删除用户,pkill -u username(粗暴的方法)然后删除(不建议使用)

  有关用户和用户组的概念文章链接

User and User Groups in Linux的更多相关文章

  1. 【转】How to Change File Ownership & Groups in Linux

    有关linux下 文件权限的问题,一直不是很清楚.(参考菜鸟教程: http://www.runoob.com/linux/linux-file-attr-permission.html) 像上面这样 ...

  2. Linux 杂记

    Linux命令行与图形界面进行切换     1.实时切换  1.1 命令行->图形  startx  1.2 图形->命令行  Ctrl+Alt+F1--F6  2.启动默认  2.1 启 ...

  3. 100个linux站点

    (一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) 新手站点 (七) 图形/多媒体 (八) 游戏站点 (九) 网路杂志 (十) 入口(教育.链结) (十一 ...

  4. linux cgroups 简介

    cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统 ...

  5. Linux的Namespace与Cgroups介绍

    Namespace 的概念 Linux Namespace 是kernel 的一个功能,它可以隔离一系列系统的资源,比如PID(Process ID),User ID, Network等等.一般看到这 ...

  6. Linux核心-hc课堂笔记

    windows系统:分区 linux系统:树形结构 <鸟哥的私房菜>关于分区.linux命令.基础篇  服务器篇 关于文件夹: /boot       引导分区,操作系统启动时要到该目录下 ...

  7. linux processes identifiers

    Linux, like all Unix uses user and group identifiers to check for access rights to files and images ...

  8. linux常用命令集锦

    linux 查看所有用户所在组   vi /etc/group 一个用户可以属于多个组,查看用户所属的组,groups + 用户名 linux 查找文件命令   find -name 文件名    在 ...

  9. Linux 上配置 AG

    SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...

随机推荐

  1. TCP/IP入门(3) --传输层

    原文:http://blog.csdn.net/zjf280441589/article/category/1854365 传输层的主要功能 1)传输层为应用进程之间提供端到端的逻辑通信(网络层是为主 ...

  2. Unity加载模块深度解析(纹理篇)

    在游戏和VR项目的研发过程中,加载模块所带来的效率开销和内存占用(即“加载效率”.“场景切换速度”等)经常是开发团队非常头疼的问题,它不仅包括资源的加载耗时,同时也包含场景物件的实例化和资源卸载等.在 ...

  3. Spring aop 原始的工作原理的理解

    理解完aop的名词解释,继续学习spring aop的工作原理. 首先明确aop到底是什么东西?又如何不违单一原则并实现交叉处理呢? 如果对它的认识只停留在面向切面编程,那就脏了.从oop(Objec ...

  4. JDBC小工具--TxQueryRunner及其单元测试

    1.TxQueryRunner的简介(需要相关jar包的请留言) TxQueryRunner类是common-dbutils下QueryRunner的子类,是用来简化JDBC操作的,所以要导入comm ...

  5. java jdk动态代理

    在面试的时候面试题里有一道jdk的动态代理是原理,并给一个事例直接写代码出来,现在再整理一下 jdk动态代理主要是想动态在代码中增加一些功能,不影响现有代码,实现动态代理需要做如下几个操作 1.首先必 ...

  6. android开发中在界面上实现曲线图的几个开源项目

    转自:https://wapiknow.baidu.com/question/1959128379041474620?qq-pf-to=pcqq.c2c 几个相关开源项目: 1.  MPAndroid ...

  7. 命令安装VS

     Installing Visual Studio Visual Studio 2015   Other Versions Visual Studio 2013 Visual Studio 2010 ...

  8. spring AOP应用

    转自:http://wb284551926.iteye.com/blog/1887650 最近新项目要启动,在搭建项目基础架构的时候,想要加入日志功能和执行性能监控的功能,想了很多的想法,最后还是想到 ...

  9. javascript练习-私有状态

    在经典的面向对象编程中,经常需要将对象的某个状态封装或隐藏在对象内,只有通过对象的方法才能访问这些状态,对外只暴露一些重要的状态可以直接编写.这是就需要私有状态. function Range(fro ...

  10. NYOJ 737 石子合并(一)

    分析: 本题为区间型动态规划,dp[i][j] 表示从第 i 堆合并到第 j 堆的最小代价, sum[i][i] 表示第 i 堆到第 j 堆的石子总和,则动态转移方程: dp[i][j] = min( ...