您的位置:首页 > 其它

2017-12-20 2周3次课 权限管理

2017-12-20 20:37 190 查看
2.14 文件和目录权限chmod

[root@aming-01 ~]# ll
总用量 20
-rw-r--r--. 1 root root 10208 12月 17 20:21 1.txt
-rw-r--r--. 1 root root   928 12月 17 16:51 2.txt
-rw-------. 1 root root  1546 12月 13 06:40 anaconda-ks.cfg

1.txt这个文件的权限,从第二个位开始是权限 rw-r--r--.
9位权限共划为三段。第一段是指所有者,第二段是指所属组,第三段是指除了所有者和所属组之外所有用户

-rw-r--r--. 最后有点,受制于selinux,如果selinux后再创建文件,就没有最后的点了
(彻底关闭selinux在配置文件/etc/selinux/config中)

r是否可读
w是否可写
x是否可执行
-不可读写执行

用数字来表示权限:
r=4,w=2,x=1
rwx=7,rw-=6,--x=1
所以 rw-r--r-- =644

[root@aming-01 tmp]# ll
总用量 120
drwxr-xr-x. 2 root root     19 12月 18 21:52 aming
drwxr-xr-x. 4 root root     29 12月 17 17:07 aminglinux
-rwx------. 1 root root    836 12月 13 06:40 ks-script-DvfSzK
-rwxr-xr-x. 1 root root 117656 12月 17 16:01 ls2
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-chronyd.service-gUSnYe
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vgauthd.service-Jnue5d
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vmtoolsd.service-JWoIJH
-rw-------. 1 root root      0 12月 13 06:14 yum.log
[root@aming-01 tmp]# cd aming/
[root@aming-01 aming]# ll
总用量 0
-rw-r--r--. 1 root root 0 12月 18 21:52 1.txt
[root@aming-01 aming]# cd ..
[root@aming-01 tmp]# chmod 777 aming/
[root@aming-01 tmp]# ll
总用量 120
drwxrwxrwx. 2 root root     19 12月 18 21:52 aming
drwxr-xr-x. 4 root root     29 12月 17 17:07 aminglinux
-rwx------. 1 root root    836 12月 13 06:40 ks-script-DvfSzK
-rwxr-xr-x. 1 root root 117656 12月 17 16:01 ls2
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-chronyd.service-gUSnYe
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vgauthd.service-Jnue5d
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vmtoolsd.service-JWoIJH
-rw-------. 1 root root      0 12月 13 06:14 yum.log
[root@aming-01 tmp]# cd aming/
[root@aming-01 aming]# ll
总用量 0
-rw-r--r--. 1 root root 0 12月 18 21:52 1.txt

·chmod对目录操作仅仅是目录本身,如果想对目录里文件全部更改则chmod -R

[root@aming-01 tmp]# chmod -R 777 aming/
[root@aming-01 tmp]# ll aming/
总用量 0
-rwxrwxrwx. 1 root root 0 12月 18 21:52 1.txt

chmod u=rw,g=r,o=r (chmod 644)(不可以写成u=rw-,g=r--,o=r--)

[root@aming-01 tmp]# chmod u=rwx,g=r,o=r aming/
[root@aming-01 tmp]# ll
总用量 120
drwxr--r--. 2 root root     19 12月 18 21:52 aming
drwxr-xr-x. 4 root root     29 12月 17 17:07 aminglinux
-rwx------. 1 root root    836 12月 13 06:40 ks-script-DvfSzK
-rwxr-xr-x. 1 root root 117656 12月 17 16:01 ls2
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-chronyd.service-gUSnYe
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vgauthd.service-Jnue5d
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vmtoolsd.service-JWoIJH
-rw-------. 1 root root      0 12月 13 06:14 yum.log

chmod a+x 全部加上x权限
chmod a-x 全部去掉x权限
chmod g+x 所属组加上x权限
chmod g-x 所属组去掉x权限
以此类推,u,g,o 都一样

2.15 更改所有者和所属组chown

改变文件所有者 chown 用户名 文件名(绝对路径)

[root@aming-01 tmp]# ll aming/
总用量 0
-rwxrwxrwx. 1 root root 0 12月 18 21:52 1.txt
[root@aming-01 tmp]# chown user1 aming/1.txt
[root@aming-01 tmp]# !ll
ll aming/
总用量 0
-rwxrwxrwx. 1 user1 root 0 12月 18 21:52 1.txt

改变文件所属组 chgrp 文件名 文件名

[root@aming-01 tmp]# chgrp user1 aming/1.txt
[root@aming-01 tmp]# !ll
ll aming/
总用量 0
-rwxrwxrwx. 1 user1 user1 0 12月 18 21:52 1.txt

用chown改所属组 chown 用户名:所属组 文件名 (同时更改所有者和所属组)

[root@aming-01 tmp]# ll aming/
总用量 0
-rwxrwxrwx. 1 user1 user1 0 12月 18 21:52 1.txt
-rw-r--r--. 1 root  root  0 12月 18 22:15 2.txt
[root@aming-01 tmp]# chown user1:aming aming/2.txt
[root@aming-01 tmp]# !ll
ll aming/
总用量 0
-rwxrwxrwx. 1 user1 user1 0 12月 18 21:52 1.txt
-rw-r--r--. 1 user1 aming 0 12月 18 22:15 2.txt

只改所属组:chown :root /tmp/yum.log (把所有者省略掉,可以只更改所属组)

[root@aming-01 tmp]# chown :root aming/2.txt
[root@aming-01 tmp]# !ll
ll aming/
总用量 0
-rwxrwxrwx. 1 user1 user1 0 12月 18 21:52 1.txt
-rw-r--r--. 1 user1 root  0 12月 18 22:15 2.txt

更改目录下所有文件所有者和所属组
chown -R username:group filename

2.16 umask

·root用户的umask值 0022

[root@aming-01 tmp]# umask
0022

·更改umask值 umask 数值 (第一个数字一般可以省略)

[root@aming-01 tmp]# umask 002
[root@aming-01 tmp]# umask
0002

[root@aming-01 tmp]# touch 1.txt
[root@aming-01 tmp]# mkdir 123/
[root@aming-01 tmp]# ll
总用量 120
drwxr-xr-x. 2 root root      6 12月 18 22:39 123
-rw-r--r--. 1 root root      0 12月 18 22:38 1.txt
drwxr--r--. 2 root root     32 12月 18 22:15 aming
drwxr-xr-x. 4 root root     29 12月 17 17:07 aminglinux
-rwx------. 1 root root    836 12月 13 06:40 ks-script-DvfSzK
-rwxr-xr-x. 1 root root 117656 12月 17 16:01 ls2
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-chronyd.service-gUSnYe
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vgauthd.service-Jnue5d
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vmtoolsd.service-JWoIJH
-rw-------. 1 root root      0 12月 13 06:14 yum.log
[root@aming-01 tmp]# umask 002
[root@aming-01 tmp]# touch 2.txt
[root@aming-01 tmp]# mkdir 234/
[root@aming-01 tmp]# ll
总用量 120
drwxr-xr-x. 2 root root      6 12月 18 22:39 123
-rw-r--r--. 1 root root      0 12月 18 22:38 1.txt
drwxrwxr-x. 2 root root      6 12月 18 22:39 234
-rw-rw-r--. 1 root root      0 12月 18 22:39 2.txt
drwxr--r--. 2 root root     32 12月 18 22:15 aming
drwxr-xr-x. 4 root root     29 12月 17 17:07 aminglinux
-rwx------. 1 root root    836 12月 13 06:40 ks-script-DvfSzK
-rwxr-xr-x. 1 root root 117656 12月 17 16:01 ls2
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-chronyd.service-gUSnYe
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vgauthd.service-Jnue5d
drwx------. 3 root root     17 12月 18 21:27 systemd-private-62968b6af9c246c2ae27c92ac649c9e5-vmtoolsd.service-JWoIJH
-rw-------. 1 root root      0 12月 13 06:14 yum.log

·root用户创建文件默认权限755

目录必须要有x权限,不然无法打开进入到目录中

·root用户创建目录默认权限644

·umask并不能直接用数字减,要用权限位去减

目录:777-003=(rwxrwxrwx) - (-------wx) = rwxrwxr-- = 774
文件:666-003=(rw-rw-rw-) - (-------wx) = rw-rw-r-- = 664

2.17 隐藏权限lsattr/chattr
2.17 隐藏权限lsattr / chattr

·i权限 (隐藏权限)
`设置隐藏权限 chattr +i xxx(设置隐藏权限后无法写入数据)

[root@aming-01 ~]# chattr +i 1.txt
[root@aming-01 ~]# vi 1.txt
-- INSERT -- W10: Warning: Changing a readonly file

[root@aming-01 ~]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 权限不够

·查看隐藏权限 lsattr xxx

[root@aming-01 ~]# lsattr 1.txt
----i----------- 1.txt


编辑有隐藏权限的文件时,会生成一个和该文件名称类似的缓存文件,例如1.txt的缓存文件为1.txt~,那么在保存退出后,该缓存文件会覆盖原文件,但是由于增加了隐藏权限,退出时无法保存,自然也无法覆盖原文件,所以多出一个缓存文件*

去除隐藏权限 chattr -i xxx

[root@aming-01 ~]# chattr -i 1.txt
[root@aming-01 ~]# lsattr 1.txt
---------------- 1.txt

·给目录增加i权限(不能删除、不能改名,不能再目录下增加子目录和文件,但可以更改目录下文件内容)

[root@aming-01 ~]# rm -r 123/
rm:是否进入目录"123/"? y
rm:是否删除目录 "123/456"?y
rm: 无法删除"123/456": 权限不够
[root@aming-01 ~]# mv 123/ 234/
mv: 无法将"123/" 移动至"234/": 不允许的操作
[root@aming-01 ~]# chattr  +i 123/
[root@aming-01 ~]# lsattr -d 123/
----i----------- 123/
[root@aming-01 ~]# head -n2 /etc/passwd > 123/1.txt
[root@aming-01 ~]# cat 123/1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

·a权限 (可以追加、可以更改时间信息(touch);不能更改文件内容、不能删除、不能改名字)

·设置追加权限 chattr +a 1.txt

[root@aming-01 ~]# touch 1.txt
[root@aming-01 ~]# ll
总用量 20
-rw-r--r--. 1 root root 10208 12月 19 21:41 1.txt
-rw-r--r--. 1 root root   928 12月 19 20:30 2.txt
-rw-------. 1 root root  1546 12月 13 06:40 anaconda-ks.cfg
[root@aming-01 ~]# rm 1.txt
rm:是否删除普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[root@aming-01 ~]# mv 1.txt 3.txt
mv: 无法将"1.txt" 移动至"3.txt": 不允许的操作
[root@aming-01 ~]# vi 1.txt
"1.txt" E212: Can't open file for writing

[root@aming-01 ~]# head -n2 /etc/passwd > 1.txt
-bash: 1.txt: 不允许的操作
[root@aming-01 ~]# head -n2 /etc/passwd >> 1.txt
[root@aming-01 ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@aming-01 ~]# touch 1.txt
[root@aming-01 ~]# ll 1.txt
-rw-r--r--. 1 root root 65 12月 19 22:31 1.txt                #时间更改

·给目录增加a权限,可以在目录下增加子目录和子文件

[root@aming-01 ~]# chattr +a 123/
[root@aming-01 ~]# lsattr -d 123/
-----a---------- 123/
[root@aming-01 ~]# mkdir 123/234/
[root@aming-01 ~]# ll 123/
总用量 4
-rw-r--r--. 1 root root 65 12月 19 22:16 1.txt
drwxr-xr-x. 2 root root  6 12月 19 22:26 234
drwxr-xr-x. 2 root root  6 12月 19 21:52 456
[root@aming-01 ~]# touch 123/2.txt
[root@aming-01 ~]# ll 123/
总用量 4
-rw-r--r--. 1 root root 65 12月 19 22:16 1.txt
drwxr-xr-x. 2 root root  6 12月 19 22:26 234
-rw-r--r--. 1 root root  0 12月 19 22:27 2.txt
drwxr-xr-x. 2 root root  6 12月 19 21:52 456
[root@aming-01 ~]# cat 123/1.txt
[root@aming-01 ~]# head -n2 /etc/passwd >123/1.txt
[root@aming-01 ~]# cat 123/1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

·查看全部文件权限,包括隐藏文件 lsattr -a

[root@aming-01 ~]# lsattr -a /root/
---------------- /root/.
---------------- /root/..
---------------- /root/.bash_logout
---------------- /root/.bash_profile
---------------- /root/.bashrc
---------------- /root/.cshrc
---------------- /root/.tcshrc
---------------- /root/.bash_history
---------------- /root/.ssh
---------------- /root/anaconda-ks.cfg
---------------- /root/2.txt
---------------- /root/.lesshst
---------------- /root/1.txt
---------------- /root/1.txt~
----i----------- /root/123

·查看目录下的子目录和子目录下文件的权限 lsattr -R

[root@aming-01 ~]# lsattr -R 123/
---------------- 123/456

123/456:

---------------- 123/1.txt

·查看目录本身权限 lsattr -d

[root@aming-01 ~]# mkdir 123/
[root@aming-01 ~]# mkdir 123/456/
[root@aming-01 ~]# lsattr 123
---------------- 123/456
[root@aming-01 ~]# lsattr -d 123/
---------------- 123/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  chmod chown umask