在对linux系统中的文件设置权限的时候,突然想到一个问题:
chmod 777 [file]
可以给文件授权,这个权限该怎么调节,每个数字的意思是什么,这样设置会有什么安全风险没有?
带着这些疑问,查阅了相关资料,发现还真不能随便碰到文件没有权限就无脑777(之前碰到文件没有权限就无脑777
文件的权限表示
可以通过
ll
命令展示文件的信息
chmod命令
chmod(change mode)命令是控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
-
语法
chmod mode file
其中
mode
可以设定为字符串[ugoa][+-=][rwx]
- 其中[ugoa]代表的是
- u(owner)表示文件所有者,即创建文件的人
- g(group):表示和文件所有者相同组的用户
- o(other):表示非文件所有者和相同group的用户
- a(all):表示所有用户
- [±=]表示
- +:表示给指定的用户授权指定的权限
- -: 表示撤销指定用户的某个权限
- =: 将指定用户的指定权限重新设置
- [rwx]表示
- r:可读权限
- w:可写权限
- x:可执行权限
- 其中[ugoa]代表的是
-
使用:
-
给文件所有者设置可读权限
chmod u+r test.txt
-
给文件所有者设置可写权限
chmod u+w test.txt
-
给文件所有者设置可读可写可执行权限
chomd u+rwx test.txt
-
给其他的用户设置可执行权限
chmod o+x test.txt
-
将其他用户的可写权限撤销
chmod o-w test.txt
-
给文件所有者、当前组的用户设置可读可写可执行的权限
chmo ug+rwx test.txt
-
777表示什么
chmod可以使用八进制数来指定权限,无需再使用指定的权限和用户的字母来进行标识,通过读写执行等3个权限的数字来进行设置
-
八进制语法
# 权限 rwx 7 读+写+执行 rwx 6 读+写 rw- 5 读+执行 r-x 4 只读 r– 3 写+执行 -wx 2 只写 -w- 1 只执行 –x 0 无权限 — -
r
(读)的权限的数字为4,w
(写)的权限的数字为2,x
(执行)的权限数字为1 - 所以7表示的赋权的用户有读写执行权限,最大的权限
-
-
777表示什么
因为文件的权限分为3种用户,分别为
u
(文件所有者)、g
(文件的组用户)、o
(其他用户),所以777
表示u
、g
、o
都是777的权限chmod 777 test.txt
:表示将test.txt
文件的读、写、执行权限赋权给所有的用户。 -
修改文件所属用户
chown -R user:group test.txt
可以修改指定文件的用户和组
777
权限是个不安全的权限,因为每个用户都有所有的权限,那么对于一些文件或者执行文件来讲,任何用户都可以修改和执行,其实对于系统不太友好,因为无法做到权限的限制,所以之后再对文件进行授权的时候,要想好文件的权限~~