User and User Groups in Linux
本文梳理了一下Linux用户和用户组的常用的一些命令。
有关的配置文件:
- /etc/group 存储当前系统中所有用户组信息
- /etc/gshadow 存储当前系统中所有用户组的密码
- /etc/passwd 存储当前系统中所有用户的信息
- /etc/shadow 存储当前系统中所有用户的密码信息
配置文件的内容格式说明:


说明:在使用cat /etc/group查看的时候,你会发现有的组最后是不显示用户列表的。那么如何查看用户组的用户名单列表,下面有code。
用户组的添加,修改,删除
- groupadd group_name//添加用户组
- groupmod -n new_name old_name//修改用户组的名字
- groupmod -g 668 group_name//修改组编号
- groupdel group_name//先删除用户再删除用户组
用户的添加,修改,删除
- useradd -g group_name user_name//用户组中添加用户或(gpasswd -a username groupname)(创建用户的时候,没有指定用户组,则系统会创建与用户名相同的用户组)
- useradd -d /home/xxx user_name//个人文件夹
- usermod -c info user_name//添加用户备注信息
- usermod -l new_user old_name//新用户 占用 旧用户(离职)
- usermod -d /home/xxx user_name//修改用户的文件路径
- usermod -g group_name user_name//移动用户
- userdel user_name//删除用户(不会删除个人文件夹)
- userdel -r user_name//用户和文件一同删除
passwd 命令
- passwd -l user_name//锁定用户(违规用户)或者 在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。
- passwd -u user_name//解锁用户
- passwd -d user_name//清除用户的密码
- passwd user_name//修改或设置用户密码
主组&附属组
一个用户可以同时属于多个用户组(其中必有一个主组和多个附属组)
- gpasswd -a user_name affiliated_group//用户添加附属组
- newgrp affiliated_group //临时切换到附属组(有密码的需要输入密码)
- gpasswd -d user_name affiliated_group//从附属组中删除用户
- useradd -g main_group -G group1,group2,group3 //
- gpasswd group_name//修改组密码
- gpasswd -d A GROUP 或者 从组中删除用户,编辑/etc/group 找到GROUP1那一行,删除 A
查看命令
- Whoami//我是谁?显示当前登录用户
- id username//显示指定用户信息,包括编号、用户名、主要组编号及名称,附属组列表
- groups user_name//查看用户所属组别
- id -gn//查看当前登录用户,所属组别,或者直接groups
- id -a mark//显示详细的信息,如:uid=500(mark) gid=500(teacher) 组=500(teacher)
- 查看某个组的所有组员 grep 'groupName' /etc/group //查看组的ID awk -F":" '{print $1"tt"$4}' /etc/passwd | grep 'groupId' //将groupId替换为ID
设置用户文件的访问权限
- chmod 命令,功能:chmod命令是非常重要的,用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.
- chgrp命令,功能:改变文件或目录所属的组。chgrp -R groupName fileName
- chown 命令,功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
其他命令
- chfn username//设置用户资料,依次输入用户资料
- finger username//显示用户详细资料
- touch /etc/nologin//暂时禁止所有普通用户的登录,建一个空的文件就可以了。
- su username//切换用户,不加参数(username)代表切换到root
- 用户已经登录,无法删除用户,pkill -u username(粗暴的方法)然后删除(不建议使用)
User and User Groups in Linux的更多相关文章
- 【转】How to Change File Ownership & Groups in Linux
有关linux下 文件权限的问题,一直不是很清楚.(参考菜鸟教程: http://www.runoob.com/linux/linux-file-attr-permission.html) 像上面这样 ...
- Linux 杂记
Linux命令行与图形界面进行切换 1.实时切换 1.1 命令行->图形 startx 1.2 图形->命令行 Ctrl+Alt+F1--F6 2.启动默认 2.1 启 ...
- 100个linux站点
(一) 文件下载 (二) 幽默娱乐 (三) 相关新闻 (四) 通用硬体 (五) 专用硬体 (六) 新手站点 (七) 图形/多媒体 (八) 游戏站点 (九) 网路杂志 (十) 入口(教育.链结) (十一 ...
- linux cgroups 简介
cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统 ...
- Linux的Namespace与Cgroups介绍
Namespace 的概念 Linux Namespace 是kernel 的一个功能,它可以隔离一系列系统的资源,比如PID(Process ID),User ID, Network等等.一般看到这 ...
- Linux核心-hc课堂笔记
windows系统:分区 linux系统:树形结构 <鸟哥的私房菜>关于分区.linux命令.基础篇 服务器篇 关于文件夹: /boot 引导分区,操作系统启动时要到该目录下 ...
- linux processes identifiers
Linux, like all Unix uses user and group identifiers to check for access rights to files and images ...
- linux常用命令集锦
linux 查看所有用户所在组 vi /etc/group 一个用户可以属于多个组,查看用户所属的组,groups + 用户名 linux 查找文件命令 find -name 文件名 在 ...
- Linux 上配置 AG
SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...
随机推荐
- 跟我学-Java底层技术系列文章
对于工作中经常用到的东西,还是多看看实现原理,这样用着才能放心. 源码思想学习计划: 1.java基础库 HashCode深入理解 java线程框架窥探 2.集合类 java枚举类使用 递归 ...
- archlinux 安装过程记录
2014年安装了一次,使用U盘启动安装的,但是当时网络有问题,断断续续,没有做详细记录. 现在到了杭州,重新来一次. 使用U盘安装 下载ISO :http://mirrors.163.com/arch ...
- ADO.net操作数据库
今天整理硬盘,发现2年前开始着手开始学习C#的学习日记.陆续整理,一是自己的知识梳理梳理,二是希望与大家多多交流,能给初学者带来一定帮助,当然是更高兴的啦. 断线对象 另一类是与数据源无关的断线对象, ...
- mysql5.6.34-debug Source distribution编译的几个错误
raspberrypi下编译mysql5.6 debug版源码. 1. 启动错误 和mysqld相关的文件及文件夹权限必须设置为mysql用户可读可写可执行!谨记! 2. gdb错误 root@: g ...
- Ansible常用模块
http://liumissyou.blog.51cto.com/4828343/1749121
- php代码优化系列 -- array_walk 和 foreach, for 的效率的比较
实验是我学习计算机科学的一个重要方法,计算机科学不是简单的智力游戏,它本质上来说不是一门科学,而是一个改造世界的工具.数学方法和实验方法是计算机研究的基本方法,也是我们学习的基本方法,数学锻炼我们的思 ...
- ECMAScript6的Promise对象
1. 概念 Promise对象用于异步(asynchronouss)计算,一个Promise对象代表着一个还未完成,但预期完成的操作. 2. 出现原因: 1) 如果你需要通过ajax发送多次请求,而 ...
- nodejs之异步思想
nodejs的精髓就是"异步",但什么是异步呢?我们来看一个例子: var start =new Date; setTimeout(function(){ var end =new ...
- CentOS防火墙问题
问题背景 在Vmware虚拟机中安装了 CentOS 7 的 Linux 版本,并在其中安装了 Oracle 11g 数据库,数据库可以在虚拟机中顺利启动,本地主机也可以 ping 通 linux.准 ...
- 浅谈Swift集合类型
Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...