Linux下的两类用户
超级用户root、普通用户
- 超级用户 root:可以再linux下做任何事情,不受限制。
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是
#
,普通用户的命令提示符是$
。
命令: su
[用户名] ------- 切换用户。
使用 -
,会创建 bash
sudo临时权限提升
需要输入普通用户密码
.
文件访问者的分类(人)
- 文件和文件目录的所有者:
u---User
(中国平民 法律问题) - 文件和文件目录的所有者所在的组的用户:
g --- Group
- 其他用户
o --- Others
文件类型和访问权限(事物属性)
文件类型
d:文件夹-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
在Linux系统中,不以文件后缀作为区分文件类型的方式。
基本权限
读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
-
表示不具有该项权限
- 字符表示方法
- 8进制数值表示方法
文件访问权限的相关设置方法
chmod
chmod
u/g/o/a
+/-
文件名
功能:设置文件的访问权限
常用选项:
- R->递归修改目录文件的权限
只有文件的所有者和root才可以改变文件的权限
其一:用户表示符 +/-= 权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限 用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
[zjy@VM-16-3-centos code]$ touch file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-r-- 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod u+x file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rwxrw-r-- 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod g-rwx file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rwx---r-- 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod o+w file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rwx---rw- 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod o-rwx file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rwx------ 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod u+rwx,g+rwx,o+rwx file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rwxrwxrwx 1 zjy zjy 0 Jan 27 11:57 file.txt
[zjy@VM-16-3-centos code]$ chmod a-rwx file.txt
[zjy@VM-16-3-centos code]$ ll
total 0
---------- 1 zjy zjy 0 Jan 27 11:57 file.txt
其二:三位8进制数字
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
更改一个文件的拥有者和所属者
- chown
修改文件的拥有者
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-r-- 1 zjy zjy 0 Jan 29 20:28 test.txt
[zjy@VM-16-3-centos code]$ su
Password:
[root@VM-16-3-centos code]# chown root test.txt
[root@VM-16-3-centos code]# ll
total 0
-rw-rw-r-- 1 root zjy 0 Jan 29 20:28 test.txt
chown / chgrp 更改时需要征询他人的同意 或者 直接sudo/su - 切换成超级用户。
- chgrp
修改文件或者目录的所属者。
[zjy@VM-16-3-centos code]$ chgrp root test.txt
chgrp: changing group of ‘test.txt’: Operation not permitted
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-r-- 1 root zjy 0 Jan 29 20:28 test.txt
[zjy@VM-16-3-centos code]$ su
Password:
[root@VM-16-3-centos code]# chgrp root test.txt
[root@VM-16-3-centos code]# ll
total 0
-rw-rw-r-- 1 root root 0 Jan 29 20:28 test.txt
拿回这个权限
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-r-- 1 zjy root 0 Jan 29 20:28 test.txt
[zjy@VM-16-3-centos code]$ chgrp zjy test.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-r-- 1 zjy zjy 0 Jan 29 20:28 test.txt
- umask
功能:查看或修改文件掩码
(修改文件掩码) umask 权限值
新建文件夹默认权限 = 0666
新建目录默认权限 = 0777
但是创建文件夹或者目录的时候还要受到 umask
的影响。
假设默认权限是 mask
,则实际创建出来的文件权限是: mask & ~umask
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。
超级用户默认掩码是0022,普通用户默认是0002。
# umask 755
# umask //查看
# umask 044//设置
目录权限
- 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
- 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
推导:
如果要想other在特定的目录下创建文件,并写入。
但是不想让任何人删掉自己的文件。
这时候,就需要 粘滞位
粘滞位
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-rwx 1 zjy zjy 0 Jan 29 20:28 test.txt
[zjy@VM-16-3-centos code]$ chmod +t test.txt
[zjy@VM-16-3-centos code]$ ll
total 0
-rw-rw-rwt 1 zjy zjy 0 Jan 29 20:28 test.txt
当一个目录被设置为粘滞位时 chmod o+ t
则该目录下的文件只能由:
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
总结
- 目录的可执行权限是表示可否在目录下执行命令
- 如果目录没有
-x
权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有-r
读权限。 - 如果目录真具有
-x
权限,但没有-r
权限,则用户可以执行命令,可以cd进入目录。但是由于没有目录的读权限,在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。