1.Linux基础操作:主题3 用户用户组和权限管理

1. 基本概念

1.1 用户和用户组

Linux是多用户操作系统,所以具有一套的完整用户系统,并进行有效的文件权限控制措施。每一个程序或者文件,都是根据用户(组)进行权限控制与管理的。
用户组是将权限相同的用户集中管理的组织单位。
每一个用户都属于一个用户组。在使用图形界面创建用户不指定用户组的情况下,Linux会自动创建一个与用户名相同的用户组。
每一个用户都有自己的目录。一般用户是在/home下,比如用户densintian的主目录就是/home/densintian,而root用户的目录位置在/root。
说道这里,相信root这个词都不陌生,就是超级管理用户。能够代替所有的用户干任何事,为了安全起见,任何能不再它下面干的事情,就不要在它下面干。

1.2 权限

从使用方法的角度,权限分成三种:读取(r)写入(w)执行(x)
从使用者的角度,权限分为:所有者,用户组和全体用户
两者结合就变成了下面的表格(最后一行我们可以先不去管它)


好了,我们现在通过命令查看一下文件的权限如下:
[densintian@rachel src]$ ls -l
总用量 20
-rw-rw-r--. 1 densintian densintian 1415 2014/10/26 00:23:15 add.cpp
-rwxrwxr-x. 1 densintian densintian 8806 2014/10/26 00:24:12 a.out
drwxrwxr-x. 2 densintian densintian 4096 2014/10/28 12:36:59 temp
[densintian@rachel src]$
ls 命令本身,是列目录。-l 是采用详细信息列表的方式显示。
下面我们从左边开始,介绍每一列的含义
第一个信息就是文件的权限。
现在目录中有三个文件
add.cpp 是程序的源代码文件
a.out    是add.cpp编译后的可执行文件
temp    是一个目录
我们位来说明第一列的信息, 
第一位 说明了当前列表对象的类型  “-“ 是文件,而”d”就是目录
第二位到第四位是所有者的权限,temp目录和a.out都是既可以读些也可以执行的状态。而add.cpp文件,因为只是一个源代码文件,本身是无法被执行的。所以并没有可执行权限。
第五位到第七位是用户组的权限。
第八位到第十位是Everyone的权限。
 第二个信息是硬连接数。
这个概念我们在以后用到的时候再说,在这里我们只需要知道,对于一般的文件这个值是1,对于目录,这个值代表了这个目录中子目录的个数。因为任何一个目录都会有两个子目录[.]和[..],所以对于目录来说,这个值最小是2.
第三个信息是这个文件的所有者。
第四个信息是这个文件的用户组。
这里要注意,所有者和用户组是不相关的。这就好比我制作了一份考勤表的模板,要求一个项目部门给我填好。那么我作为文件所有者,具有文件的读写权限。这个项目部门(用户组)也需要有这个文件的读写权限。而我和这个部门没有直接的所属关系。
第五个信息是这个文件对象的大小
第六个信息是这个文件对象的最终修改日期和时间
第七个信息是这个文件对象的文件名
注意,新安装的Fedora操作系统会显示简单的日期和时间信息。为了和本教程的显示结果一致,请将环境变量$TIME_STYLE设置为'+%Y/%m/%d.%H:%M:%S',也可以直接写如.bashrc文件中。
[densintian@rachel ~]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
export TIME_STYLE='+%Y/%m/%d.%H:%M:%S'
[densintian@rachel ~]$

2 变更权限

2.1 所有者和用户组的变更

所有者的变更,命令chown

命令格式 chown [所有者][:[]] 文件...

用户组的变更,命令 chgrp

命令格式chgrp [所属群组] [文件或目录...] 

2.2 文件权限的变更

文件权限的变更, 命令 chmod
格式:chmod [options] mode files

2.3 实战

命令的讲述稍显抽象,我们通过实际操作来说明这个问题。

[chown]

[densintian@rachel temp]$ su #改变用户权限的操作必须在root用户下
密码:
[root@rachel temp]# ll       #<span style="font-family: Arial, Helvetica, sans-serif;">有test1,test2两个文件,都属于root用户</span>
总用量 0
-rw-r--r--. 1 root root 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 root root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chown densintian test1 #改变test1文件的所有者
[root@rachel temp]# ll
总用量 0
-rw-r--r--. 1 densintian root 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 root       root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chown densintian:densintian test2 #改变test2文件的所有者和用户组
[root@rachel temp]# ll  #可以看到区别
总用量 0
-rw-r--r--. 1 densintian root       0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian densintian 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chown root:densintian test1
[root@rachel temp]# ll  #改变成不所属的用户和用户组
总用量 0
-rw-r--r--. 1 root       densintian 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian densintian 0 2014/10/28.13:49:41 test2
[root@rachel temp]#

[chgrp]
[root@rachel temp]# ll  #基于上次的运行结果
总用量 0
-rw-r--r--. 1 root       densintian 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian densintian 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chgrp root test*  #可以使用通配符
[root@rachel temp]# ll
总用量 0
-rw-r--r--. 1 root       root 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# 


[chmod]

[root@rachel temp]# ll
总用量 0
-rw-r--r--. 1 root       root 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chmod 751 test1  #改变test1的权限,所有者分配读、写、执行(7)的权限,所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
[root@rachel temp]# ll
总用量 0
-rwxr-x--x. 1 root       root 0 2014/10/28.13:49:25 test1
-rw-r--r--. 1 densintian root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# chmod u=rwx,g=rx,o=x test2 #上一个命令的另一种写法,执行结果是一样的。
[root@rachel temp]# ll
总用量 0
-rwxr-x--x. 1 root       root 0 2014/10/28.13:49:25 test1
-rwxr-x--x. 1 densintian root 0 2014/10/28.13:49:41 test2
[root@rachel temp]# 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田辛 | 田豆芽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值