Linux下的用户和用户组,文件权限:chown和chmod
如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息
这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2-25的用户,属于系统用户(在Linux中,所有的服务都必须建立在有用户的情况下才能执行,所以这些用户叫做Linux系统用户)。
再来看下这些是什么意思(密码已加密,保存在etc/shadow文件下,root权限可查看):
用户帐号 |
用户密码 |
用户ID |
用户组ID |
用户名全称 |
用户主目录 |
用户所使用的shell |
MasterBai |
x |
1002 |
1010 |
/home/MasterBai |
/bin/bash |
这里可以看到,我们在新建一个用户的时候,自动帮我们创建了一个相同名字的用户组MasterBai,ID为1010
若使用-g参数,则在创建用户的时候指定用户组,若不需要在创建的时候指定用户组,则使用-n参数。eg:
我们可以使用groups查看当前用户所属的用户组:
既然一个用户组下可以有多个用户,那么反过来,我想知道某一个用户组下的所有用户呢?在Linux中保存用户信息的是/etc/passwd文件,而保存用户组信息的是/etc/group文件中,列出了所有用户组,密码和gid(用户组ID)。
通过相关的gid,在用户信息文件中查询:比如这里查询用户组baihuidong,gid=1002的所有用户:
至此我们知道,gid=1002,名叫‘baihuidong’的用户组下,有两个用户:baihuidong,MasterBai2
既然一个用户组下可以有多个用户,那一个用户是不是可以属于多个用户组呢?是可以的:
目前MasterBai这个用户,只有一个用户组,gid=1010,名字就叫MasterBai,我们在MasterBai用户目录下创建一个测试文本
可以看到它的用户权限为MasterBai,用户组权限为MasterBai
好,此时我们如下命令更改用户MasterBai的gid,看一下这个文本的所有权限会发生什么变化,注意切换到root权限下:
usermod -g group_name user_name //更改一个用户的主用户组(更改gid)
此时,我们发现,文件所属的用户组,已经变成了baihuidong了,而且用户MasterBai的gid和groupid,都变成了1002
好,此时,MasterBai还只有一个用户组,就是baihuidong,我们使用如下命令,给MasterBai再添加一个用户组:
usermod -G group1,group2,group3 user_name //给用户增加用户组,但是主用户组不变。(文件的所属用户组也不变)
我们发现,给用户多添加了一个用户组之后,文件的所属用户组,还是baihuidong(gid=1002),而和用户组MasterBai(gid=1010)无关。此时我们得出一个结论,一个用户可以有多个用户组,但只有一个gid主用户组(groups中的对应gid),该用户组所创建的文件所属权,只和该用户的gid所对应的用户组有关。
OK,添加用户和用户组讲完了,接下来说下,怎样删除用户呢?
userdel MasterBai3 //删除用户MasterBai3,在/etc/passwd中已经没有相关信息,但是用户的目录文件还在。
rm -rf /home/MasterBai3 //删除用户MasterBai3所在/home下的目录和文件
rm -rf /var/spool/mail/MasterBai3 //删除用户的系统邮箱文件,linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是/var/spool/mail,删除干净的话这个文件也需要删除掉
OK,讲完一些用户的相关基础知识,接下来介绍一个比较常用的2个命令兄弟:chown和chmod,文件权限控制命令。相信都不陌生吧,这两个命令,经常用在线上补丁脚本中。接下来讲单独讲一下chown命令:(chmod后面再讲)
这两个命令,chown是控制哪些人有权限,chmod是控制有什么权限。哈哈哈
首先我们对Linux中的文件一些简单介绍,在MasterBai用户的home目录下新建一个TestFolder,在TestFolder下新建一个Test2.txt:
d |
rwxr-xr-x |
2 |
MasterBai |
baihuidong |
4096 |
Jul |
18 |
14:45 |
TestFolder |
文件标识 |
权限 |
文件硬链接数 |
文件所有者 |
所属用户组 |
字节大小 |
月 |
日 |
时间 |
文件名 |
在文件标识中,d表示目录,-表示文件(其他的类型不常见不了解)
那chown的作用,就是更改目录或文件的所属用户和所属用户组
我现在把用户MasterBai的主用户组改成MasterBai(gid)
接下来我们使用chown的如下命令,让TestFolder目录改成用户为MasterBai2,用户组为baihuidong
chown user_name:group_name file_dir //使该文件的所属人和用户组都改变
OK,但是我想让TestFolder下的Test2.txt权限也一起改了呢?使用chown的如下命令,使该文件以及目录下的所有文件和目录的所属人和用户组都改变。
chown -R user_name:group_name file_dir //更变file_dir文件或者目录下的所有文件的所属用户和用户组
如果我只想改变用户所属人,不想改变群组,也可以使用chown user_name file_dir 不要后面的“:group_name”来实现。
chown user_name file_dir //更变一个目录或者文件的所属人
好了,chown就是这鸟用,哈哈,接下来将chmod,讲chmod之前,先讲下之前的文件属性的那一大串rwxr-xr-x是什么意思:
应该不难发现,这些属性都是由9位字母组成,Linux将其三个一组,分成三组:
这张图应该能解释清楚吧,好了现在开始使用chmod命令了:
比如,当前TestFolder这个目录的权限为755,我现在要把它改成750,怎么操作呢?
切换到root权限下执行:
chmod TestFolder/
使用chmod的如下命令可以使TestFolder目录下的所有文件目录权限都改为755:
chmod -R TestFolder/
文件加权限,减权限暂时没有用到,以后补充。。。
最近我在有些环境下使用如下命令添加用户的时候,在/etc/passwd文件中看到已经添加成功,但是home文件夹下没有新添加用户的目录,而且命令行只有一个"$"符号,这是什么原因呢?我去查了一下useradd的参数,有些环境下,需要使用-s和-m命令,才能让新添加的用户有正常的命令行提示和新用户目录:
useradd -m -s /bin/bash MasterBai2
Linux下的用户和用户组,文件权限:chown和chmod的更多相关文章
- Linux学习之用户身份与文件权限
Linux学习之用户身份与文件权限 1 用户身份及能力 Linux系统的管理员之所以是root,并不是因为其名叫root,而是该用户身份号码数值(UID)为0. 管理员UID为0:系统的管理员用户 系 ...
- linux下添加用户并将文件夹授权给某一个用户
### linux下添加用户并将文件夹授权给某一个用户 背景:在做一个项目时,需要外包的前端人员调试测试环境的页面,但是又不能给他服务器的账号信息,就在服务器上新添加一个子账户,再给这个账户项目文件的 ...
- Linux常用命令--用户管理,文件权限,打包命令等
幕布链接 Linux常用命令--用户管理,文件权限,打包命令等
- linux下添加用户并赋予root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing pass ...
- linux下加入用户并赋予root权限
1.加入用户.首先用adduser命令加入一个普通用户,命令例如以下: #adduser tommy //加入一个名为tommy的用户 #passwd tommy //改动password Cha ...
- Linux下的用户、组和权限
目录 一:用户和组信息的查看 查看用户信息 查看密码信息 查看组信息 特殊组wheel 二:用户和组信息的管理 用户管理 组管理 三:文件权限 文件权限的查看 文件权限的修改 ACL控制权限 setf ...
- Linux下添加用户及用户组
创建用户组hdpgroup: $ sudo addgroup hdpgroup 如果用户hdp不存在,把hdp添加到hdpgroup用户组: $ sudo adduser --force -ingro ...
- linux中文件权限格式与chmod命令以及用户和用户组的管理
简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [<权限范围><符号><权限代码>] - ...
- 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...
随机推荐
- 012-数据结构-树形结构-哈希树[hashtree]、字典树[trietree]、后缀树
一.哈希树概述 1.1..其他树背景 二叉排序树,平衡二叉树,红黑树等二叉排序树.在大数据量时树高很深,我们不断向下找寻值时会比较很多次.二叉排序树自身是有顺序结构的,每个结点除最小结点和最大结点外都 ...
- 数据库sequence的作用和用法
转: 数据库sequence的作用和用法 2016年10月14日 19:51:03 很菜很菜的鸟 阅读数 14456 标签: oracle数据库db2sequence seqence的作用: se ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
笔记 2.SpringCloud的网关组件zuul基本使用 简介:讲解zuul网关基本使用 1.加入依赖 2.启动类加入注解 @EnableZuulProxy 默认集成断路器 ...
- JVM调优小结
JVM调优浅谈 https://www.cnblogs.com/andy-zhou/p/5327288.html 1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类 ...
- 分布式存储ceph介绍(1)
一.Ceph简介: Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环 ...
- TypeScript01 编译环境的搭建、字符串特性、类型特性
知识准备:JavaScript满足ES5前端规范.TypeScript满足ES6前端规范 1 TypeScript开发环境 TypeScript代码不能直接被浏览器识别,必须先转换成JS代码:通常是利 ...
- SaCa DataQuality概述
1.1 产品特性 UniEAP DataQuality(以下简称DataQuality)是UniEAP最新推出的数据质量管理平台.基于数据监控服务.数据质量校验引擎.数据清洗引擎以及面向服务数据质量架 ...
- Mac下配置多个SSH Keys
Mac下配置多个SSH Keys 生成SSH key # Creates a new ssh key using the provided email # 默认生成的文件名为id_rsa,可以根据命令 ...
- 数据库工具DbVisualize安装、破解教程,亲测可用
之前工作中遇到生产环境不允许导入Oracle的dmp文件,只能导入sql脚本,但是表中存在clob字段,直接用plsql工具无法导出clob字段,用了下dbvisualizer可以直接导出,亲测可用. ...
- python多进程单线程+协程实现高并发
并发:看起来像同时运行就是并发 并行:同一时间同时被执行叫做并行,最大并行数就是CPU核数 协程不是实实在在存在的物理基础和操作系统运行逻辑,只是程序员从代码层面避开了系统对遇到IO的程序会切走CPU ...