Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
-rwxrwxr-x 4 root root 4096 Apr 19 2012 main.c
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
第0位确定文件类型,
第1-3位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,
第7-9位确定其他用户拥有该文件的权限。
第1、4、7位表示读权限
第2、5、8位表示写权限
第3、6、9位表示可执行权限
在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
[root@www /]# ls -l
total 64
d rwx r-x r-x 2 root root 4096 Feb 15 14:46 cron
d rwx r-x r-x 3 mysql mysql 4096 Apr 21 2014 mysql
就是说root用户组 其他用户组的不可以修改
在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,
属主有可读、可写、可执行的权限;
与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
对于 root 用户来说,一般情况下,文件的权限对其不起作用。
更改文件属性
1、chgrp:更改文件属组
语法:
chgrp [-R] 属组名文件名
参数选项
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
如:
chgrp -R daokr test 更改 test的 目录属于组daokr 但是daokr用户无法修改该目录文件
2、chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
daokr@daokr-sys:/home$ chown -R daokr:daokr test
chown: 正在更改'test/tt/m.c' 的所有者: 不允许的操作
chown: 正在更改'test/tt' 的所有者: 不允许的操作
chown: 正在更改'test' 的所有者: 不允许的操
必须用root用户操作修改权限组和属性主
root@daokr-sys:/home# ls -l
总用量
drwxr-xr-x daokr daokr 3月 : daokr
-rw-r--r-- root root 3月 : maintest.c
drwxr-xr-x daokr daokr 3月 : test
利用冒号 “:”改变所属组
如: 把myfile文件夹的组改成ikphp组直接用:
drwxrwx--x 2 daokr daokr 4096 3月 31 22:49 myfile
daokr@DK:~$ sudo chown -R :ikphp myfile
drwxrwx--x 2 daokr ikphp 4096 3月 31 22:49 myfile
3、chmod:更改文件9个属性 更改文件 只读 只写 可执行的属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
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的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:
改下m.c 文件的属性 为 rwx rwx --- 意思是 主用户权限是 rwx=7 root用户是 rwx=7 其他用户 无权限
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-rw-r--r-- daokr daokr 3月 : m.c
daokr@daokr-sys:/home/test/tt$ chmod m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-rwxrwx--- daokr daokr 3月 : m.c
daokr@daokr-sys:/home/test/tt$ sudo chown daokr:root m.c
[sudo] daokr 的密码:
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-r--rwx--- daokr root 3月 : m.c
daokr@daokr-sys:/home/test/tt$ vim m.c
daokr@daokr-sys:/home/test/tt$ chmod m.c
上面的 把 m.c 修改了权限组root 和 文件属性 440;说明 daokr用户和root用户都无法修改该文件;因为是只读文件
第二种案例:通过字符更改
基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!
那么我们就可以藉由u, g, o来代表三种身份的权限!
此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x!也就是可以使用底下的方式来看:
chmod | u g o a |
+(加入) -(除去) =(设定) |
r w x |
文件或目录 |
如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
daokr@daokr-sys:/home/test/tt$ chmod u=rwx,g=rwx,o=- m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-rwxrwx--- daokr root 3月 : m.c
daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=-wx,o=- m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-r-------- daokr root 3月 : m.c
daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=r,o=- m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-r--r----- daokr root 3月 : m.c
daokr@daokr-sys:/home/test/tt$ chmod u=r-x,g=rw,o=- m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量
-r--rw---- daokr root 3月 : m.c
而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1 然后
daokr@daokr-sys:/home/test/tt$ chmod a-x m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量 4
-r--rw---- 1 daokr root 32 3月 27 15:35 m.c
daokr@daokr-sys:/home/test/tt$ chmod u=rwx,g=rwx,o=r m.c
daokr@daokr-sys:/home/test/tt$ ls -l
总用量 4
-rwxrwxr-- 1 daokr root 32 3月 27 15:35 m.c
利用 加号和减号 添加和删除权限
分别u,g,o用户进行加减操作权限
daokr@DK:~$ chmod o-x a.out
daokr@DK:~$ chmod o+x a.out
daokr@DK:~$ chmod u-x a.out
daokr@DK:~$ chmod g-x a.out
设置权限当前用户有读写执行;用户组;读写执行;other用户只有可执行权限
chmod u=rwx,g=rwx,o=x myfile
4.对目录dir默认系统设置umaks umask 022设置当前系统 新建的目录默认权限是022 就是775
参数-S 表示以源码查看
daokr@DK:~$ umask -S
u=rwx,g=rwx,o=rx
daokr@DK:~$ umask
daokr@DK:~$ umask -S
u=rwx,g=rx,o=rx
daokr@DK:~$ umask
0022
Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令的更多相关文章
- Linux修改文件的权限,拥有者,所属组
修改文件的权限,拥有者,所属组 1.设置文件的权限(chmod) ①方式一(建议使用这种方式) 命名:chomd 755 文件名 ②方式二 命名:chomd -R +x 文件名 2.设置文件的拥有者( ...
- Linux 文件基本属性与目录管理 (chmod chown ls cp mv cat )
Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限. 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的 ...
- Linux 文件基本属性(转)
Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规 ...
- 六、Linux 文件基本属性
Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规 ...
- 一起学Linux04之Linux文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 为了介绍文件属性,首 ...
- 吴裕雄--天生自然Linux操作系统:Linux 文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Linux中我们可 ...
- Linux 文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Linux中我们可 ...
- 3 Linux文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为保护系统的安全性,Linux系统对不同的用访问的同意文件(包括目录文件)的权限做了不同的规定eg: [root@www ...
- Linux 修改所属组与所属人
1.chown work /test/* 修改test文件夹下所有文件的所属人(owner)为work 2.chgrp work /test/* 修改test文件夹下所有文件的所属组(group)为w ...
随机推荐
- 摘要 - Digest
首先从md5说起,一般新进入开发行业最先接触的就是md5了,md5本质上是一个hash(谐音:哈希)算法,可以从一个大文件信息中提取出一小段信息,叫提取摘要,有的地方也有提取指纹这种说法,其实指纹这个 ...
- springboot读取系统级环境变量,和读写系统属性以及unittest来获取环境变量的方法
环境变量的读取以及系统属性的设置 环境变量只能读取,不能修改,系统属性可以修改 系统变量的读取方式: System.getEnv() 系统属性有多重读取和修改方式: 其修改方式为: 读取系统属性: @ ...
- java之struts2之数据检验
1.使用struts2时,有时候需要对数据进行相关的验证.如果对数据的要求比较严格,或对安全性要求比较高时,前端 js 验证还不够, 需要在后端再进行一次验证,保证数据的安全性. 2.struts2提 ...
- 8 search中的timeout参数
默认的search,是没有时间限制的.比如,一个search,可能要10分钟才能搜完,那么,es就会等10分钟,直到结果出来. 然而,在某些场景下,客户是等不了10分钟的.比如,电商网站,客户宁可 ...
- Node.js学习(第二章:node核心模块--fs)
前言 Node.js中赋予了JavaScript很多在浏览器中没有的能力,譬如:文件读写,创建http服务器等等,今天我们就来看看在node中怎样用JavaScript进行文件的读写操作. 读文件 我 ...
- ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...
- ceph 剔除osd
先将osd.2移出集群 root@ceph-monster:~# ceph osd out osd.2 marked out osd.2. root@ceph-monster:~# ceph osd ...
- 自定义一个简单的JDBC连接池
一.什么是JDBC连接池? 在传统的JDBC连接中,每次获得一个Connection连接都需要加载通过一些繁杂的代码去获取,例如以下代码: public static Connection getCo ...
- c# 搜索字符串
- [http] http body中chunked数据的编码格式
一 我们知道,http response的body可以使用chunked编码.这个时候不需要显示的 指定content-length来标记结尾. 如: 我们可以见到编码的chunked字样,并且没有看 ...