基本权限UGO
文件的基本权限设置,可以赋予某个用户或者租 能够以何种方式 访问某个文件
1.文件类型:Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分
符号 | 描述 |
---|---|
-: | 普通文件 |
d: | 目录 |
l: | 符号连接文件 |
b: | 块文件 |
c: | 字符设备文件 |
p: | 管道文件 |
2.linux中权限的设置也就是说UGO设置基本权限
权限对象
属主: u
属组: g
其他人: o
权限类型
读:r 4
写:w 2
执行: x 1
3.linux如何修改权限
命令 | 作用 |
---|---|
chmod | 用于设置文件或目录的权限 |
chown | 用于更改文件的属主 属组权限 |
chgrp | 用于修改属组权限 |
eg:使用chown更改一个目录的属主的权限,改为csm(只更改属主权限)
[root@localhost ~]# ll -d /root/huahua
drwxr-xr-x 2 root root 6 9月 26 23:03 /root/huahua
[root@localhost ~]# useradd csm
[root@localhost ~]# chown csm /root/huahua/
[root@localhost ~]# ll -d /root/huahua/
drwxr-xr-x 2 csm root 6 9月 26 23:03 /root/huahua/
使用chown更改一个目录的属组权限,改为qaz组(只更改属组权限)
[root@localhost ~]# groupadd qaz
[root@localhost ~]# chown :qaz /root/huahua/
[root@localhost ~]# ll -d /root/huahua/
drwxr-xr-x 2 root qaz 6 9月 26 23:03 /root/huahua/
使用chown更改一个目录的属主,属组权限
[root@localhost ~]# chown csm:qaz /root/huahua/
[root@localhost ~]# ll -d /root/huahua/
drwxr-xr-x 2 csm qaz 6 9月 26 23:03 /root/huahua/
使用chgrp更改属组权限
[root@localhost ~]# ll -d /root/huahua/
drwxr-xr-x 2 root root 6 9月 26 23:03 /root/huahua/
[root@localhost ~]# chgrp qaz /root/huahua/
[root@localhost ~]# ll -d /root/huahua/
drwxr-xr-x 2 root qaz 6 9月 26 23:03 /root/huahua/
使用chmod更改文件的权限
[root@localhost ~]# ll -d /root/we
-rw-r--r-- 1 root root 0 9月 26 23:19 /root/we
[root@localhost ~]# chmod 777 /root/we
[root@localhost ~]# ll -d /root/we
-rwxrwxrwx 1 root root 0 9月 26 23:19 /root/we #更改为777权限rwxrwxrwx
使用chmod更改权限 使用字母也可以更改
[root@localhost ~]# ll -d /root/we
-rwxrwxrwx 1 root root 0 9月 26 23:19 /root/we 文件的权限u:rwx g:rwx o:rwx 可以使用u-r 去掉它的可读权限
[root@localhost ~]# chmod u-r /root/we
[root@localhost ~]# ll -d /root/we
--wxrwxrwx 1 root root 0 9月 26 23:19 /root/we
4.目录对文件的影响
例如创建一个目录,在目录下创建一个文件,更改文件的权限为777
切换到其他的普通用户可以查看该文件吗?可以删除该用户吗?
[root@localhost /]# mkdir 01
[root@localhost /]# cd /01
[root@localhost 01]# touch 02
[root@localhost 01]# ll
总用量 0
-rw-r--r-- 1 root root 0 9月 27 00:44 02
[root@localhost 01]# chmod 777 01
[root@localhost 01]# ll
总用量 0
-rwxrwxrwx 1 root root 0 9月 27 00:44 02
[alice@localhost 01]$ cat 02
[alice@localhost 01]$ rm -rf /01/02
rm: 无法删除"/01/02": 权限不够
最后的结果就是可以查看,但是不能删除文件,显示权限不够
如何可以更改权限呢,下来说说
可以将目录的权限改为753 ,o就是3,具有wx权限,就是说有写和执行的权限,这就是最目录最基本删除目录下的权限就是具有wx权限,如果还要具有读,还要删除的权限 那就得rwx。
[root@localhost 01]# chmod 753 /01
[root@localhost 01]# ll -d /01
drwxr-x-wx 2 root root 16 9月 27 00:44 /01
[root@localhost 01]# ll -d /01/02
-rwxrwxrwx 1 root root 0 9月 27 00:44 /01/02
[root@localhost 01]# su alice
[alice@localhost 01]$ rm -rf /01/02
[alice@localhost 01]$ cd ..
没有报错,就说明删除了,但是不能查看是否删除,因为目录没有可读的权限。(想要切换到普通用户删除一个目录下的文件目录的权限O最低要有wx权限 而文件权限O最低要有w权限)
5.基本权限ACL
setfacl 命令用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL 提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。
UGO 设置基本权限: 只能一个用户,一个组和其他人
ACL 设置基本权限: r,w,x
1.ACL的基本设置方法:
[root@localhost qw]# touch test
[root@localhost qw]# ls
test
[root@localhost qw]# ll -d /qw/test
-rw-r--r-- 1 root root 0 9月 30 21:08 /qw/test
[root@localhost qw]# getfacl /qw/test
getfacl: Removing leading '/' from absolute path names
# file: qw/test
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@localhost qw]# setfacl -m u:alice:rw /qw/test
[root@localhost qw]# getfacl /qw/test
getfacl: Removing leading '/' from absolute path names
# file: qw/test
# owner: root
# group: root
user::rw-
user:alice:rw-
group::r--
mask::rw-
other::r--
给用户alice增加对文件test的可读 可写权限
2.删除用户的权限
删除用户组中hr的ACL权限
[root@localhost qw]# getfacl /qw/test
getfacl: Removing leading '/' from absolute path names
# file: qw/test
# owner: root
# group: root
user::rw-
user:alice:rw-
group::r--
group:hr:rw-
mask::rw-
other::rw-
[root@localhost qw]# setfacl -x g:hr /qw/test
[root@localhost qw]# getfacl /qw/test
getfacl: Removing leading '/' from absolute path names
# file: qw/test
# owner: root
# group: root
user::rw-
user:alice:rw-
group::r--
mask::rw-
other::rw-
3.删除所有ACL权限
[root@localhost qw]# setfacl -b /qw/test
[root@localhost qw]# getfacl /qw/test
getfacl: Removing leading '/' from absolute path names
# file: qw/test
# owner: root
# group: root
user::rw-
group::r--
other::rw-
6.高级权限 suid,sgid,sticky
高级权限的类型
suid 4
sgid 2
sticky 1 粘滞位
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限
SGID 主要实现如下两种功能:1.让执行者临时拥有属组的权限 2.在某个目录中创建的文件自动继承该目录的用户组
Sticky 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件
SUID临时给用户权限 例如修改用户自己的密码
[root@localhost qw]# ls -l /bin/cat
-rwxr-sr-x. 1 root root 54080 11月 6 2016 /bin/cat
[root@localhost qw]# ls -l /etc/shadow
-rw-rw---- 1 root root 3237 9月 27 01:30 /etc/shadow
[root@localhost qw]# su alice
[alice@localhost qw]$ cat etc/shadow
cat: etc/shadow: 没有那个文件或目录
[root@localhost qw]# chmod u+s /bin/cat
[root@localhost qw]# ls -l /bin/cat
-rwsr-sr-x. 1 root root 54080 11月 6 2016 /bin/cat
[root@localhost qw]# su alice
[alice@localhost qw]$ cat /etc/shadow
alice:$6$WjmvGnhA$zpdpnw8MPqihkCHqN6iFKbJZp787uH5zF4ipq015Cg/t/yyiPSdUvx.oKvcljs100a
[alice@localhost qw]$ passwd
更改用户 alice 的密码 。
为 alice 更改 STRESS 密码。
(当前)UNIX 密码:
sgid 新建文件继承目录属组 (针对目录)
[root@localhost qw]# mkdir /home/exe
[root@localhost qw]# chgrp zsm /home/exe
[root@localhost qw]# chmod g+s /home/exe
[root@localhost qw]# ll -d /home/exe
drwxr-sr-x 2 root zsm 6 9月 30 22:02 /home/exe
[root@localhost qw]# touch /home/exe/file
[root@localhost qw]# ll /home/exe/file
-rw-r--r-- 1 root zsm 0 9月 30 22:03 /home/exe/file
如上所示,在home下创建exe目录,给目录更改属组权限,继续给属组附有特殊权限g+s,在目录exe下创建文件file,则文件file继承目录的属组权限zsm 所以sgid权限是目录下创建文件,文件继承目录的属组权限
sticky 用户只能删除自己的文件
[root@localhost qw]# mkdir /home/dir3
[root@localhost qw]# chmod 777 /home/dir3
[root@localhost qw]# su alice
[alice@localhost qw]$ cd /home/dir3
[alice@localhost dir3]$ mkdir 789
[root@localhost /]# useradd zsmz
[root@localhost /]# su zsmz
[zsmz@localhost /]$ cd
[zsmz@localhost ~]$ cd /home/dir3
[zsmz@localhost dir3]$ ls
789
[zsmz@localhost dir3]$ rm -rf 789
[zsmz@localhost dir3]$ ls
用户zsmz可以删除用户alice创建的目录
[root@localhost dir3]# chmod o+t /home/dir3 给目录设置特殊权限sticky
[root@localhost dir3]# ll -d /home/dir3
drwxrwxrwt 2 root root 6 9月 30 22:13 /home/dir3
[root@localhost dir3]# su alice
[alice@localhost dir3]$ cd /home/dir3
[alice@localhost dir3]$ mkdir 456
[zsmz@localhost dir3]$ cd /home/dir3
[zsmz@localhost dir3]$ ls
456
[zsmz@localhost dir3]$ rm -rf 456
rm: 无法删除"456": 不允许的操作
如上所示,给目录设置了特殊权限sticky,用户alice在/home/dir3下创建目录456,切换用户zsmz,无法删除用户alice创建的目录456,这就是特殊权限sticky的作用,只能删除自己的文件,。