红帽Linux学习笔记——Day03(RHCSA)

Day03——Linux基础 

权限、ACL、特殊权限

权限

数字权限

字母权限

作用

4

r(read)

读取权限(读文件内容、列出目录中的内容)

2

w(write)

写入权限(更改文件内容,创建/修改目录中的任意文件

1

x(execution)

执行权限(执行命令,cd进入目录)

mkdir test #创建测试目录

touch test/hello.txt #创建测试文件


ls -l test/hello.txt #查看文件的详细信息

-rw-r--r--. 1 root root 0 Mar 12 05:25 test/hello.txt


ls -ld test/ #查看目录的详细信息

drwxr-xr-x. 2 root root 23 mar 12 05:25 test/


l(long长格式显示详细信息),d(directory目录)

显示说明:

第一列:权限

第二列:文件(链接的个数)

第三列:文件/目录属于哪个用户(文件的所有者)

第四列:文件/目录属于哪个组(文件的所属组)

第五列:容量大小

第六列、第七列、第八列:文件最后修改的日期

最后一列:文件/目录名

其中第一列包含:10字符

第1个字符代表类型:-(文件),d(directory目录),l(link链接)

第2到第10个字符,三位一组分三组用户权限组权限其他人权限

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

示例:

rwx(7) r--(4) rw-(6) r-x(5) ---(0) --x(1)

rwxrwxrwx(777) rwxrw-rw-(766) rwxr--r--(744) rw-rw-r--(664)

测试:

touch hello.txt #创建测试文件

ls -l hello.txt #查看文件的详细信息

-rw-r--r--. root root 0 ... ...

提示:该文件所有者是root,所属组是root

默认权限:root用户可读可写,root组只读,其他人都是只读

chmod修改权限

命令格式:chmod u+-=,g+-=,o+-=,a+-= 文件/目录名

chmod 数字 文件/目录名

示例:

 chmod u+x test.txt  #给文件的用户额外加x权限(user用户)

chmod u-x test.txt  #给文件的用户去除x权限(user用户)

chmod u=r-- test.txt  #直接设置文件的用户权限为只读(user用户)

chmod g+w test.txt  #给文件的组额外加w权限(group组)

chmod o+w test.txt   #让其他人对该文件有可读权限(other其他人)

chmod a+x test.txt  #修改文件权限,u+x,g+x,o+x,所有人都添加x权限(all所有人)

chmod 777 test.txt  #设置文件权限为777,rwxrwxrwx

chmod 700 test.txt  #设置文件权限为700,rwx------

chown(修改所有者和所属组)

示例:

chown user1 test.txt  #修改test.txt文件的所有者,改成uesr1

chown :adm test.txt  #修改test.txt文件的所属组,组改成adm

chown root:bin test.txt  #修改test.txt文件的所有者和所属组,用户改成root,组改成bin

ACL权限

问题:

如果有一个test.txt文件,文件所有者是root,所属组是root。

有一个user1用户,user1用户不属于root组,想让user1对test.txt有rwx权限。

如何实现?

方案一:

设置文件的other权限,设置为rwx(但是,不仅仅是user1有了rwx,其他任何人都一样有了rwx权限)

方案二:

通过ACL(access control list访问控制列表)可以实现精准对某个用户单独设置权限

getfacl test.txt #查看文件的ACL信息

 
  
#file: test.txt                文件名
#owner: root                    文件所有者
#group: bin                     文件所属组
user::rwx                       用户的权限
... ...

setfacl -m u:user1:rwx test.txt   #修改文件的ACL信息,-m(modify修改),user(用户)

特殊权限

权限

文件,特指程序文件

目录

suid(4)

执行程序时获得该程序所有者的权限

sgid(2)

执行程序时获得该程序所属组的权限

sticky(1)

该目录下的文件,谁创建的文件谁删除与编辑,只能自己删除与编辑自己的文件

ls -l /bin/passwd

提示:passwd命令是计算机/bin目录下的一个程序文件

-rwsr-xr-x. 1 root root ... /bin/passwd

问题:linux系统用户的密码都保存在/etc/shadow文件,而该文件的权限为---

除了超级管理员不受权限影响外(超级管理员root是上帝,可以忽略所有权限),所有权限都是对普通用户而言的!

passwd命令是给用户改密码,那么我们修改的密码一定会被保存到/etc/shadow文件中!

思考:root去执行passwd命令,设置密码123,因为root不受权限限制,所以可以将密码123写入/etc/shadow! 假设有一个普通用户user1执行passwd命令,需要给自己修改密码,把密码改为456,最终是否能成功?

答案:普通用户也可以修改密码,成功将456写入/etc/shadow

普通用户user1,执行passwd命令时,获取了passwd命令所有者的权限,passwd文件所有者是root,所以在执行passwd这个命令的瞬间,user1获得了root的权限

chmod u+s test.txt

ls -l test.txt

-rwsrwxrwx. root root ....


chmod g+s test.txt

ls -l test.txt

-rwsrwsrwx. root root ....

ls -ld /tmp

lrwxrwxrwt. root root

例子:

假设user1在/tmp目录下创建了一个user1.txt,则只有自己和root能删除,其他人无法删除,假设user2也在/tmp目录下创建了一个user2.txt,则只有自己和root能删除,其他人无法删除。

[root@localhost ~]# mkdir test

[root@localhost ~]# ls -ld test

lrwxr-xr-x. root root ...

[root@localhost ~]# chmod o+t test

#给test目录添加一个sticky权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值