2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown 2.16 umask 2.17 隐藏权限lsattr/chattr...

chmod

一个文件有三个权限位  

第2位往后看9位是权限 

Readeble 可读

Writable 可写

Executable 可执行

(“r”表示可读)  ( “w”表示可写 )    ( “x”表示可执行)  ( “-”表示不可读、不可写、不可执行)

 rw-(所有者)   r--(所属组)  r--(其他用户组)  共九位

权限用数字表示: r=4   w=2   x=1    

举例:rwx=7    rw-=6    --x=1    rw-r--r--=644    rw-r-xr-x=655

表示: rw- =6 --x =1 -w- =2 组合表示: rwxrwxrwx=777 rw-rw-rw-=666 -wx-wx-wx=333

 

150216_qkSw_3708120.png

1、命令语法:
chmod xxx 文件名  如:#chmod 700 3.txt

2、命令描述:
chmod = change mode   用于改变用户对文件/目录的读写执行权限。

3、命令选项:
-R 选项的作用等同于chown命令的-R选项,也表示级联更改。

**知识点:注意:在Linux系统中,一个目录的默认权限为755,而一个文件的默认权限为644。 **

**知识点:chmod  a(全部) u(所有者) g(所属组) o(其他用户组) + – (增加或者取消) **

**知识点:如果在selinux开启的环境下,那么所创建的目录或文件权限后面都会有一个点 ‘.’,说明这个目录或文件受制于selinux;如:**

实例: 修改3.txt文件权限

[root@cham2 tmp]# ls -l
总用量 8
-rw-r--r--  1 root root   2 10月 24 21:21 2.txt
-rw-r--r--  1 root root   0 10月 25 15:24 3.txt
drwxrwx---  2 root root  19 10月 24 13:02 cham2
drwxr-xr-x  4 root root  28 10月 24 12:58 chamlinux
-rwx------. 1 root root 836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root root  17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
-rw-------. 1 root root   0 10月 19 06:55 yum.log
[root@cham2 tmp]# chmod 700 3.txt
[root@cham2 tmp]# ls -l 3.txt
-rwx------ 1 root root 0 10月 25 15:24 3.txt
[root@cham2 tmp]# 

把目录下的 子文件 子目录 全部批量的修改权限,可以加一个-R选项

实例: 使用-R选项,把cham2权限修改为770,。

[root@cham2 tmp]# chmod -R 770 cham2
[root@cham2 tmp]# ls -ld cham2
drwxrwx--- 2 root root 19 10月 25 15:41 cham2
[root@cham2 tmp]# ls -l cham2/
总用量 0
-rwxrwx--- 1 root root 0 10月 25 15:41 1.txt

chmod  a(全部) u(所有者) g(所属组) o(其他用户组) + – (增加或者取消)

实例:

[root@cham2 tmp]# chmod u=rwx,g=r,o=r cham2
[root@cham2 tmp]# ls -ld cham2
drwxr--r-- 2 root root 19 10月 25 15:41 cham2
[root@cham2 tmp]# chmod a+x cham2
[root@cham2 tmp]# ls -ld cham2
drwxr-xr-x 2 root root 19 10月 25 15:41 cham2
[root@cham2 tmp]# chmod a-x cham2
[root@cham2 tmp]# ls -ld cham2
drw-r--r-- 2 root root 19 10月 25 15:41 cham2
[root@cham2 tmp]# chmod u-x cham2
[root@cham2 tmp]# ls -ld cham2
drw-r--r-- 2 root root 19 10月 25 15:41 cham2
[root@cham2 tmp]# chmod o+x cham2
[root@cham2 tmp]# ls -ld cham2
drw-r--r-x 2 root root 19 10月 25 15:41 cham2

 

chown

1、命令语法:

#chown  cham  /tmp/yum.log 

chown -R username:group filename 

2、命令描述:
chown = change owner   命令chown 可以更改文件的所有者 也可改所属组。

3、命令选项:
-R R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。

实例:更改yum.log的所有者

[root@cham2 tmp]# ls -l /tmp/yum.log
-rw-------. 1 root root 0 10月 19 06:55 /tmp/yum.log
[root@cham2 tmp]# chown cham /tmp/yum.log 
[root@cham2 tmp]# !ls
ls -l /tmp/yum.log
-rw-------. 1 cham root 0 10月 19 06:55 /tmp/yum.log

chgrp

chgrp=change group的缩写

实例:更改所属组

[root@cham2 tmp]# chgrp    change group  ^C
[root@cham2 tmp]# chgrp user1 /tmp/yum.log 
[root@cham2 tmp]# ls -l /tmp/yum.log
-rw-------. 1 cham user1 0 10月 19 06:55 /tmp/yum.log

实例:更改yum.log.的所有者和所属组

[root@cham2 tmp]# chown user1:cham /tmp/yum.log 
[root@cham2 tmp]# !ls
ls -l /tmp/yum.log
-rw-------. 1 user1 cham 0 10月 19 06:55 /tmp/yum.log

实例:只更改yum.log的所属组 (命令“:”前忽略所有者)

[root@cham2 tmp]# chown :root /tmp/yum.log 
[root@cham2 tmp]# !ls
ls -l /tmp/yum.log
-rw-------. 1 user1 root 0 10月 19 06:55 /tmp/yum.log

实例:-R联级更改/tmp/cham2 以及cham2的文件。

[root@cham2 tmp]# chown -R user1:cham /tmp/cham2
[root@cham2 tmp]# ls -l /tmp/cham2/
总用量 0
-rwxrwx--- 1 user1 cham 0 10月 25 15:41 1.txt
[root@cham2 tmp]# ls -ld /tmp/cham2/
drw-r--r-x 2 user1 cham 19 10月 25 15:41 /tmp/cham2/

linux文件的解释

ls

 -l中显示的内容如下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

- 10个字符确定不同用户能对文件干什么

- 第一个字符代表文件(-)、目录(d),链接(l)

- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

- 第一组rwx:文件所有者的权限是读、写和执行

- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

- 1 表示连接的文件数

- root 表示用户

- root表示用户所在的组

- 1213 表示文件大小(字节)

- Feb 2 09:39 表示最后修改日期

- abc 表示文件名

 

 

 

umask

默认情况下umask是0022,目录的权限值为755,普通文件的权限值为644。

1.命令语法
umask xxx(这里的xxx代表3个数字)。

2.命令描述
命令umask用于改变文件的默认权限。
如果要查看umask的值,只要在命令行输入umask,然后回车即可。
QQ截图20171024111536.png
这里umask的预设值为0022,规则:

若用户建立普通文件,则预设没有可执行权限,只有r,w两个权限,最大值为666(-rw-rw-rw-)。 若用户建立目录,则预设所有权限均开放,即777(-rwxrwxrwx)。 umask计算法:

例如我们把umask的值改为003,那么它创建的普通文件(最大值666)的权限是什么呢?
普通文件的最大值-umask的值=将要创建的普通文件权限
(rw-rw-rw-)-(-------wx)=rw-rw-r--
可以看出是 666-003=664。

例如我们把umask的值改为003,那么它创建的目录(最大值777)的权限是什么呢?
目录文件的最大值-umask的值=将要创建的目录权限
(rwxrwxrwx)-(-------wx)=rwxrwxr--
可以看出777-003=774

**注意在计算umask的时候不能用数字表示,只能用字母。**

chattr

  chattr:设置隐藏权限change file attributes on a Linux file system

  lsattr:查看文件/目录的隐藏属性

1.命令语法
chattr [+-=][Asaci][文件或目录名] ,其中+,-,=分别表示增加,减少和设定。

2.命令描述
命令chattr(chage attribute)改变属性的意思

3.命令选项
A 增加该属性后,表示文件或目录的atime将不可修改。
s 增加该属性后,会将数据同步写入磁盘中。
a 增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。
c 增加该属性后,表示自动压缩该文件,读取时会自动解压。
i 增加该属性后,表示文件不可删除,重命名,设定链接,写入以及新增数据。

lsattr

1.命令语法
lsattr [-aR] [文件/目录名]

2.命令描述
命令lsattr用于读取文件或者目录的特殊权限。

3.命令选项
-a 类似于ls的-a选项,即连同隐藏文件一同列出。
-R 连同子目录的数据一同列出。

实例:给11.txt文件  以及查看 lsattr 11.txt

#chattr +i 11.txt 

[root@cham2 ~]# chattr +i 11.txt
[root@cham2 ~]# touch 11.txt
touch: 无法创建"11.txt": 权限不够
[root@cham2 ~]# mv 11.txt 123.txt
mv: 无法将"11.txt" 移动至"123.txt": 不允许的操作
[root@cham2 ~]# rm -v 11.txt
rm:是否删除普通文件 "11.txt"?y
rm: 无法删除"11.txt": 不允许的操作
[root@cham2 ~]# head -n2 /etc/passwd > 11.txt
-bash: 11.txt: 权限不够

#chattr -i 11.txt  

#chattr +a 11.txt

[root@cham2 ~]# chattr +a 11.txt
[root@cham2 ~]# touch 11.txt
[root@cham2 ~]# ls
111  11.txt  123  12.txt  1.txt  22.txt  234  2.txt  anaconda-ks.cfg.1
[root@cham2 ~]# ls -l
总用量 16
drwxrwxr--  3 root root  113 10月 25 17:20 111
-rw-rw-r--  1 root root   70 10月 25 17:44 11.txt
drwxr-xr-x  2 root root    6 10月 25 16:39 123
-rw-r--r--  1 root root   65 10月 25 17:20 12.txt
-rw-r--r--  1 root root    0 10月 25 17:31 1.txt
-rw-r--r--  1 root root    0 10月 25 17:07 22.txt
drwxrwxr-x  2 root root    6 10月 25 16:41 234
-rwx------  1 root root 1008 10月 25 16:41 2.txt
-rw-------. 1 root root 1422 10月 19 07:00 anaconda-ks.cfg.1
[root@cham2 ~]# head -n2 /etc/passwd > 11.txt
-bash: 11.txt: 不允许的操作
[root@cham2 ~]# head -n2 /etc/passwd >> 11.txt
[root@cham2 ~]# rm -v 11.txt
rm:是否删除普通文件 "11.txt"?y
rm: 无法删除"11.txt": 不允许的操作
[root@cham2 ~]# head -n2 /etc/passwd > 11.txt

#chattr -a 11.txt

#lsattr 11.txt

[root@cham2 ~]# lsattr 11.txt
-----a---------- 11.txt
[root@cham2 ~]# 

对于目录的作用与对于文件的作用相同

 

转载于:https://my.oschina.net/u/3708120/blog/1556200

回答: 当一个文件被赋予i属性时,它不能被删除、重命名、写入或新增数据。\[1\]根据提供的引用内容,你尝试使用head命令将/etc/passwd文件的前10行追加到/tmp/1/1.txt文件中,但是由于权限不够,操作失败。你还尝试使用vi命令编辑/tmp/1/1.txt文件,但是由于文件被赋予了i属性,你无法对其进行修改。最后,你尝试使用mv命令将/tmp/1/1.txt文件移动到/tmp/1/2.txt,但是由于不允许这样的操作,移动失败。\[1\]另外,根据引用\[2\],你可以使用bash或sh命令以脚本的相对路径或绝对路径来执行脚本,而不需要给脚本赋予+x权限。根据引用\[3\],你可以使用echo $PATH命令来查看系统的PATH变量值,并使用cut命令提取出第2个":"之后的所有路径。关于你提到的问题"/etc/var/www/html/test1.php" E212: 无法打开并写入文件,我无法提供具体的解决方案,因为你没有提供足够的信息。 #### 引用[.reference_title] - *1* [文件目录权限chmod更改所有者所属chown 、umask隐藏权限lsattr/chattr...](https://blog.csdn.net/weixin_34208185/article/details/92404611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Linux学习记录](https://blog.csdn.net/everythingbeau/article/details/125909945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值