权限管理

权限管理


文章目录

权限简介

  • 文件的权限主要针对三类对象进行定义:
    • owner:属主,u
    • group:属组,g
    • other:其它,o

每个文件针对每个访问者都定义了三种权限:

权限对应的操作对象权限说明
r文件可读,可以使用类似cat等命令查看内容
w文件可写,可以编辑或删除此文件
x文件可执行,eXacutable,可以在命令提示符下当作命令提交给内核运行
r目录可以对此目录执行ls以列出内部的所有文件
w目录可以在此目录中创建文件,也可以删除此目录中的文件
x目录可以使用cd命令切换进此目录,也可以使用ls-l查看内部文件详细信息

权限二进制与十进制转换:

权限二进制十进制
0000
–x0011
-w-0102
-wx0113
r–1004
r-x1015
rw-1106
rwx1117

2. 权限管理命令

2.1 chmod 修改权限的命令

  • -R 递归修改,修改此目录下所有文件的权限
  • u:用户 g:组 o:其他 a:用户/组/其他 所有用户
  • 语法:chmod 用户类别+/-MODE,用户类别+/-MODE file… //修改同一文件或目录不同用户类别的权限
  • 语法:chmod 用户类别=MODE,用户类别=MODE file…//修改同一文件或目录不同用户类别的权限,之前权限覆盖
[root@localhost 123]# ll
总用量 0
-rw-r----x. 1 root root 0 9月  20 14:47 123
d----w----. 2 root root 6 9月  20 14:52 321
[root@localhost 123]# cd
[root@localhost ~]# chmod -R a=--- 123
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----------. 1 root root 0 9月  20 14:47 123
d---------. 2 root root 6 9月  20 14:52 321
[root@localhost 123]# chmod g+w 123
[root@localhost 123]# ll
总用量 0
-----w----. 1 root root 0 9月  20 14:47 123
d---------. 2 root root 6 9月  20 14:52 321
[root@localhost 123]# chmod g=r 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 root root 0 9月  20 14:47 123
d---------. 2 root root 6 9月  20 14:52 321
[root@localhost 123]# chmod u+r,g+w,o+rwx 321
[root@localhost 123]# ll
总用量 0
----r-----. 1 root root 0 9月  20 14:47 123
dr---w-rwx. 2 root root 6 9月  20 14:52 321

chown 作用:修改文件属主和属组命令

  • chown命令只有管理员可以使用
  • chown username file //修改文件的属主
  • chown username.username file //修改文件的属主和属组
    • -R //修改目录及目录文件的属主或属组,也可以一起修改
[root@localhost ~]# ll
总用量 4
d---------. 3 root root   28 9月  20 14:52 123
-rw-------. 1 root root 1451 9月  15 03:02 anaconda-ks.cfg
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 root root 0 9月  20 14:47 123
dr---w-rwx. 2 root root 6 9月  20 14:52 321
[root@localhost 123]# cd
[root@localhost ~]# chown -R wangzhe 123
[root@localhost ~]# ll
总用量 4
d---------. 3 wangzhe root   28 9月  20 14:52 123
-rw-------. 1 root    root 1451 9月  15 03:02 anaconda-ks.cfg
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe root 0 9月  20 14:47 123
dr---w-rwx. 2 wangzhe root 6 9月  20 14:52 321

[root@localhost 123]# cd
[root@localhost ~]# chown -R wangzhe.wangzhe 123
[root@localhost ~]# ll
总用量 4
d---------. 3 wangzhe wangzhe   28 9月  20 14:52 123
-rw-------. 1 root    root    1451 9月  15 03:02 anaconda-ks.cfg
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe wangzhe 0 9月  20 14:47 123
dr---w-rwx. 2 wangzhe wangzhe 6 9月  20 14:52 321

chgrp 作用:修改文件的属组

  • 语法:chgrp groupname file
    -R //修改目录及目录文件属组
[root@localhost ~]# ll
总用量 4
d---------. 3 wangzhe wangzhe   28 9月  20 14:52 123
-rw-------. 1 root    root    1451 9月  15 03:02 anaconda-ks.cfg
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe wangzhe 0 9月  20 14:47 123
dr---w-rwx. 2 wangzhe wangzhe 6 9月  20 14:52 321
[root@localhost 123]# cd
[root@localhost ~]# chgrp -R root 123
[root@localhost ~]# ll
总用量 4
d---------. 3 wangzhe root   28 9月  20 14:52 123
-rw-------. 1 root    root 1451 9月  15 03:02 anaconda-ks.cfg
[root@localhost ~]# cd 123
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe root 0 9月  20 14:47 123
dr---w-rwx. 2 wangzhe root 6 9月  20 14:52 321

umask 遮罩码

  • 文件创建后默认权限是644(文件最终权限是666)
  • 目录创建后默认权限是755(目录最终权限是755)
  • 文件默认是不能具有执行权限的,如果算得的结果有执行权限则将其权限整体加1。
[root@localhost 123]# umask
0022
[root@localhost 123]# touch 1234
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe root 0 9月  20 14:47 123
-rw-r--r--. 1 root    root 0 9月  20 16:51 1234
dr---w-rwx. 2 wangzhe root 6 9月  20 14:52 321
[root@localhost 123]# umask 000
[root@localhost 123]# umask
0000
[root@localhost 123]# touch 123456
[root@localhost 123]# ll
总用量 0
----r-----. 1 wangzhe root 0 9月  20 14:47 123
-rw-r--r--. 1 root    root 0 9月  20 16:51 1234
-rw-rw-rw-. 1 root    root 0 9月  20 16:53 123456
dr---w-rwx. 2 wangzhe root 6 9月  20 14:52 321

Liunx安全上下文与特殊权限

Liunx安全上下文

前提:进程有属主和属组;文件有属主和属组

  • 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限;
  • 启动为进程后,其进程的属主为发起者,属组为发起者所属的组
  • 进程访问文件时的权限取决于进程的发起者:
    • 进程的发起者是文件的属主时,则应用文件属主权限
    • 进程的发起者是文件的属组时,则应用文件属组权限
    • 应用文件“其它”权限
特殊权限

SUID //运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是启动者为属主
chmod u+s file
chmod u-s file
// 如果file本身原来就有执行权限,则SUID显示为s,否则显示为S

chmod u+s file //针对程序文件使用
Xshell 1
[root@localhost ~]# type vi //此处查询vi命令在哪里应该使用which查询
vi 是 /usr/bin/vi
[root@localhost ~]# ll /usr/bin/vi
-rwxr-xr-x. 1 root root 910088 1月  20 2017 /usr/bin/vi
[root@localhost ~]# chmod u+s /usr/bin/vi
[root@localhost ~]# ll /usr/bin/vi
-rwsr-xr-x. 1 root root 910088 1月  20 2017 /usr/bin/vi

Xshell 2
[wangzhe@localhost 123]$ ls
123
[wangzhe@localhost 123]$ vi 123

Xshell 1
[root@localhost ~]# ps -ef|grep vi
root        741      1  0 13:25 ?        00:00:00 /usr/bin/VGAuthService -s
root       1771   1565  0 15:09 pts/1    00:00:00 vi 123
root       1773   1429  0 15:09 pts/0    00:00:00 grep --color=auto vi
chmod U-s file //针对程序文件使用
Xshell 1
[root@localhost ~]# type vi //此处查询vi命令在哪里应该使用which查询
vi 是 /usr/bin/vi
[root@localhost ~]# chmod u-s /usr/bin/vi
[root@localhost ~]# ll /usr/bin/vi
-rwxr-xr-x. 1 root root 910088 1月  20 2017 /usr/bin/vi

Xshell 2
[wangzhe@localhost 123]$ ls
123
[wangzhe@localhost 123]$ vi 123

Xshell 1
[root@localhost ~]# ps -ef|grep vi
root        741      1  0 13:25 ?        00:00:00 /usr/bin/VGAuthService -s
root       1771   1565  0 15:09 pts/1    00:00:00 vi 123
wangzhe    1812   1565  0 15:18 pts/1    00:00:00 vi 123
root       1814   1429  0 15:18 pts/0    00:00:00 grep --color=auto vi

// 查询vi命令在哪里应该使用which查询,不是使用type

SGID
//运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
//默认情况下,用户创建文件时,其属组为此用户所属的基本组;
//一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组
//为此设定了SGID的目录的属组

chmod g+s file //针对目录使用

//此条命令做不出效果

chmod g-s file //针对目录使用

//此条命令做不出效果

Sticky //在一个公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件

chmod o+t DIR
chmod o-t DIR
//如果DIR本身原来就有执行权限,则Sticky显示为t,否则显示为T

4755 //有SUID,文件权限为755b
2755 //有SGID,文件权限为755
1755 //有Sticky,文件权限为755b
7755 //有SUID、SGID、Sticky,文件权限为755
//这里前面的4、2、1分别表示SUID、SGID、Sticky

chmod o+t file //在一个公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
//由root用户创建一个公共目录
Xshell 1
[root@localhost 666]# ll
总用量 0
drwxr-xr--. 2 root root 6 9月  21 16:11 123
[root@localhost 666]# chmod o=rwx 123
[root@localhost 666]# chmod o+t 123
[root@localhost 666]# ll
总用量 0
drwxr-xrwt. 2 root root 6 9月  21 16:11 123

//由wangzhe用户在公共目录中创建一个文件
Xshell 2
[wangzhe@localhost 666]$ cd 123
[wangzhe@localhost 123]$ touch 123
[wangzhe@localhost 123]$ ls
123

//由zhesir用户删除wangzhe用户创建的文件,发现删除不了
Xshell 3
[zhesir@localhost 666]$ cd 123
[zhesir@localhost 123]$ ls
123
[zhesir@localhost 123]$ rm -fr 123
rm: 无法删除"123": 不允许的操作
chmod o-t file //取消Stick权限
//由root用户取消公共目录的Sticky的权限
Xshell 1
[root@localhost 666]# ll
总用量 0
drwxr-xrwt. 2 root root 17 9月  21 16:14 123
[root@localhost 666]# chmod o-t 123
[root@localhost 666]# ll
总用量 0
drwxr-xrwx. 2 root root 17 9月  21 16:14 123

//由wangzhe用户创建一个789文件
Xshell 2
[wangzhe@localhost 123]$ touch 789
[wangzhe@localhost 123]$ 

//由zhesir用户来进行删除,发现可以删除了
Xshell 3
[zhesir@localhost 123]$ ls
789
[zhesir@localhost 123]$ rm -fr 789
[zhesir@localhost 123]$ ls

4755 //有SUID,文件权限为755
2755 //有SGID,文件权限为755
1755 //有Sticky,文件权限为755
7755 //有SUID、SGID、Sticky,文件权限为755
//这里前面的4、2、1分别表示SUID、SGID、Sticky

facl 文件系统访问控制列表(给指定用户或组对某个文件或目录的指定权限)

  • facl(Filesystem Access Control List),利用文件扩展保存额外的访问控制权限。

语法://setfacl -m u:test:rw file
//setfacl -m g:test:rw file

setfacl -m u:username:rwx file
//由root用户建一个文件夹并且对指定用户wangzhe设定权限
Xshell 1 
[root@localhost 666]# ls
789
[root@localhost 666]# ll
总用量 0
drwxr-xr-x. 2 root root 17 9月  21 17:31 789
[root@localhost 666]# setfacl -m u:wangzhe:rwx 789
[root@localhost 666]# getfacl 789
# file: 789
# owner: root
# group: root
user::rwx
user:wangzhe:rwx
group::r-x
mask::rwx
other::r-x

//由wangzhe(已经给wangzhe用户指定权限)用户在此文件中创建文件,看是否有权限创建
Xshell 2
[wangzhe@localhost 789]$ touch 123
[wangzhe@localhost 789]$ ls
123

//由zhesir用户(未给权限)在此文件创建文件,看是否有权限
[zhesir@localhost 666]$ cd 789
[zhesir@localhost 789]$ touch 567
touch: 无法创建"567": 权限不够

//给组用户指定权限时同理
setfacl -x u:username file
//由root用户把wangzhe用户指定的权限删除
Xshell 1
[root@localhost 666]# setfacl -x u:wangzhe 789
[root@localhost 666]# ll
总用量 0
drwxr-xr-x+ 2 root root 17 9月  21 17:31 789
[root@localhost 666]# getfacl 789
# file: 789
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x

//在wangzhe用户中再次测试还可不可以创建文件
[wangzhe@localhost 789]$ ls
123
[wangzhe@localhost 789]$ touch 98765
touch: 无法创建"98765": 权限不够

//给组用户取消指定权限同理
setfacl -b file //清空这个file所有指定用户的指定权限
[root@localhost 666]# setfacl -b 789
[root@localhost 666]# getfacl 789
# file: 789
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[root@localhost 666]# ll
总用量 0
drwxr-xr-x. 2 root root 17 9月  21 17:31 789
getfacl file //查看这个file有哪些指定用户指定权限
[root@localhost 666]# getfacl 789
# file: 789
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

//文件权限应用次序:
//默认情况下:
Owner --> Group --> Other
//有设置facl的情况下:
Owner --> facl,user --> Group --> facl,group --> Other

sudo //可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令

管理命令

w //显示当前登录到系统的用户有哪些,以及其正在做什么
[root@localhost ~]# w
 19:23:30 up  5:58,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.26.1     13:26    2.00s  0.43s  0.02s w
root     pts/1    192.168.26.1     14:08    2:58   0.18s  0.15s -bash
root     pts/2    192.168.26.1     16:09    1:51m  0.04s  0.02s -bash
sleep //停止x秒后执行命令

//睡眠,写脚本为防止上一个命令没执行完下一命令就开始执行时可以加上sleep # \
//表示停顿#秒后再执行后面的命令

[root@localhost ~]# id wjq
uid=1005(wjq) gid=1008(wjq) 组=1008(wjq)
[root@localhost ~]# sleep 1m;userdel wjq //一分钟删除wjq这个账户
[root@localhost ~]# id wjq
id: wjq: no such user //已经删除成功
last //显示/var/log/wtmp文件,显示用户登录历史及系统重启历史
[root@localhost ~]# last
root     pts/3        192.168.26.1     Sat Sep 21 16:23 - 16:24  (00:00)    
root     pts/3        192.168.26.1     Sat Sep 21 16:10 - 16:10  (00:00)    
root     pts/2        192.168.26.1     Sat Sep 21 16:09   still logged in   
...
...     //太多已经删除了部分
...
reboot   system boot  3.10.0-693.el7.x Sun Sep 15 03:04 - 14:56 (4+11:51)   

wtmp begins Sun Sep 15 03:04:37 2019
last -n //显示最近n次的相关信息
[zhesir@localhost 789]$ last -n 3
root     pts/3        192.168.26.1     Sat Sep 21 16:23 - 16:24  (00:00)    
root     pts/3        192.168.26.1     Sat Sep 21 16:10 - 16:10  (00:00)    
root     pts/2        192.168.26.1     Sat Sep 21 16:09   still logged in   

wtmp begins Sun Sep 15 03:04:37 2019
lastb //显示/var/log/btmp文件,显示用户错误的登录尝试
[root@localhost ~]# lastb
wangzhe  pts/0                         Thu Sep 19 16:05 - 16:05  (00:00)    
(unknown tty1                          Sun Sep 15 22:58 - 22:58  (00:00)    
(unknown tty1                          Sun Sep 15 22:58 - 22:58  (00:00)    

btmp begins Sun Sep 15 22:58:54 2019
lastb -n //显示最近n次的相关信息
btmp begins Sun Sep 15 22:58:54 2019
[root@localhost ~]# lastb -n 1
wangzhe  pts/0                         Thu Sep 19 16:05 - 16:05  (00:00)    

btmp begins Sun Sep 15 22:58:54 2019
lastlog //显示每个用户最近一次成功登录信息
[root@localhost ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/3    192.168.26.1     六 9月 21 16:23:57 +0800 2019
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
systemd-network                            **从未登录过**
dbus                                       **从未登录过**
polkitd                                    **从未登录过**
postfix                                    **从未登录过**
chrony                                     **从未登录过**
sshd                                       **从未登录过**
wangzhe          pts/1                     六 9月 21 14:08:50 +0800 2019
zhesir           pts/2                     六 9月 21 16:10:02 +0800 2019
lastlog -u username //显示特定用户最近的登录信息
[root@localhost ~]# lastlog -u wangzhe
用户名           端口     来自             最后登陆时间
wangzhe          pts/1                     六 9月 21 14:08:50 +0800 2019
basename //显示路径基名
[root@localhost ~]# basename /123/321/456/654
654
dirname
[root@localhost ~]# dirname /123/321/456/654
/123/321/456
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值