linux权限命令有哪些?怎样使用?
Admin 2021-09-17 群英技术资讯 1155 次浏览
linux权限命令有哪些?linux权限命令有chgrp命令、chown命令、chmod命令和umask命令这四种,但是不同命令的作用和用法上有一定的区别,接下来小编就给大家详细的介绍一下。

本教程操作环境:CentOS 6系统、Dell G3电脑。
Linux chgrp命令:修改文件和目录的所属组
chgrp 命令用于修改文件(或目录)的所属组。
为了方便初学者记忆,可以将 chgrp 理解为是 "change group" 的缩写。
chgrp 命令的用法很简单,其基本格式为:
[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)
-R(注意是大写)选项长作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。
使用此命令需要注意的一点是,要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示 "invaild group name"。
举个例子,当以 root 身份登录 Linux 系统时,主目录中会存在一个名为 install.log 的文件,我们可以使用如下方法修改此文件的所属组:
[root@localhost ~]# groupadd group1 #新建用于测试的群组 group1 [root@localhost ~]# chgrp group1 install.log #修改install.log文件的所属组为group1 [root@localhost ~]# ll install.log -rw-r--r--. 1 root group1 78495 Nov 17 05:54 install.log #修改生效 [root@localhost ~]# chgrp testgroup install.log chgrp: invaild group name 'testgroup'
可以看到,在具有 group1 群组的前提下,我们成功修改了 install.log 文件的所属组,但我们再次试图将所属组修改为 testgroup 时,命令执行失败,就是因为系统的 /etc/group 文件中,没有 testgroup 群组。
Linux chown命令:修改文件和目录的所有者和所属组
chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。
当只需要修改所有者时,可使用如下 chown 命令的基本格式:
[root@localhost ~]# chown [-R] 所有者 文件或目录
-R(注意大写)选项表示连同子目录中的所有文件,都更改所有者。
如果需要同时更改所有者和所属组,chown 命令的基本格式为:
[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录
注意,在 chown 命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.temp),就会造成系统误判。因此,建议大家使用冒号连接所有者和所属组。
当然,chown 命令也支持单纯的修改文件或目录的所属组,例如 chown :group install.log 就表示修改 install.log 文件的所属组,但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令。
另外需要注意的一点是,使用 chown 命令修改文件或目录的所有者(或所属者)时,要保证使用者用户(或用户组)存在,否则该命令无法正确执行,会提示 "invalid user" 或者 "invaild group"。
【例 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
chmod命令:修改文件或目录的权限
chmod 命令设定文件权限的方式有 2 种,分别可以使用数字或者符号来进行权限的变更。
1、chmod命令使用数字修改文件权限
Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:
r --> 4
w --> 2
x --> 1
由于这 9 个字符分属 3 类用户,因此每种用户身份包含 3 个权限(r、w、x),通过将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。
拿 rwxrw-r-x 来说,所有者、所属组和其他人分别对应的权限值为:
所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5
所以,此权限对应的权限值就是 765。
使用数字修改文件权限的 chmod 命令基本格式为:
[root@localhost ~]# chmod [-R] 权限值 文件名
-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。
例如,使用如下命令,即可完成对 .bashrc 目录文件的权限修改:
[root@localhost ~]# ls -al .bashrc -rw-r--r--. 1 root root 176 Sep 22 2004 .bashrc [root@localhost ~]# chmod 777 .bashrc [root@localhost ~]# ls -al .bashrc -rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc
再举个例子,通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r--(644),那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件,则只需将此文件的权限该为 rwxr-xr-x(755)即可。
2、chmod命令使用字母修改文件权限
既然文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。
使用字母修改文件权限的 chmod 命令,其基本格式如下图所示。

例如,如果我们要设定 .bashrc 文件的权限为 rwxr-xr-x,则可执行如下命令:
[root@localhost ~]# chmod u=rwx,go=rx .bashrc [root@localhost ~]# ls -al .bashrc -rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc
再举个例子,如果想要增加 .bashrc 文件的每种用户都可做写操作的权限,可以使用如下命令:
[root@localhost ~]# ls -al .bashrc -rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc [root@localhost ~]# chmod a+w .bashrc [root@localhost ~]# ls -al .bashrc -rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc
umask命令:令新建文件和目录拥有默认权限
Linux 通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。
那么,我们如何得知 umask 默认权限的值呢?直接通过 umask 命令即可:
[root@localhost ~]# umask 0022 #root用户默认是0022,普通用户默认是 0002
umask默认权限的修改方法
umask 权限值可以通过如下命令直接修改:
[root@localhost ~]# umask 002 [root@localhost ~]# umask 0002 [root@localhost ~]# umask 033 [root@localhost ~]# umask 0033
不过,这种方式修改的 umask 只是临时有效,一旦重启或重新登陆系统,就会失效。如果想让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。例如:
[root@localhost ~]# vim /etc/profile
...省略部分内容...
if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
umask 002
#如果UID大于199(普通用户),则使用此umask值
else
umask 022
#如果UID小于199(超级用户),则使用此umask值
fi
…省略部分内容…这是一段 Shell 脚本程序,不懂也没关系,大家只需要知道,普通用户的 umask 由 if 语句的第一段定义,而超级用户 root 的 umask 值由 else 语句定义即可。 修改此文件,则 umask 值就会永久生效。
关于linux权限命令的内容就介绍到这了,上文有示例供大家参考,对大家了解linux权限命令的使用有一定的参考价值,希望本文能帮助到大家,如果还想要了解更多linux系统的操作技巧,大家可以继续浏览群英网络其他相关的文章。
文本转载自PHP中文网
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
linux修改日期和时间的方法:执行【date -s "年-月-日 时:分:秒"】命令即可成功修改日期和时间。如果要查看时间和日期,直接执行【date】命令即可。
linux修改权限的语句是“chmod [-R] 权限值 文件或者目录名”;该语句可以修改指定文件的权限,chmod命令是控制用户对文件的权限的命令,权限的设置方法可以采用文字或者数字代号;文件调用权限可以分为文件所有者、用户组和其他用户。
CentOS7下搭建LAMPR环境完整教程
linux下grep命令是用来做什么呢?日常工作中,grep命令的使用是非常多的,grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式。因此这篇文章就和大家聊一聊linux下的grep命令。
Linux系统怎样实现定时备份数据库?备份数据库的重要性不用多说,万一数据库出现问题,如果我们定时做好备份,那么就能快速的恢复数据库,因此定时备份数据库还是非常有必要的。所以,下文就给大家分享一下Linux下实现定时备份数据库的操作。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008