前言
🏠个人主页:泡泡牛奶
🌵系列专栏:从零带你玩转Linux
本期将会让大家了解什么是权限,权限该如何理解,以及Linux中一些有关权限设置的指令操作,让你在Linux使用中更加得心应手(~ ̄▽ ̄)~
在开始看这篇文章之前,我们可以思考以下问题:
- 什么是权限?
- 为什么会有权限?
- 如何设置权限?
- 没有权限会怎么样?
认识权限
在Linux下,有两种用户:超级用户(root)、普通用户。
- root用户:可以在linux系统下做任何事,不受权限的限制
- 普通用户:在linux下受权限的制约,只能做有限的事
超级用户的命令提示符是
#
,普通用户的命令提示符是$
1. 文件访问者的分类
- 文件拥有者 u——User
- 文件所属组 g——Group
- 其它用户 o——Other
2. 文件类型和访问权限
我们可以使用ls -la
来查看当前目录下的所有文件详细信息
有细心的小伙伴肯定发现了,这一栏一共有10个字符:
-
第一个字符代表这个文件是文件、目录还是链接文件:
字符选项 含义 [ d ] 目录 (directory) [ - ] 文件 (默认 - ) [ l ] 链接文件 (link file) [ b ] 块设备文件,例如硬盘、光驱等 (block file) [ c ] 字符设备文件,例如屏幕等串口设备 (character file) [ p ] 管道文件 (pipe files) [ s ] 套接口文件 (socket file) -
第二个字符到最后一个字符,每3个为一组
每组有三个权限,分别是:
权限 含义 r 可读 (readable) w 可写 (writable) x 可执行 (excutable) - 无权限 例如图中的就是,拥有者和所属组可读可写可执行,其他人不可读不可写不可执行
3. 文件权值的表示方法
1) 字符表示法
Linux表示 | 说明 |
---|---|
r– | 只读 |
-w- | 只写 |
–x | 只执行 |
rw- | 可读可写(不执行 |
r-x | 可读可执行 (不可写 |
-wx | 可写可执行(不可读 |
rwx | 可读可写可执行 |
— | 无权限 |
2) 8进制表示法
将9位数每3位坐为一个8进制数字,有此权限就为1,没有此权限就为0
例如:
权限符号 | 二进制 | 八进制 |
---|---|---|
— | 000 | 0 |
–x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r– | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
创建普通用户 adduser
语法:
add [选项] 新建账号名
功能:
创建一个普通用户,adduser
与 useradd
一致,都是同样一条指令
(一般配合下面一条指令使用)
参数说明:
选项 | 含义 |
---|---|
-d | 指定家目录位置 |
-m | 若目录不存在,自动建立目录,默认/home/{新建账号名} |
-g | 指定所属组名称 |
实例:
adduser test_user
- 什么都不指定的情况下,默认家目录为
/home/{账号名}
,所属组名 与 账号名相同
设置用户密码 passwd
语法:
root用户:
passwd 用户名
普通用户:
passwd
功能:
设置/修改用户密码
实例:
root(超级)用户:
passwd test_user
passwd sam
New password:******* (新密码)
Re-enter new password:******* (再次输入新密码)
普通用户:
passwd
(current) UNIX password:**** (旧密码)
New password:*** (新密码)
Retype new password:**** (再次输入新密码)
注意:
- 在输入密码时,不会显示在显示器上,但密码确实会输入,如果输入错误建议
ctrl+c
(注销当前操作)重新输入
删除用户 userdel
语法:
userdel [-r] 用户名
功能:
删除用户(需要root用户才能删除)
实例:
删除用户(保留家目录)
userdel test_user
删除用户(家目录一起删除)
userdel -r test_user
以超级用户身份运行 sudo
语法:
sudo [其它命令]
作用:
以管理员身份执行命令
实例:
sudo whoami
设置root权限:
大家在第一次执行词条命令的时候,会遇到无法使用的问题,下面就有我为大家介绍如何解决。( •̀ ω •́ )✧
-
当前用户必须为root
-
用
vim或nano
打开/etc/sudoers
文件vim /etc/sudoers #用vim打开sudoers文件 nano /etc/sudoers #用nano打开sudoers
-
大概在
90~110
行左右,会看到root ALL=(ALL) ALL
,将root
换成你想提升权限的普通用户即可root ALL=(ALL) ALL (替换用户) ALL=(ALL) ALL
注意: 打开
/etc/sudoers
文件一定要是 root 用户,若不是 root 用户,打开文件会一片空白
切换用户 su
语法:
su {用户}
su - {用户}
用法实例:
命令 | 含义 |
---|---|
su | 切换到root用户 |
su root | 切换到root用户 |
su - | 切换到root用户,同时进入root家目录 |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时进入家目录 |
查看当前用户 whoami
语法:
whoami
功能:
查看当前用户
实例:
查看用户登录信息 who
·语法:
who
作用:
查看用户登录信息
退出登录账户 exit
语法:
exit
作用:
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号
快捷键:
ctrl+D
修改文件权限 chmod
语法:
chmod [ [目标对象][+-=][权限] ] [文件或目录]
功能:
修改文件或目录权限
参数说明:
目标对象 | 含义 |
---|---|
u | user 文件拥有者 |
g | group 文件所属组 |
o | other 其他人 |
a | all 所有 |
[±=] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
实例:
# 符号表示法
chmod u+rw test.c
chmod u+rw,g+rw test.c
chmod a-rw test.c
# 8进制表示法
chmod 516 test.c
修改用户拥有者 chown
语法:
chown [选项] 修改后拥有者[:新文件拥有者的所属组] [文件名]
功能:
- 修改用户拥有者
- 修改用户所属组
常用参数说明:
选项 | 含义 |
---|---|
-R | 递归处理,将目录与目录下所有文件一起修改 |
实例:
chown wyd file.txt
#修改文件 file.txt 拥有者为 wyd
chown wyd:wyd file.txt
#修改文件 file.txt 拥有者及所属组为 wyd
chown -R wyd dir
#将目录及其文件下的所有文件拥有者修改为 wyd
修改用户所属组 chgrp
语法:
chgrp [参数] [修改后用户组名] [文件名]
功能:
修改用户所属组
常用参数说明:
参数 | 含义 |
---|---|
-R | 递归处理,将目录与目录下所有文件一起修改 |
–reference=<参考文件或目录> | 将 文件所属组变成 与参考文件或目录一致 |
实例:
chgrp -R wyd test
#将test目录及其目录下的所有文件所属组修改为 wyd
chgrp --reference=test1 test2
#将test2所属组 变成 与test1所属组一致
chgrp -R --reference=test1 test2
#将test2及其目录下的所有文件 变成 与test1所属组一致
设置掩码 umask
语法:
umask [权限掩码]
作用:
- 查询掩码
- 设置掩码
说明:
- 权限和权限掩码是按照8进制表示法
- 新建文件默认权限 = 0666
- 新建目录默认权限 = 0777
- 假设默认权限是
mask
,则实际创建出来的文件权限是mask & ~umask
- 超级(root)用户默认掩码为
0022
- 普通用户默认掩码为
0002
实例:
umask #查询掩码
umask 0001 #设置掩码为 0001
总结
本期到这里就结束了,开头问的4个问题你能答的上来了吗?权限就是规定一个人是否能做这件事,若没有权限,那么就会造成所有的人都不能访问,或所有的人都可以访问,造成一系列的混乱,权限的存在就是为了保护一些数据信息不被随意改变,而且我们知道了root用户可以无视一切权限,那么我们更应该保护好root用户的密码。
我们下期再见 (*^▽^*)