【Linux】如何改变文件的属性与权限
介绍几个常用于群组、拥有者、各种身份的权限的修改的命令,如下所示:
- chgrp :改变文件所属群组
- chown :改变文件拥有者
- chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
1)改变所属群组chgrp
改变一个文件的群组真是很简单的,直接以chgrp来改变即可,这个指令就是change group的缩写!不过,请记得,要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!
假设你是以root的身份登入Linux系统的,那么在你的家目录内有一个install.log的文件,如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组,但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?
[root@www ~]# chgrp [-R] dirname/filename ... 选项与参数: -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录 都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。 范例: [root@www ~]# chgrp users install.log [root@www ~]# ls -l -rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log [root@www ~]# chgrp testing install.log chgrp: invalid group name `testing' <== 发生错误讯息~找不到这个群组名~ |
发现了吗?文件的群组被改成users了,但是要改成testing的时候,就会发生错误。
2) 改变文件拥有者chown
如何改变一个文件的拥有者呢?很简单呀!既然改变群组是change group,那么改变拥有者就是change owner!要注意的是,用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有记录的用户名称才能改变。
chown的用途还满多的,他还可以顺便直接修改群组的名称呢!! 例如『chown .sshd install.log』就是修改群组此外,如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项即可!我们来看看语法与范例:
[root@www ~]# chown [-R] 账号名称 文件或目录 [root@www ~]# chown [-R] 账号名称:组名 文件或目录 选项与参数: -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更 范例:将install.log的拥有者改为bin这个账号: [root@www ~]# chown bin install.log [root@www ~]# ls -l -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log 范例:将install.log的拥有者与群组改回为root: [root@www ~]# chown root:root install.log [root@www ~]# ls -l -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log |
3)改变文件权限chmod
文件权限的改变使用的是chmod这个指令。权限的设定方法有两种,分别可以使用数字或者是符号来进行权限的变更。
- 数字类型改变文件权限
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770!变更权限的命令chmod的语法是这样的:
[root@www ~]# chmod [-R] xyz 文件或目录 选项与参数: xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更 |
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么就下达:
[root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc |
那如果要将权限变成『 -rwxr-xr-- 』呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 !所以你需要下达『chmod 754 filename』。 另外,在实际的系统运作中最常发生的一个问题就是,常常我们以vim编辑一个shell的文字批处理文件后,他的权限通常是 -rw-rw-r-- 也就是664, 如果要将该文件变成可执行文件,并且不要让其他人修改此一文件的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:『 chmod 755 test.sh 』的指令!
另外,如果有些文件你不希望被其他人看到,那么应该将文件的权限设定为例如:『-rwxr-----』,那就下达『chmod 740 filename 』吧!
- 符号类型改变文件权限
还有一个改变权限的方法。从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user
(2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外,a 则代表all亦即全部的身份!那么读写的权限就可以写成r,
w, x!也就是可以使用底下的方式来看:
chmod |
u |
+(加入) |
r |
文件或目录 |
来实作一下吧!假如我们要『设定』一个文件的权限成为『-rwxr-xr-x』时,基本上就是:
- user (u):具有可读、可写、可执行的权限;
- group 与 others (g/o):具有可读与执行的权限。
所以就是:
[root@www ~]# chmod u=rwx,go=rx # 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格! [root@www ~]# ls -al .bashrc -rwxr-xr-x |
那么假如是『 -rwxr-xr-- 』这样的权限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』来设定。此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限,那么我就可以使用:
[root@www ~]# ls -al .bashrc -rwxr-xr-x 1 [root@www ~]# chmod a+w [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 |
而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
[root@www ~]# chmod a-x [root@www ~]# ls -al .bashrc -rw-rw-rw- 1 |
参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php
【Linux】如何改变文件的属性与权限的更多相关文章
- Linux系统文件和目录的属性及权限
1 文件属性概述 Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.硬链接数.所归属的用户和用户组.最近修改时间等内容(文件名严格来说不属于文件的属性): 下面是 ...
- [转]linux如何修改文件或目录的权限(chmod)
linux如何修改文件或目录的权限(chmod) chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个 ...
- linux中改变文件权限和属性
Linux中,默认显示所有用户名的文件在/etc/passwd,用户组的信息在/etc/group 密码/etc/shadow chgrp改变文件所属用户组 chgrp [-R] 用户组名 文件或目录 ...
- Linux文件(夹)属性与权限
文件属性与权限,文件权限设置 参考资料:鸟哥的Linux私房菜 用户与用户组 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...
- #Linux学习笔记# Linux文件的属性以及权限说明
1. Linux文件的属性 关于Linux文件的属性的说明和设置请参考鸟哥Linux私房菜:Linux 的文件权限与目录配置 2. 目录和文件的权限意义 在Linux系统中,每个文件都有三种身份的权限 ...
- linux如何修改文件或目录的权限(chmod)
chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个7代表文件所属者所在组的权限,第三个7代表其它用户 ...
- linux根据该文件夹的读取权限和权限运行差异
假设你linux下使用ls.细心的你会发现居然夹有权限运行.例如: drwxrwxr-x 11 cl cl 4096 9 25 14:22 ./ drwxr-xr-x 49 cl cl 4096 1 ...
- linux - 目录、文件默认属性: umask使用
一 权限掩码umask umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读( ...
- linux下改变文件的字符编码
首先确定文件的原始字符编码: $ file -bi test.txt 然后用 iconv 转换字符编码 $ iconv -f from-encoding -t to-encoding file > ...
随机推荐
- [Linux]在终端启动程序关闭终端不退出的方法
一般情况下关闭终端时,那么在这个终端中启动的后台程序也会终止,要使终端关闭后,后台程序保持执行,使用这个指令: nohup 命令 & 如:nohup test.sh & 回车,然后提示 ...
- SqlServer数据库(可疑)解决办法4种
亲自试过,可行!!!!! SqlServer数据库(可疑)解决办法4种 重启服务--------------------------------------------------日志文件丢了, ...
- ASP 未结束的字符串常量
之前的电脑是XP的,前段时间公司将电脑升级到了Windows7 今天在处理一个asp项目时发现打开就报错了"未结束的字符串常量" 在网络上了解到是因为编码的问题,但我的项目文件都是 ...
- [Functional Programming] Fst & Snd, Code interview question
cons(a, b) constructs a pair, and car(pair) and cdr(pair) returns the first and last element of that ...
- Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain
笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,可是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤.最后response过滤,而且中间几项过滤的顺序不能动态改变.所 ...
- Timus 2005. Taxi for Programmers 题解
The clock shows 11:30 PM. The sports programmers of the institute of maths and computer science have ...
- SQLServer 之 树查询
一.SqlServer树查询 1.使用公用表表达式(CTE) 很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例. ...
- gradle 添加jar依赖,执行grade build时出现“程序包不存在”问题
引用的第三方依赖的包都找不到了 解决办法 group'com.suneony' version'1.0.0' apply plugin:'java' repositories { mavenLocal ...
- 4、Android Activity的生命周期 Activity的生命周期
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV4aWt1b18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- Windows安装MySQL解压版
1:解压 2:设置环境变量 3:修改my.ini [mysqld] basedir = D:\MySQL\Server\mysql--win32 datadir = D:\MySQL\Server\d ...