权限管理
权限概述
# 报错
Permission denied(权限不足)
## 权限和用户的关系
r:读权限,read,4
w:写权限,write,2
x:执行权限,exec,1
-:没有权限,0
# 未学习今日命令时,使用awk提取数字权限
[root@localhost ~]# ll|tr 'rwx-' '4210'|awk -F '' 'NR==2{print $2+$3+$4,$5+$6+$7,$8+$9+$10}'
7 7 7
## 正规取出文件数字权限的命令
stat -c %a 文件名
例:
[ljy@localhost ~]$ stat -c %a /home/ljy
700
# 权限位
属主权限位:u user
属组权限位:g group
其他用户权限位:o other
授权命令
chmod
# 语法
chmod 权限 文件名
# 授权方式
1.数字方式
ljy@localhost ~]$ ll
drwxrwxr-x. 2 ljy ljy 6 Mar 16 00:45 work
[ljy@localhost ~]$ stat -c %a work
775
[ljy@localhost ~]$ chmod 744 work
[ljy@localhost ~]$ ll
drwxr--r--. 2 ljy ljy 6 Mar 16 00:45 work
[ljy@localhost ~]$ stat -c %a work
744
2.权限位方式(ugo方式)
u:user用户权限
g:group用户权限
o:other其他用户权限
a:all所有权限位
+:加上后面指定的权限
-:减去后面指定的权限
=:等于后面指定的权限
[ljy@localhost ~]$ chmod u-r,g-r,o+w work
[ljy@localhost ~]$ ll
total 0
drwxrwxr-x. 2 ljy ljy 57 Mar 16 01:02 Music
d-wx--xrw-. 2 ljy ljy 6 Mar 16 00:45 work
# a可以省略
-rw-r--r--. 1 root root 3680 Mar 17 20:27 wenben
[root@localhost ~]# chmod -r wenben
--w-------. 1 root root 3680 Mar 17 20:27 wenben
权限对文件的影响
r 文件只能读取
w 任何编辑命令都可以写入
x 对于普通用户来说,还是做不了事情,只能配合r或者w使用
rw 可读可写,正常的使用vim编辑,但不能执行
rx 可读,可执行,但不能编辑
wx 不可读,可写,可执行
rwx 可读,可写,可执行
权限对目录的影响
# 目录在只有单权限的情况下啥都做不了
r 能看见目录下的文件,但看不了目录下文件的详细信息
w 啥也做不了
x 啥也做不了
rx 才能查看目录下的权限
wx 读取不了目录里的文件,但是创建文件/创建目录/删除目录/删除文件不能用*代替
rwx 啥都可以
修改文件的属主属组
# 修改属主和属组
chown
# 语法
chown 选项 xxx:xxx 参数
例:
chown ljy:ljy xxx
chown ljy.ljy xxx
chown -R ljy.ljy xxx
# 选项
-R 递归修改
chown -R ljy.ljy xxx
修改xxx及xxx中所有文件的属主与属组
# 只改属主
chown root xxx
# 只改属组
chown :root xxx
特殊权限
# 基本权限
r 读
w 写
x 执行
- 屁
问题1:
普通用户可不可以修改自己的密码?
可以
问题2:
/etc/shadow的权限
000
问题3:
为什么可以修改/etc/shadow的内容
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 passwd
特殊权限1 SetUID
文件以文件属主的身份去运行
setuid特殊权限授权
代表数字:4000
chmod 4755 file
chmod u + s
chmod u = s
# 特性
如果原本没有x权限,授权为setuid,则s会是大写S
如果原本有x权限,授权为setuid,则会是小写s
## 为什么普通用户可以修改密码
1)使用了passwd命令
2)passwd命令文件在属主为上有个s权限 原本的x变成了s
3)s权限在属主位,又叫做setuid权限 setUID
#4)作用:普通用户在使用又setuid权限的文件或者命令的时候,会以该文件的属主身份去运行!
特殊权限2
setgid
代表数字:2000
# 授权方式
chmod 2755 directory
chmod g+s directory
# 特性
如果原本没有x权限,授权为setgid,则s会是大写S
如果原本有x权限,授权为setgid,则会是小写s
练习sgid:
创建三个用户,分别是 zls , oldboy , yourname 这些用户都属于 oldboyedu 组的成员。这些用户的密码
都是 123
[root@localhost ~]# id zls
uid=1083(zls) gid=1083(zls) groups=1083(zls),1086(oldboyedu)
[root@localhost ~]# id oldboy
uid=1084(oldboy) gid=1084(oldboy) groups=1084(oldboy),1086(oldboyedu)
[root@localhost ~]# id ljy1
uid=1085(ljy1) gid=1085(ljy1) groups=1085(ljy1),1086(oldboyedu)
[root@localhost ~]# passwd ljy1
Changing password for user ljy1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd oldboy
Changing password for user oldboy.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd zls
Changing password for user zls.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
1.要求以上用户和组可以在 /home/oldboyedu 目录里访问,创建,删除文件
[root@localhost /home]# ll
drwx------. 2 oldboyedu oldboyedu 62 Mar 24 00:09 oldboyedu
[root@localhost /home]# chmod 770 oldboyedu
[root@localhost /home]# ll
drwxrwx---. 2 oldboyedu oldboyedu 62 Mar 24 00:09 oldboyedu
2.其他用户一律不允许访问该目录
[yl@localhost home]$ cat /home/oldboyedu/
cat: /home/oldboyedu/: Permission denied
3.在该目录下新建的文件会自动属于 oldboyedu 组拥有
[oldboy@localhost oldboyedu]$ ll
total 0
-rw-r--r--. 1 root oldboyedu 0 Mar 24 01:11 1
-rw-rw-r--. 1 ljy1 oldboyedu 0 Mar 24 01:15 2
-rw-r--r--. 1 root oldboyedu 0 Mar 24 01:14 3
-rw-rw-r--. 1 zls oldboyedu 0 Mar 24 01:16 4
-rw-rw-r--. 1 oldboy oldboyedu 0 Mar 24 01:16 5
特殊权限3
sbit
展示
ll -d /tmp
drwxrwxrwt. 8 root root 127 Mar 23 16:44 .
作用
1 带有粘滞位的目录下的所有文件,谁都可以读,写
2.带有粘滞位的目录下的文件只有属主才能删除自己的文件,其他普通用户无法删除属主不是自己的文件
3.带有粘滞位的目录 只有root能删
## 授权方法
chmod o+t
chmod 1777 directory
sbit权限数字是1000
# 特性
如果原本有x权限 授权特殊sbit后 t
如果原本没有x权限 授权特殊sbit后 T