文件类型
-
, 普通文件l
, 链接文件d
, 目录c
, 字符设备文件b
, 块设备文件p
, 管道文件s
, Sockett
, 特殊文件
基础
- 权限类型:
- r,读 4
- w,写 2
- x,可执行 1
- 用户类型:
- user, 文件所有者
- group, 文件所有组的所有用户
- other,其他用户
目录的权限
- r: 列出目录下的文件(
ls
) - w: 在目录中,创建、删除、重命名文件或子目录
- x: 进入目录(
cd
)
示例
touch /tmp/testPerm
chmod 7777 /tmp/testPerm
ll /tmp/testPerm
-rwsrwsrwt 1 markjour markjour 0 2014-02-27 17:41:06 /tmp/testPerm
Linux 权限的两种表示方法:
- 数字:
- 字母:
第一位表示文件类型
第 2 - 4 位表示文件所有者的权限
第 5 - 7 位表示文件所有组的权限
第 8 - 10 位表示其他用户的权限
特殊权限
Linux 中的权限一共用 12 位来表示,除了上面 u g o 各 3 位(rwx)一共 9 位之外,还有 3 位:
- setuid / suid, 4,显示为 S(显示在所有者权限中的第三位,如果有 x 的话,就显示 s)
- setgid / sgid,2,显示为 S(显示在所有组权限中的第三位,如果有 x 的话,就显示 s)
-
sticky bit ,1,显示为 T
-
suid, sgid 是用来给文件设置临时提权用的。如果设置, 所有用户都会继承文件所有者或所有组的权限。
- 如果目录设置了 sgid,那么该目录中新创建的文件和子目录会继承目录的所在组。
- sticky bit 一般翻译为粘滞位,设置在目录上, 仅允许文件所有者(或 root)才能删除改目录下的文件。
Linux 或 FreeBSD 都会忽略文件上的 sticky bit。
suid | sgid | sbit | |
---|---|---|---|
文件 | |||
目录 |
$ ls -alh /bin/ | grep rws
-rwsr-sr-x 1 daemon daemon 55K 2022-04-14 08:23:36 at
-rwsr-xr-x 1 root root 72K 2022-11-24 20:05:18 chfn
-rwsr-xr-x 1 root root 44K 2022-11-24 20:05:18 chsh
-rwsr-xr-x 1 root root 35K 2022-03-23 21:53:14 fusermount3
-rwsr-xr-x 1 root root 71K 2022-11-24 20:05:18 gpasswd
-rwsr-xr-x 1 root root 47K 2023-04-07 06:21:06 ksu
-rwsr-xr-x 1 root root 47K 2022-02-21 09:49:57 mount
-rwsr-xr-x 1 root root 28K 2022-11-24 20:05:18 newgidmap
-rwsr-xr-x 1 root root 40K 2022-11-24 20:05:18 newgrp
-rwsr-xr-x 1 root root 28K 2022-11-24 20:05:18 newuidmap
-rwsr-xr-x 1 root root 31K 2022-02-07 21:05:06 nvidia-modprobe
-rwsr-xr-x 1 root root 59K 2022-11-24 20:05:18 passwd
-rwsr-xr-x 1 root root 31K 2022-02-26 19:11:57 pkexec
-rwsr-xr-x 1 root root 55K 2022-02-21 09:49:57 su
-rwsr-xr-x 1 root root 227K 2023-04-04 02:00:44 sudo
-rwsr-xr-x 1 root root 35K 2022-02-21 09:49:57 umount
$ find /bin/ -type f -perm /4000 -ls
7342874 36 -rwsr-xr-x 1 root root 35200 Mar 23 2022 /bin/fusermount3
7352563 28 -rwsr-xr-x 1 root root 28136 Nov 24 2022 /bin/newuidmap
7341794 32 -rwsr-xr-x 1 root root 30872 Feb 26 2022 /bin/pkexec
7347918 36 -rwsr-xr-x 1 root root 35192 Feb 21 2022 /bin/umount
7347747 48 -rwsr-xr-x 1 root root 47480 Feb 21 2022 /bin/mount
7344663 28 -rwsr-xr-x 1 root root 28136 Nov 24 2022 /bin/newgidmap
7349993 72 -rwsr-xr-x 1 root root 72072 Nov 24 2022 /bin/gpasswd
7350008 60 -rwsr-xr-x 1 root root 59976 Nov 24 2022 /bin/passwd
7347439 228 -rwsr-xr-x 1 root root 232416 Apr 4 02:00 /bin/sudo
7344105 32 -rwsr-xr-x 1 root root 30936 Feb 7 2022 /bin/nvidia-modprobe
7345135 56 -rwsr-xr-x 1 root root 55672 Feb 21 2022 /bin/su
7347241 72 -rwsr-xr-x 1 root root 72712 Nov 24 2022 /bin/chfn
7352704 40 -rwsr-xr-x 1 root root 40496 Nov 24 2022 /bin/newgrp
7347300 44 -rwsr-xr-x 1 root root 44808 Nov 24 2022 /bin/chsh
7382902 48 -rwsr-xr-x 1 root root 47416 Apr 7 06:21 /bin/ksu
7343017 56 -rwsr-sr-x 1 daemon daemon 55624 Apr 14 2022 /bin/at
$ find /bin/ -type f -perm /2000 -ls
7342246 16 -rwxr-sr-x 1 root root 15504 Jan 12 2022 /bin/dotlock.mailutils
7347219 72 -rwxr-sr-x 1 root shadow 72184 Nov 24 2022 /bin/chage
7346616 24 -rwxr-sr-x 1 root tty 22912 Feb 21 2022 /bin/write.ul
7340649 308 -rwxr-sr-x 1 root plocate 313904 Feb 17 2022 /bin/plocate
7341420 40 -rwxr-sr-x 1 root crontab 39568 Mar 23 2022 /bin/crontab
7349934 24 -rwxr-sr-x 1 root shadow 23136 Nov 24 2022 /bin/expiry
7347279 24 -rwxr-sr-x 1 root tty 22904 Feb 21 2022 /bin/wall
7345047 288 -rwxr-sr-x 1 root _ssh 293304 Nov 23 2022 /bin/ssh-agent
7343017 56 -rwsr-sr-x 1 daemon daemon 55624 Apr 14 2022 /bin/at
https://en.wikipedia.org/wiki/Setuid
https://en.wikipedia.org/wiki/Sticky_bit
https://web.archive.org/web/20130204053849/http://content.hccfl.edu/pollock/aunix1/filepermissions.htm
操作
chown
更改文件所有者和文件所有组chgrp
更改文件所有组chmod
更改权限
chmod 755 filePath
chmod 644 filePath
chmod u+x filePath
chmod g+r filePath
chmod o+w filePath
chmod a+r filePath