权限管理

权限管理:


关机之前执行同步命令 sync 再halt 、shutdown -h(halt) 230/now -c (cancel)取

1、查看文件和目录的权限
文件
ll xxx
目录
ll -d xxx

2、三种基本权限
字符表示法:
对文件的意义
对目录的意义
r ——read only(只读)   示例命令:cat/head/tail/more/less


w ——write(写入) 示例命令:vim/rm

x ——execute(执行) 示例: sh (可执行shell脚本)

3.
如果一个用户对某个文件拥有 r 权限,该用户可以读取文件内容.
如果一个用户对某个目录拥有 r 权限,该用户可以查看目录中的内容

如果一个用户对某个文件拥有 w 权限,该用户可以修改文件内容,删除文件
如果一个用户对某个目录拥有 w 权限,该用户可以在目录中创建、删除文件

如果一个用户对某个文件拥有 x 权限,该用户可以运行/执行该文件
如果一个用户对某个目录拥有 x 权限,说明该用户可以cd到该目录

4.
怎样去查看用户对应的权限:
文件的所有者:owner
文件的所属组:group
其他人:other


八进制表示法:
r -- 4
w -- 2
x -- 1

744 表示该文件或目录所有者拥有“读写执行”权限;所属组“只读”;其他人“只读”

 

5、修改权限 chmod 
语法:chmod 权限 文件名

 

例:chmod g + w filename

u user 文件所有者(属主)
g group 文件所属组(属组)
o other 其他人
a all 所有三类人

例:chmod u=rwx,g+w,o+x filename


八进制表示法:
[root@mysql_b2 opt]# chmod 755 filename权限755说明所有用户都
可以执行该文件

修改目录权限需要注意的地方:
-R 递归修改目录的权限(把目录及目录中所有的文件的权限一并
修改)

例:chmod -R 755 filename

 

6、修改文件的所有者、所属组
chown 更改所有者
chgrp 更改所属组
例: chown tom:tom /home/xxx

或:chown tom.tom /home/xxx

用户名:组名

 

7、umask 负责管理默认创建文件和目录的权限
目录最大权限777

744(目录)

文件默认最大权限666

644(文件)

umask 022

 

修改umask默认值:
[her@mysql_b2 ~]$ umask 022


8、特殊权限

suid 所有者权限位 u +s
一个二进制文件(有执行权限),被设置了suid位,那么其他人在执行
该文件时将暂时拥有文件所有者的权限。

sgid 所属组权限位 g +s
对文件:
一个二进制文件(有执行权限),被设置了sgid位,那么其他人在执行
该文件时将暂时拥有文件所属组的权限

对目录:
一个具有可执行权限的目录,被设置了sgid权限位,那么拷贝进来的文
件及在该目录下创建的文件(目录)他们的所属组继承该目录的所属组。

sbit 其他人权限位(粘滞位) o +t
一个具有可执行权限的目录,被设置了sbit权限位,那么该目录下的文
件及目录,只能文件所有者可以删除,其他人不能删除。

设置suid/sgid/sbit的方式
字符表达方式:
suid u+s
sgid g+s
sbit o+t

八进制表达方式:
suid 4
sgid 2
sbit 1

例:chmod 3755 filename     //3为特殊权限位,后面的755为基本权限位


9、文件的访问控制acl (u:用户;g:组。一般用的多的是用户位 )(控制文件的访问
对象)
设置:
setfacl -m u:lisa:r filename
-R: 递归
setfacl -R -m u:danny:rwx /home/www/

查看acl权限信息:
getfacl filename

收回acl权限:
setfacl -x u:lisa filename

示例:
[root@mysql_b2 opt]# setfacl -m u:tom:rwx a.txt //设置用户 tom 对 a.txt 文件有读写执行权限

[root@mysql_b2 opt]# ll a.txt
-rw-rwxr--+ 1 root root 8 6月 23 10:50 a.txt //注意有个“+”号
[root@mysql_b2 opt]# getfacl a.txt //查看acl权限列表
user:tom:rwx

[root@mysql_b2 opt]# setfacl -x u:tom a.txt //收回acl权限

 


10、隐藏权限chattr change + attribute(属性)
a 如果一个文件被设置了“+a”权限,那么该文件不能被删除、也不能被
修改,只能往里追加。常见如 /var/log/messages文件 
i 如果一个文件被设置了“+i”权限,那么该文件不能被删除、不能被修改也不能追加。常见如:/boot分区(目录)下
的文件,系统文件。

设置隐藏权限 chattr +/- 权限 filename
例:chattr +a filename

查看隐藏权限 lsattr filename


总结:
三种基本权限 r w x
修改文件所有者、所属组 chown chgrp
umask 管理默认权限


三种特殊权限

suid sgid sbit(u+s;g+s;o+t)


文件访问控制acl

(setfacl -m u:tom:rwx filename  |  setfacl -x u:tom filename  |  getfacl filename)


隐藏权限

(chattr +a filename chattr +i filename lsattr filename )

 

11、文件的属性信息
文件类型
- 普通文件
d 目录
l 软连接(符号链接)
b block(块)块设备(存储设备)文件
c 字符设备character,可以接受字符的设备

对文件来说,表示硬链接数量
对目录来说,表示目录中目录的数量

文件的长度 可以结合ll -h查看
文件占用的磁盘空间 du -sh test.txt

4KB*1024=4096byte

8byte= 一个block块只能给一个文件用

时间标记:
(使用)Access: 2017-06-23 13:51:22.725620490 +0800 atime 文件最近一次访
问时间
Modify: 2017-06-23 13:51:22.725620490 +0800 mtime 文件数据最近一
次修改时间
Change: 2017-06-23 13:51:22.725620490 +0800 ctime 文件最近一次属
性改变时间


12、find命令 查找
find 查找范围 -查找选项 操作
操作:默认输出到终端
-print 打印,打印到终端
-exec execute(执行)执行命令
-ok 跟-exec相同,执行命令前询问你是否执行

查找范围:默认是当前目录 .

查找选项:
-name 按照文件名查找
-size 按照文件大小查找
-user 按照文件所有者查找
-perm 按照文件权限查找
-type 按照文件类型查找
-mtime 按照文件数据最近一次修改时间查找

示例:
-name 按照文件名查找
[root@mysql_b2 opt]# find . -name "*.txt"

-type 按照文件类型查找 f文件 d目录 b c l
[root@mysql_b2 opt]# find . -name "x*" -type f //一条
find命令中可以含有多个查找选项


-size 按照文件大小查找(ll) +大于 -小于
[root@mysql_b2 opt]# find . -size -46k

-user 按照文件所有者查找
[root@mysql_b2 opt]# find . -user her

-perm 按照文件权限查找 -755大于等于755的 755只匹配755 +755
小于等于755
[root@mysql_b2 opt]# find . -perm -755

-mtime 按照文件数据最近一次修改时间查找
查找最近30天之内数据没有修改过的文件或目录(也就是说最近一次修
改是在30天之前 +mtime)

[root@mysql_b2 opt]# find . -mtime +30

找到文件并删除
find . -mtime +30 -type f -exec rm -fr {} \;

找到文件或目录,找到后拷贝到/tmp下并保持源文件属性不变
[root@mysql_b2 opt]# find . -user tom -ok cp -pr {} /tmp \;


13、sudo 让普通用户具有执行维护系统的命令
创建用户useradd test
passwd test


visudo(大概99行)
加入一行:
tom  ALL=(ALL)   ALL (不是说tom就有了所有root的权限去执行命令,只
是说明tom在执行sudo all命令的所有权限)
test ALL=/bin/more //只允许test以root身份执行more
命令
tom ALL=/usr/bin/passwd,/bin/more

测试:
su - tom
sudo useradd test //头一次,需要输入test的密码

su 切换用户 su - root
su - test -c ls //切换到test家里,执行ls,退出(即还在
root家)

 

posted @   叮伱格斐呃  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『权限管理』
点击右上角即可分享
微信分享提示