关于Linux权限的基础
以下为例:
lrwxrwxrwx 1 root root 7 Apr 22 2024 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Feb 26 2024 bin.usr-is-merged
drwxr-xr-x 4 root root 4096 Nov 28 08:18 boot
dr-xr-xr-x 2 root root 4096 Aug 5 23:53 cdrom
-rw-r--r-- 1 root root 0 Nov 28 09:02 ceshiwenjian.txt
drwxr-xr-x 20 root root 4100 Dec 1 01:18 dev
drwxr-xr-x 110 root root 4096 Nov 28 09:33 etc
drwxr-xr-x 3 root root 4096 Nov 28 08:23 home
lrwxrwxrwx 1 root root 7 Apr 22 2024 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Apr 22 2024 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Feb 26 2024 lib.usr-is-merged
drwx------ 2 root root 16384 Nov 28 07:50 lost+found
drwxr-xr-x 2 root root 4096 Aug 5 16:54 media
drwxr-xr-x 2 root root 4096 Aug 5 16:54 mnt
drwxr-xr-x 2 root root 4096 Aug 5 16:54 opt
dr-xr-xr-x 160 root root 0 Dec 1 01:18 proc
drwx------ 4 root root 4096 Dec 1 01:15 root
drwxr-xr-x 29 root root 860 Dec 1 01:20 run
lrwxrwxrwx 1 root root 8 Apr 22 2024 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Dec 11 2024 sbin.usr-is-merged
drwxr-xr-x 2 root root 4096 Nov 28 08:23 snap
drwxr-xr-x 2 root root 4096 Aug 5 16:54 srv
-rw------- 1 root root 3058696192 Nov 28 08:18 swap.img
dr-xr-xr-x 13 root root 0 Dec 1 01:44 sys
drwxrwxrwt 14 root root 4096 Dec 1 01:19 tmp
drwxr-xr-x 12 root root 4096 Aug 5 16:54 usr
drwxr-xr-x 13 root root 4096 Nov 28 08:23 var
如上ls -l后权限分为多段
其中第一个“-”rw-rw-r--
如果为-则表示文件
如果为D则表示文件夹
如果为L开头则表示为软连接
r为read 只读
w为write 可写
x为executable 执行
第一段2-4个字符为该文件所属用户的权限
第二段5-7个字符为该文件所属用户组的权限
第三段8-10个字符表示其他用户对该文件的权限
如果需要更改直接使用chmod命令英文change mod
在权限中分:user组group组Other组
所以如果想直接取消比如全部读权限,那么直接chmod -r 文件名即可,相反全部加读权限chmod +r 文件名即可
如果想要精确操作比如Other组取消读权限则chmod o-r 文件名即可,相反给Other组赋权chmod o+r即可,其他rwx等同理。
如果想操作多组的某一权限,比如取消group和Other组的x权限,那么chmod g-x,o-x 文件名即可。
关于特殊suid权限的说明(其他用户可以临时借用此文件)
-rwsr-xr-x 1 root root 64152 May 30 2024 /usr/bin/passwd
root@test:~#
对于某些文件比如如上可以分割看到
-rws
-xr
-x
那么这种文件可以被其他用户所借用,s等于执行权限x但是这个文件所属user是root其他比如group为-xr还有other为x
其他用户如果不能借用这个文件的话吗就不能使用/user/bin/passwd了
比如我现在直接使用如下操作
root@test:~# chmod g-x /usr/bin/passwd
root@test:~# chmod o-x /usr/bin/passwd
那么其他用户将会无法借用passwd这样就无法更改密码了
-rwsr--r-- 1 root root 64152 May 30 2024 /usr/bin/passwd
如果直接chmod u-s /usr/bin/passwd的话那么直接普通用户也无法借用这个文件了,这样可以提升安全性
或者是如果有的命令只能root用户使用的话其他用户会有功能缺失无法正常使用的情况
这个时候直接which那个命令找到这个文件然后直接+s权限给相关的命令让其他用户也能使用这个“文件”就可以了
不过这个是有一点危险的,这个就相当于临时借用了root权限