Linux ❉ 权限管理

一 介绍

        由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(如家人、朋友等)。在这种情况下,大家都可以使用管理员身份直接登录。但在服务器上就不是这种情况了,往往运行的数据越重要(如游戏数据),价值越高(如电子商城数据、银行数据),则服务器中对权限的设定就要越详细,用户的分级也要越明确。
        和 Windows 系统不同,Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。举个简单的例子,在你的 Linux 系统中,和系统服务相关的文件通常只有 root 用户才能读或写,就拿 /etc/shadow 这个文件来说,此文件记录了系统中所有用户的密码数据,非常重要,因此绝不能让任何人读取(否则密码数据会被窃取),只有 root 才可以有读取权限。
        此外,如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一些目录下的文件,而非团队的其他人则不予以开放。通过前面章节的学习我们知道,只需要将团队中的所有人加入新的群组,并赋予此群组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统中乱搞。
        比如说,本来 root 用户才能做的开关机、网络设置程序,新增或删除用户等命令,一旦允许任何人拥有这些权限,系统很可能会经常莫名其妙的挂掉。而且,万一 root 用户的密码被其他人获取,他们就可以登录你的系统,从事一些只有 root 用户才能执行的操作,这是绝对不允许发生的。
        因此,在服务器上,绝对不是所有的用户都使用 root 身份登录,而要根据不同的工作需要和职位需要,合理分配用户等级和权限等级。

# Linux 系统中,文件或目录的权限信息,可以使用 ls 命令查看
[root@192 ~]# ls -al
total 56
dr-xr-x---. 17 root root 4096 Jan 16 11:21 .
dr-xr-xr-x. 17 root root  244 Dec 27 16:25 ..
-rw-------.  1 root root 1716 Dec 27 15:46 anaconda-ks.cfg
-rw-------.  1 root root  489 Jan  9 16:31 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile

二 chgrp命令:修改文件和目录的所属组

1 介绍

        chgrp 命令用于修改文件(或目录)的所属组。可以将 chgrp 理解为是 "change group" 的缩写。

2 命令格式

[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)
-R 选项长作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。
# 要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示 "invaild group name"。

三 chown命令:修改文件和目录的所有者和所属组

1 介绍

        chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。

2 命令格式

# 当只需要修改所有者时
[root@localhost ~]# chown [-R] 所有者 文件或目录
-R 选项表示连同子目录中的所有文件,都更改所有者。
# 如果需要同时更改所有者和所属组
[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录
# 在 chown 命令中,所有者和所属组中间也可以使用点(.),
# 但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.temp),就会造成系统误判。
# 因此,建议大家使用冒号连接所有者和所属组。

# chown 命令也支持单纯的修改文件或目录的所属组,例如:
chown :group install.log 
# 表示修改 install.log 文件的所属组
# 但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令。

        使用 chown 命令修改文件或目录的所有者(或所属者)时,要保证使用者用户(或用户组)存在,否则该命令无法正确执行,会提示 "invalid user" 或者 "invaild group"。

3 示例

【例 1】
# 其实,修改文件的所有者,更多时候是为了得到更高的权限,举一个实例:
[root@localhost ~]# touch file
# 由root用户创建file文件
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 Apr 17 05:12 file
# 文件的所有者是root,普通用户user对这个文件拥有只读权限
[root@localhost ~]# chown user file
# 修改文件的所有者
[root@localhost ~]# ll file
-rw-r--r--. 1 user root 0 Apr 17 05:12 file
# 所有者变成了user用户,这时user用户对这个文件就拥有了读、写权限

# 可以看到,通过修改 file 文件的所有者,user 用户从其他人身份(只对此文件有读取权限)转变成了所有者身份,对此文件拥有读和写权限。

【例 2】
# Linux 系统中,用户等级权限的划分是非常清楚的,root 用户拥有最高权限,可以修改任何文件的权限,
# 而普通用户只能修改自己文件的权限(所有者是自己的文件),例如:
[root@localhost ~]# cd /home/user
# 进入user用户的家目录
[root@localhost user]# touch test
# 由root用户新建文件test
[root@localhost user]# ll test
-rw-r--r--. 1 root root 0 Apr 17 05:37 test
# 文件所有者和所属组都是root用户
[root@localhost user]# su - user
# 切换为user用户
[user@localhost ~]$ chmod 755 test
chmod:更改"test"的权限:不允许的操作 #user用户不能修改test文件的权限
[user@localhost ~]$ exit
# 退回到root身份
[root@localhost user]# chown user test
# 由root用户把test文件的所有者改为user用户
[root@localhost user]# su - user
# 切换为user用户
[user@localhost ~]$ chmod 755 test
# user用户由于是test文件的所有者,所以可以修改文件的权限
[user@localhost ~]$ ll test
-rwxr-xr-x. 1 user root 0 Apr 17 05:37 test
# 查看权限

# 可以看到,user 用户无权更改所有者为 root 用户文件的权限,只有普通用户是这个文件的所有者,才可以修改文件的权限。

【例 3】
[root@localhost ~]# chown user:group file
[root@localhost ~]# ll file
-rw-r--r--. 1 user group 0 Apr 17 05:12 file

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值