linux的文件属性以及管理方法和windows是完全不同的,所以学习linux首先来了解下用户以及文件权限是怎么回事

p { margin-bottom: 0.25cm; line-height: 120% }

linux中权限3个部分组成,用户,用户组,other。就好比一家人,用户是各自的房间,有隐私。不准其他人查看。用户组好比是客厅,属于公共空间,大家都可以用。other就好比是外来的客人,对用户以及用户组都没有访问权限。只有用户同意才行。

通过ls -al来查看文件的属性,如下图:

其中第一个字符代表的是这个文件是目录,文件或者链接文件等

d代表路径

-代表文件

l代表连接文件

b表示接口设备

c表示设备文件里面的串行设备

接下来的字符,3个为一组。均为rwx的组合。代表用户,用户组,other的权限。其中r代表可读,w代表可写,x代表可执行。rwx对应的数字分别是4,2,1

rwx=4+2+1=7代表有读,写,执行权限

第3列和第4列代表的是用户和用户组的归属。第3列是所属用户,第4列是所属用户组。

第5列是文件的容量大小,单位为B

第6列是创建文件日期或者是最近的修改日期。

第7列就是文件名了

p { margin-bottom: 0.25cm; line-height: 120% }

以下面的这个为例,-代表是文件。 rw代表用户有读与写的权限。说明用户和用户组都有读与写的权限。r代表只有读的权限

p { margin-bottom: 0.25cm; line-height: 120% }

那么如何改变文件的权限呢:有3个命令可以使用:

1 chgrp: 改变文件所属用户组

2 chown:改变文件所有者

3 chmod:改变文件权限

首先来看下chgrp的操作。要被改变的用户组必须要在/etc/group中存在的才行。否则就会显示错误。

就想下面这个例子,将zhf的文件夹都改成testtest用户组,但提示错误的用户组。

p { margin-bottom: 0.25cm; line-height: 120% }

来看下/etc/group中的结构。第一列是用户组名,第二列是加密后的口令字串,密码默认设置在/etc/gshadow文件中,而在这里用x代替, 第三列是组标识号,也就是GID,比如这里用户组zhf的GID就是1000. 这里和/etc/passwd中的组标识号对应。 最后一列代表的是属于这个用户组的用户。

p { margin-bottom: 0.25cm; line-height: 120% }

接下来看下chown。 修改的用户名必须是已经存在于系统中的帐号,也就是/etc/passwd中有该用户的记录。

第一列是用户名,第二列是用户名密码,这里用x代替,第三列是用户ID,第四列是用户组ID,也就是和上面/etc/group中的用户组ID对应,通过这个就将用户和用户组对应了起来。第五列是用户的目录。

p { margin-bottom: 0.25cm; line-height: 120% }

最后一个命令是chmod. 我们先用ls -al来查看下文件的权限。其中test.py的权限为rw-r- -r- -

p { margin-bottom: 0.25cm; line-height: 120% }

用户为root, 用户组为root。代表的是root有读和写的权限。和root在同一个用户组的用户有读的权限,其他用户只有读的权限

我们首先转换用户su zhf到zhf用户,然后来改写test.py看是否能成功。在VIM中修改后保存,提示’readonly’ option is set(add ! overwrite)。无法进行改写。

p { margin-bottom: 0.25cm; line-height: 120% }

如果需要其他用户有写的权限,那么就得用chmod 646 test.py. 但修改的时候提示如下错误。提示操作不允许。原因在于我们用的是用户名zhf, zhf只有读的权限,没有写和执行权限。 chmod需要的是执行权限

p { margin-bottom: 0.25cm; line-height: 120% }

同样的由于没有执行权限,所以也无法删除该文件;

p { margin-bottom: 0.25cm; line-height: 120% }

用su root转换成root用户后,执行chmod 646 test.py. 可以看到其他用户有了写权限,这个时候用zhf去改写test.py就能成功。

p { margin-bottom: 0.25cm; line-height: 120% }

接下来看下用户和用户组的关系。首先我们来看下如何新增用户。采用useradd的命令:

useradd zhf_test -u 1100 -G zhf.。 然后用查看etc/passwd中的用户,可以看到新增一个zhf_test. 用户id 是1100, 用户组为1100。

p { margin-bottom: 0.25cm; line-height: 120% }

那么-G zhf是什么意思呢? 这个是代表我们将zhf_test用户也加入到zhf这个用户组下面。我们啦查看下/etc/group。 在zhf用户组的第四列增加了zhf_test。 前面介绍过,这一列代表的是属于这个用户组的其他用户。另外我们也可以看到也新增了一个zhf_test的用户组,用户组ID为1100. 这个用户组ID和我们的用户ID 是一样的

p { margin-bottom: 0.25cm; line-height: 120% }

那么我们是否可以自己设置用户组ID 呢。可以用命令:useradd zhf_test -u 1100 -g 1101 -G zhf来设置。但是提示用户组ID 1101不存在。

p { margin-bottom: 0.25cm; line-height: 120% }

首先得先添加一个1101的用户组,添加后再次添加用户并指定用户组ID那么就可以设置了。如果添加用户的时候不带-g的命令,则系统会自动添加一个用户ID一样的用户组ID。

p { margin-bottom: 0.25cm; line-height: 120% }

添加完用户后,再用passwd zhf_test的方式来给这个用户设定一个密码

那么在新添加用户后,如何查看这个用户属于哪个组呢。通过groups命令可以查看到。从下面的结果看到zhf_test查出来有2个用户组一个是zhf_test.
一个是zhf.
那么这2个用户组是什么关系呢?第一个zhf_test是有效用户组,第二个zhf是指zhf_test所属的用户组。

p { margin-bottom: 0.25cm; line-height: 120% }

这2两个用户组有什么区别呢。由于zhf_test分别属于zhf_test以及zhf用户组,因此在读,写,操作时候,只要是zhf_test和zhf这两个用户组拥有的功能,zhf_test都会拥有。但是对已经存在的文件而言。那么对于这个用户新增一个文件或文件夹,这个新文件或新文件夹到底属于zhf_test还是zhf呢。我们来实际测试看下。利用touch test2.txt新建立一个文件。通过ls查看发现这个文件的用户以及用户组都属于zhf_test。证明新增的文件是属于groups查询到的第一个用户组。也就是有效用户组

p { margin-bottom: 0.25cm; line-height: 120% }

那么什么是有效用户组呢,和我们用groupadd建立的用户组有什么关系呢? 这里就要引用到2个概念:

1 初始用户组 2有效用户组。

初始用户组:也就是/etc/passwd中的第四栏的GID。这个就是初始用户组。当用户登陆系统的时候,立刻就拥有了这个用户组的相应权限。

有效用户组:表示用户此时此刻所在的用户组是什么。初次接触linux的同学会感到很奇怪,用户所在的用户组不就是应该是初始建立的用户组么,难道用户组还会变么,答案是肯定的。原因就在于有newgrp这个命令。newgrp可以改变当前用户所属的用户组。如下的截图,当使用newgrp zhf转换到zhf后,groups查询到的第一列也就是有效用户组从zhf_test变成了zhf.

p { margin-bottom: 0.25cm; line-height: 120% }

那么这会带来什么影响呢。前面我们新建文件的时候,所属的用户和用户组都是zhf_test。那么现在新建文件来看下归属关系呢。此时新增一个文件test2.txt,它的所属用户组就变成了zhf而不是zhf_test.

p { margin-bottom: 0.25cm; line-height: 120% }

因此在建立文件的时候,系统会根据有效用户和有效用户组来创建。当然如果从新增用户组开始从未使用过newgrp这个命令。 那么有效用户组也就是初始用户组。

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

p { margin-bottom: 0.25cm; line-height: 120% }

一起来学linux:用户与用户组的更多相关文章

  1. 菜鸟学Linux - 用户与用户组基础

    /etc/passwd: 用户的信息是保存在/etc/passwd下面(早期的时候,用户的密码也是放在该文件中.后来出于安全考虑,将密码放在/etc/shadow中去): /etc/group: 用户 ...

  2. Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  3. Linux用户与用户组,UID及GID

    以下列出文章: Linux系统下如果查看用户的UID和GID:http://blog.csdn.net/ahangliu/article/details/7567444 Linux的用户和用户组管理: ...

  4. linux用户及用户组操作

    Linux用户.用户组权限管理详解 Linux用户管理三个重要文件详解: Linux登陆需要用户名.密码./etc/passwd 文件保存用户名.登录Linux时,Linux 先查找 /etc/pas ...

  5. 八、Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  6. linux用户和用户组管理详解

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  7. Linux用户与用户组

    Linux用户与用户组 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管 ...

  8. Linux 用户和用户组管理(useradd userdel groupadd groupdel)

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. Linux系统用户账户的 ...

  9. linux 用户、用户组不能是全数字

    今天封装命令行,需要创建用户.用户组,遇到下面问题,如图: 当时我和迷茫,为什么明明存在‘1111’这个用户组,但是却提示不存在呢??难道是linux的一个bug??? 接着我又试了几个: 发现规律了 ...

  10. Linux 用户和用户组操作

    [认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...

随机推荐

  1. JMeter Plugin插件配置及远程监控

    下载jmeter plugins 插件: https://jmeter-plugins.org/downloads/all/ 官网建议我们直接下载plugins-manager.jar,然后进行可选择 ...

  2. 狙杀ES6之开光篇

    前言 最近有很多小伙伴在后台留言说,闰土哥,是时候来一波干货了!(机智的你们似乎已经猜到我接下来要说什么了,哈哈-).没错,今天闰土为大家带来了久违的干货文章,而且是一个系列的哦!(文章系列较长,请自 ...

  3. 理解Linux文件系统之inode

    很少转发别人的文章,但是这篇写的太好了. 理解inode   作者: 阮一峰 inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础. 我觉得,理解inode,不仅有助于提高系统 ...

  4. Java 学习内容总结

    最近对Core Java基础做了一些学习.有自己的见解,也有别人的总结,供大家参考. 1 实现多线程的方式有几种? 其实这个问题并不难,只是在这里做一个总结.一共有三种. 实现Runnable接口,并 ...

  5. Android - 基于 Speex 的高度封装语音库,0 耦合使用

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  6. Spring mybatis源码篇章-SqlSessionFactoryBean

    前言:通过实例结合源码的方式解读,其中涉及到的文件来自于博主的Github毕设项目SchoolActivity_WxServer,引用的jar包为mybatis-spring-1.3.0.jar Sp ...

  7. 【EntityFramework 6.1.3】个人理解与问题记录

    前言 又是一个炎热夏日的晚上,开着空调听着音乐又开始了我们今天的博文.此文并不是ROM工具哪家强之类的引战贴,只是本文自己的一点看法和见解,望前辈看官有望斧正 声明 本文欢迎转载,原文地址:http: ...

  8. jqthumb.js缩略图插件-让缩略图正常显示而不变形

    插件介绍 项目中有图片的时候,有的宽大于高,有的宽小于高,尤其在做图片列表的时候,经常发现缩略图会有变形的.我们怎样来解决这一问题呢. 方法一:用photoshop来处理缩略图.小的项目还可以,大的项 ...

  9. reversing.kr easy crack 之write up

    之前学逆向感觉学得一踏糊涂,这阶段好多师傅带我,一定要好好学,重新开始,认真学习. 来看打开可执行文件: 用ollydbg载入,单步执行后停到了入口点: 分析入口点,并没有加壳,于是F9执行程序,跳出 ...

  10. 怎么把系统装进u盘(ultraiso)

    ​首先要下载一个叫ultraiso的软件.可以在百度中搜索此软件下载.下载后安装,安装后打开软件,如图所示.        ​点击左上角的文件选项,在弹出的菜单中,点击打开选项,打开一个你要装进U盘的 ...