Linux基础教程文件基本权限

基本权限(r、w、x)

查看权限
[root@localhost back]# ls -l
总用量 0
-rw-r–r– 1 root root 0 3月 2 03:09 test.txt

                   文件的类型
rw-r–r–      权限
1                  引用次数(”快捷方式”数量)
root             所有者
root             所属组
0                 文件的大小
3月 2 03:09 文件的最后修改时间

1607672886-20190709154459131-1

1607672887-20190709154539873-e1607673378172-1

权限对象:
属主:u
属组:g
其他: o

设置权限

1. 更改文件的属主、属组

chown:
[root@test ~]# chown alice.hr file1 //改属主、属组
[root@test ~]# chown alice file1 //只改属主
[root@test ~]# chown .hr file1 //只改属组
chgrp:
[root@localhost ~]# chgrp it file1 //改文件属组
[root@localhost ~]# chgrp -R it dir1 //改文件属组

2. 更改权限

1)使用字符

image

 

[root@localhost ~]# chmod u+x file1 //属主增加执行
[root@localhost ~]# chmod a=rwx file1 //所有人等于读写执行
[root@localhost ~]# chmod a=- file1 //所有人没有权限
[root@localhost ~]# chmod ug=rw,o=r file1 //属主属组等于读写,其他人只读
[root@localhost ~]# ll file1 //以长模式方式查看文件权限
-rw-rw-r– 1 alice it 17 10-25 16:45 file1 //显示的结果

2)数字
[root@localhost ~]# chmod 644 file1
[root@localhost ~]# ll file1
-rw-r–r– 1 alice it 17 10-25 16:45 file1

设置权限示例

针对hr部门的访问目录设置权限,要求如下:
1. root用户和hr组的员工可以读、写、执行
2. 其他用户没有任何权限
[root@localhost ~]# groupadd hr
[root@localhost ~]# useradd hr01 -G hr
[root@localhost ~]# useradd hr02 -G hr
[root@localhost ~]# mkdir /home/hr
[root@localhost ~]# chgrp hr /home/hr
[root@localhost ~]# chmod 770 /home/hr
[root@localhost ~]# ll -d /home/hr/
drwxrwx—. 2 root hr 4096 3月 13 14:26 /home/hr/

示例:alice用户对目录没有写权限
[root@localhost /]# mkdir /A //创建测试目录
[root@localhost /]# useradd alice //创建用户
[root@localhost /]# chown alice /A //修改目录所有者
[root@localhost /]# ls -ld /A //查看并验证所用者
drwxr-xr-x 2 alice root 4096 3月 2 06:02 /A
[root@localhost /]# chmod 500 /A //修改权限为alice没有写
[root@localhost /]# ls -ld /A
dr-x—— 2 alice root 4096 3月 2 06:02 /A
[root@localhost /]# su – alice //切换为alice用户
[alice@localhost ~]$ cd /A
[alice@localhost A]$ ls
[alice@localhost A]$ touch alice.txt //创建文件以验证是否有写权限
touch: 无法创建”alice.txt”: 权限不够

示例:alice用户对目录有写权限
[root@localhost /]# chmod u+w /A //给alice添加写权限
[root@localhost /]# ls -ld /A
drwx—— 2 alice root 4096 3月 2 06:02 /A //查看alice的写权限
[root@localhost /]# su – alice //切换到alice用户测试
[alice@localhost ~]$ cd /A
[alice@localhost A]$ touch alice.txt //创建文件并验证
[alice@localhost A]$ ls
alice.txt
[alice@localhost A]$ mv alice.txt alice.mp3 //改名并验证
[alice@localhost A]$ ls
alice.mp3
[alice@localhost A]$ rm -rf alice.mp3 //删除并验证
[alice@localhost A]$ ls

 

特殊权限

      数值       作用         文件      目录
suid   4   给普通用户提权   可执行文件    没用
sgid   2   继承文件所属组               有用
sticky 1   仅允许删除自己的文件          有用

suid: 当一个文件具有SUID权限的时候,允许运行这个文件用户具有该文件的所有者权限
sgid: 允许在这个目录里之后创建的文件具有和这个目录相同所有组属性(继承所有组名称)
粘滞位(o+t):只能删除自己创建的文件

设置特殊权限

1)字符

chmod u+s file
chmod g+s dir
chmod o+t dir

2)数字

chmod 7777 file
chmod 2770 dir
chmod 3770 dir

示例1:suid 普通用户通过suid提权
[root@localhost ~]# chmod u+s /bin/cat
[alice@localhost ~]$ cat /root/install.log

示例2:sticky 用户只能删除自己的文件
[root@localhost ~]# groupadd sale
[root@localhost ~]# useradd sale01 -G sale
[root@localhost ~]# useradd sale02 -G sale

[root@localhost ~]# id sale01
uid=5006(sale01) gid=5006(sale01) groups=5006(sale01),508(sale)
[root@localhost ~]# id sale02
uid=5007(sale02) gid=5007(sale02) groups=5007(sale02),508(sale)

[root@localhost ~]# mkdir /home/sale
[root@localhost ~]# chgrp sale /home/sale
[root@localhost ~]# chmod 770 /home/sale

[root@localhost ~]# chmod o+t /home/sale
[root@localhost ~]# ll -d /home/sale
drwxrwx–T 2 root sale 4096 09-02 02:26 /home/sale

示例3:sgid sticky 用户只能删除自己的文件、新建文件继承属组
[root@localhost ~]# chmod 3770 /home/sale
[root@localhost ~]# ll -d /home/sale
drwxrws–T 2 root sale 4096 09-02 02:26 /home/sale

umask

umask:新建文件、目录的默认权限是由umask决定的

root:文件 644 umask: 0022
目录 755

普通用户:文件 664 umask: 0002
目录 775

[root@localhost ~]# umask //查看当前用户的umask权限
0022
[root@localhost ~]# umask -S //查看更改后的文件权限
u=rwx,g=rx,o=rx

[root@localhost ~]# umask 000 //设置umask权限
[root@localhost ~]# umask
0000

[root@localhost ~]# umask 077; touch file60 //当前shell生效
600
[root@localhost ~]# $(umask 077; touch file70) //()表示在子shell生效 sub shell
[root@localhost ~]# ll file70
-rw——- 1 root root 0 10-26 14:31 file70
[root@localhost ~]#
[root@localhost ~]# umask
0022

永久修改shell umask值
[root@tianyun ~]# vim /etc/profile

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容