本文梳理了一下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. 深入研究C语言 第一篇(续)

    没有读过第一篇的读者,可以点击这里,阅读深入研究C语言的第一篇. 问题一:如何打印变量的地址? 我们用取地址符&,可以取到变量的偏移地址,用DS可以取到变量的段地址. 1.全局变量: 我们看到 ...

  2. python第三方库学习(2):requests

    Make a Request r = requests.get('https://github.com/timeline.json') Passing Parameters In URLspayloa ...

  3. MyBatis-NET

    http://www.codeproject.com/Articles/894127/MyBatis-NET https://mybatis.github.io/mybatis-3/

  4. ubuntu 下安装boost库

    ubuntu下安装boost库,,在网上试了一些其他人推荐的libboost-dev 但是会缺少,编译程序会报错: /usr/bin/ld: cannot find -lboost_serializa ...

  5. kali linux 、 windows、ubuntu三系统的引导问题

    '小飞机'是一个学生,所以接触的东西,虽广泛,但并不精通,在此利用随笔,记录自己的一些学习过程,以及自己的想法,既可以有时间自己复习,也可以顺便帮助别人. 近期由于同学的引诱以及男生天生对于破解的好奇 ...

  6. Smarty缓存的5个知识点

    (1)页面缓存:整个页面全局的缓存 需要4个步骤: ①开启缓存  $smarty->caching = true; ②设置缓存的生命周期  $smarty->cache_lifetime ...

  7. 【Visual Lisp】块专题

    ;;关于块 ;;(0)模型空间→块表记录→块图元:顶层的是模型空间→模型空间下有很多图元和一些块表记录→块表记录又有很多图元(此时块表记录就相当于模型空间),一个块表记录可以有多个insert块→同一 ...

  8. 【Thinking in Java】类和对象的初始化过程

    在Java中, 当一个类被调用的时候,它的初始化过程是怎么样的呢? 当一个类被实例化的时候,它的初始化过程又是怎样的呢? 为什么static方法不能未经对象就调用非static方法? 下面我们通过例子 ...

  9. C#匿名函数的坑

    在for循环中catch索引 for (int i = 0; i < n; i++) { foo(() =>{ if (i == x) //这里的i始终都是最后一个... { //bala ...

  10. berkeley db中 dirty read的实现

    dirty reader怎样 不被writor block住? 如数据库支持dirty read, 则 所有打开的dbhandle都配置 DB_READ_UNCOMMITTED; 在线程拿到 writ ...