一.超管用户
linux服务器上有严格的权限等级,如果权限过⾼导致误操作会增加服务器的⻛险。
了解linux系统中的各种权限及要给⽤户,服务等分配合理的权限⼗分重要,在Linux中,还有一个神一样存在的用户,这就是root用户,因为在所有用户中它拥有最大的权限,所以管理着普通用户。root用户可以无视读写权限,root用户无执行权限也是无法执行,但自身可以加上权限。
二.权限详解
Linux系统中权限所有者分为三类:属主权限,属组权限,其他
在系统命令中可以用缩写或者数字来表示:
属主 | 属组 | 其他 | |
英文表示 | user | group | other |
缩写 | u | g | o |
权限分为三类:
r read 读
w write 写
x execute 执行
针对文件或者目录,具体的权限表示可以进行的操作如下:
文件:
r 查看文件内容(cat/less/more/head/tail/grep )
w 编辑文件(vim > 覆盖 >> 追加 ) echo
x 执行文件(shell/python)
目录:
r 查看目录内容(ls )
w 修改目录下内容(touch/mkdir/rm/cp/mv)
x 切换目录(cd )
权限在操作中可以用数字表示:
查看 | 编辑/修改 | 执行 | |
字母表示 | r | w | x |
数字表示 | 4 | 2 | 1 |
三.查看权限
使用命令
ll 文件或目录
或者
ls -l 文件或目录
查看文件内容如下:
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
首字母表示文件类型(d即为目录文件)
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
第2-4行表示属主权限:(图中rwx均有则为满权限,无权限则用-表示)
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
第5-7行表示属组权限:
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
第8-10行表示其他人权限:
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
数字2表示硬链接数:
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
两个root分别表示属主以及属组
drwxr-xr-x. 2 root root 6 8月 23 11:15 abc
最后两行则是最后修改日期与文件名
四.设置文件目录权限
方法1):
# chmod {augo}{+-=}{rwx} <file> ...
-R 递归修改权限
u: user 属主
g: group 属组
o:other 其他用户
a:all 所有(ugo)
rw- r-- r--
u 属主 g 属组 o其他人
[root@localhost ~]# chmod a-r 1.txt
[root@localhost ~]# ll 1.txt
--w-------. 1 root root 0 10月 12 19:51 1.txt
[root@localhost ~]# chmod a+r 1.txt
[root@localhost ~]# ll 1.txt
-rw-r--r--. 1 root root 0 10月 12 19:51 1.txt
[root@localhost ~]# chmod a=r 1.txt
[root@localhost ~]# ll 1.txt
-r--r--r--. 1 root root 0 10月 12 19:51 1.txt
-------------------------------------------------
[root@localhost ~]# chmod u-r 1.txt
[root@localhost ~]# ll 1.txt
----r--r--. 1 root root 0 10月 12 19:51 1.txt
[root@localhost ~]# chmod u+w 1.txt
[root@localhost ~]# ll 1.txt
--w-r--r--. 1 root root 0 10月 12 19:51 1.txt
[root@localhost ~]# chmod u+x 1.txt
[root@localhost ~]# ll 1.txt
--wxr--r--. 1 root root 0 10月 12 19:51 1.txt
---------------------------------------------------
g o 所使用的命令和a u 是一致的
注意: 目录的权限设置与文件的设置一致。
示例:
让1.txt文件的权限为rw--w---x 621
[root@localhost ~]# ll 1.txt
---x--x--x. 1 root root 0 10月 12 19:51 1.txt
[root@localhost ~]# chmod u=rw,g=w,o=x 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 root root 0 10月 12 19:51 1.txt
方法2)
# chmod nnn <file> ...
[root@localhost ~]# chmod 621 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 root root 0 10月 12 19:51 1.txt
五.修改文件的所属
chown 用户 组 文件
# chown <user>.<group> <file>
# chown <user>:<group> <file>
[root@localhost ~]# chown user1 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 user1 root 0 10月 12 19:51 1.txt
# chown {.|:}user2 1.txt
[root@localhost ~]# chown .user2 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 user1 user2 0 10月 12 19:51 1.txt
[root@localhost ~]# chown :user3 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 user1 user3 0 10月 12 19:51 1.txt
# chown user:group 1.txt
# chown user.group 1.txt
[root@localhost ~]# chown user2:user3 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 user2 user3 0 10月 12 19:51 1.txt
[root@localhost ~]# chown user1.user2 1.txt
[root@localhost ~]# ll 1.txt
-rw--w---x. 1 user1 user2 0 10月 12 19:51 1.txt
-R recoursive 递归修改,修改⽬录的时候连带⽬录的所有⼦⽂件⼀起修改
[root@localhost ~]# chown -R user1:user2 dir/
[root@localhost ~]# ll -d dir/
drwxr-xr-x. 2 user1 user2 4096 10月 12 20:22 dir/
[root@localhost ~]# ll dir
总用量 0
-rw-r--r--. 1 user1 user2 0 10月 12 20:22 10.txt
-rw-r--r--. 1 user1 user2 0 10月 12 20:22 11.txt
六.隐藏权限
i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。
a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。
设置a i 权限
chattr -f +i a.txt
chattr -f +a a.txt
查看a i 权限
lsattr a.txt
删除 a i 权限
chattr -a a.txt
chattr -i a.txt
其他参数:
+A:Atime,告诉系统不要修改对这个⽂件的最后访问时间
+S:Sync,⼀旦应⽤程序对这个⽂件执⾏了写操作,使系统⽴刻把修改的结果写到磁盘。
+d:No dump,在进⾏⽂件系统备份时,dump程序将忽略这个⽂件。
chattr命令不能保护/、/dev、/tmp、/var⽬录
七.权限合理性
设置权限要考虑到其合理性,例如给予编辑文件权限,但在文件所属目录中没有执行权限(x权限),那么根本就进不到文件里去,又何来修改编辑呢?
因此设置权限时要考虑权限是否对后续操作的合理性有影响,尤其要注意目录与目录内文件的权限关系:
w 写
文件:
w 编辑文件
r 可以看
目录:
w 针对目录内操作
r 看
x 进入