用戶、羣組及權限的深入討論
使用passwd修改密碼和檢查用戶密碼的狀態
- 使用passwd命令修改密碼和查看密碼狀態
- 普通用戶只能修改自己的密碼
- Linux要求普通用戶的密碼必須足夠安全
- root用戶修改的密碼可以不安全
- root用戶可以修改其他用戶的密碼
- root用戶可以查看其他用戶的密碼狀態
- 使用帶有-S或–status選項的passwd命令查看
groups ~ 確定dog用戶所屬的羣組:
- id ~ 不但可以獲取當前用戶所屬的羣組、還可 以獲取羣組的ID以及用戶ID和用戶名:
- last ~ 列出戶登錄系統和重啓Linux系統時間的歷史記錄
[root@dog ~]# groups
root bin daemon sys adm disk wheel
[root@dog ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),
2(daemon),3(sys),4(adm), 6(disk),10(wheel)
[root@dog dag]# tail -5 /etc/shadow
sshd:!!:18345::::::
tcpdump:!!:18345::::::
dag:$6$PUSdiuHt7wLfIlMP$X2rBqYnUZmVybwza/SlYnUr65FlrKnhapP.E82Mckug3ev5h5KYZgjjSAn2MLOBMbchphg9cweLrgIGz83u3h0:18351:0:99999:7:::
cat:$6$x6UWHWRZ$VUbbK9Y7ReNsxFTvapo5jnjVkM6U0.yPeh17RLefpTO8jXAId1K7.bNFZvl3TiACLqW6XDFGDgrGP3JSfqsfb1:18395:0:99999:7:::
fox::18398:0:99999:7:::
[root@dog dag]# useradd pig
[root@dog dag]# tail -5 /etc/shadow
tcpdump:!!:18345::::::
dag:$6$PUSdiuHt7wLfIlMP$X2rBqYnUZmVybwza/SlYnUr65FlrKnhapP.E82Mckug3ev5h5KYZgjjSAn2MLOBMbchphg9cweLrgIGz83u3h0:18351:0:99999:7:::
cat:$6$x6UWHWRZ$VUbbK9Y7ReNsxFTvapo5jnjVkM6U0.yPeh17RLefpTO8jXAId1K7.bNFZvl3TiACLqW6XDFGDgrGP3JSfqsfb1:18395:0:99999:7:::
fox::18398:0:99999:7:::
pig:!!:18400:0:99999:7:::
[root@dog dag]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbi
n/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
--More--(90%)
[fox@dog dag]$ su root
密碼:
[root@dog dag]# passwd fox
更改用戶 fox 的密碼 。
新的 密碼:
無效的密碼: 過於簡單化/系統化
無效的密碼: 過於簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
[root@dog dag]# su root
[root@dog dag]# su fox
[fox@dog dag]$ passwd -S dog
只有根用戶才能進行此操作。
[fox@dog dag]$ su root
密碼:
[root@dog dag]# passwd -S dag
dag PS 2020-03-29 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)
[root@dog dag]# passwd -status dag
passwd:錯誤的參數 -status: 未知的選項
[root@dog dag]# passwd --status dag
dag PS 2020-03-29 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)
[root@dog dag]# tail -4 /etc/shadow
dag:$6$PUSdiuHt7wLfIlMP$X2rBqYnUZmVybwza/SlYnUr65FlrKnhapP.E82Mckug3ev5h5KYZgjjSAn2MLOBMbchphg9cweLrgIGz83u3h0:18351:0:99999:7:::
cat:$6$x6UWHWRZ$VUbbK9Y7ReNsxFTvapo5jnjVkM6U0.yPeh17RLefpTO8jXAId1K7.bNFZvl3TiACLqW6XDFGDgrGP3JSfqsfb1:18395:0:99999:7:::
fox:$6$EavaIL5j$11WQ5u96OVKR8K/TKRNIkmlXHpc7/oD1VqkcRxYYx6O2Ciqgq97PSx3fFrmK19TtrVwcM.6LMS.HgcYrnf85c.:18400:0:99999:7:::
pig:!!:18400:0:99999:7:::
使用su命令進行用戶的切換
- su - dog命令要重新設置環境變量
- 使用-在用戶切換後系統重新啓動login shell
- 即重新裝入當前用戶的環境變量
- su dog命令不重新設置環境變量
- su -和su - root命令都是切換到root用戶
- 用su從root切換到普通用戶時不需輸入密碼
[fox@dog ~]$ whoami
fox
[fox@dog ~]$ su dog
su: 用戶dog 不存在
[fox@dog ~]$ su dag
密碼:
[dag@dog fox]$ whoami
dag
[dag@dog fox]$ pwd
/home/fox
[dag@dog fox]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dag/bin
[dag@dog fox]$ exit
exit
[dag@dog fox]$ su - dag
密碼:
[dag@dog ~]$ pwd
/home/dag
[dag@dog ~]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dag/bin
[dag@dog ~]$ su root
密碼:
[root@dog dag]# whoami
root
[root@dog dag]# pwd
/home/dag
[root@dog dag]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dag/bin
[root@dog dag]# exit
exit
[dag@dog ~]$ su - root
密碼:
[root@dog ~]# whoami
root
[root@dog ~]# pwd
/root
[root@dog ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@dog ~]# exit
logout
[dag@dog ~]$ su -
密碼:
[root@dog ~]# whoami
root
[root@dog ~]# pwd
/root
[root@dog ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@dog ~]# su - cat
[cat@dog ~]$ whoami
cat
[cat@dog ~]$ pwd
/home/cat
[cat@dog ~]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cat/bin
發現與用戶相關信息的命令
- [dog@dog ~]$、 [root@dog ~]#:
- $符號表示當前用戶是一個普通用戶
- #號表示當前用戶是root超級用戶
- @之前的dog和root爲用戶名
- @之後的dog爲主機名(沒有包括域名)
- ~表示當前用戶的家目錄
groups ~ 確定dog用戶所屬的羣組:
- id ~ 不但可以獲取當前用戶所屬的羣組、還可 以獲取羣組的ID以及用戶ID和用戶名:
- last ~ 列出戶登錄系統和重啓Linux系統時間的歷史記錄
[dag@dog ~]$ whoami
dag
[dag@dog ~]$ groups
dag
[dag@dog ~]$ id
uid=500(dag) gid=500(dag) 組=500(dag) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[dag@dog ~]$ su root
密碼:
[root@dog dag]# su - root
[root@dog ~]# groups
root
[root@dog ~]# id
uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@dog ~]# su - fox
[fox@dog ~]$ whoami
fox
[fox@dog ~]$ su - pig
密碼:
su: 密碼不正確
[fox@dog ~]$
[fox@dog ~]$ su - pig
密碼:
su: 密碼不正確
[fox@dog ~]$
[fox@dog ~]$ su - pig
密碼:
su: 密碼不正確
[fox@dog ~]$ su - root
密碼:
[root@dog ~]# su - pig
[pig@dog ~]$ whoami
pig
[pig@dog ~]$ su - dag
密碼:
[dag@dog ~]$ users
dag dag
[dag@dog ~]$ who
dag tty1 2020-05-17 22:52 (:0)
dag pts/0 2020-05-17 22:52 (:0.0)
[dag@dog ~]$ w
23:44:55 up 53 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
dag tty1 :0 22:52 54:12 12.05s 0.16s pam: gdm-passwo
dag pts/0 :0.0 22:52 0.00s 0.17s 0.08s w
Linux系統的默認權限設定
-
文件系統的默認權限是666——rw-rw-rw-
-
目錄系統的默認權限是777——rwxrwxrwx
-
以上並不是最終的文件和目錄的權限
-
要經過掩碼擋掉某些不需要的默認權限才能最後產生用戶所需的文件和目錄的最終權限
-
普通用戶的默認掩碼(umask)爲002
-
root用戶的默認掩碼(umask)爲022
-
使用umask命令來確定當前用戶目前的掩碼
-
文件系統默認權限是666
-
普通用戶默認掩碼爲002、經過掩碼遮擋後other的寫權限被遮擋掉,最終文件的權限爲664
-
root默認掩碼爲022、經過掩碼遮擋後group和other的寫權限都遮擋掉、最終這個文件的權限是644
-
文件系統默認權限爲666而這回umask爲033
-
當666與033相減之後所得的結果爲633
-
而該文件的最後權限應該是644
[dag@dog ~]$ umask
0002
[dag@dog ~]$ su -
密碼:
[root@dog ~]# umask
0022
[root@dog ~]# cd babydog
-bash: cd: babydog: 沒有那個文件或目錄
[root@dog ~]# exit
logout
[dag@dog ~]$ cd babydog
[dag@dog babydog]$ umask
0002
[dag@dog babydog]$ umask 033
[dag@dog babydog]$ umask
0033
[dag@dog babydog]$ touch dog_wolf.baby
[dag@dog babydog]$ ls -l do*
-rw-r--r--. 1 dag dag 0 5月 18 00:20 dog_wolf.baby
[dag@dog babydog]$ umask 077
[dag@dog babydog]$ umask
0077
[dag@dog babydog]$ touch wolf_dog.baby
[dag@dog babydog]$ umask
0077
[dag@dog babydog]$ ls -l w*
-rw-------. 1 dag dag 0 5月 18 00:23 wolf_dog.baby
特殊權限(第4組權限)
- 特殊權限分爲suid、sgid和sticky 3種權限
- suid借用用戶權限中最後一位,即可執行權限位並以s表示
- sgid借用羣組權限的最後一位並以s表示
- sticky借用其他用戶權限中最後一位並以t表示
添加suid特殊權限例子
- 有一文件,其所有用戶都有執行權限、而有一目錄,其所有用戶都沒有執行權限
- 如果要在該文件上加入suid特殊權限,因爲文件的所有者本來有執行權限,所以Linux系統就會使用小寫的s替換這一位的x
添加suid特殊權限例子
- 有一文件,其所有用戶都有執行權限、而有一目錄,其所有用戶都沒有執行權限
- 如果要在該文件上加入suid特殊權限,因爲文件的所有者本來有執行權限,所以Linux系統就會使用小寫的s替換這一位的x
添加sgid特殊權限的例子
- 如果在這個文件上加入sgid特殊權限,因爲文件的同一羣組本來就有執行權限,所以Linux會使用小寫的s替換這一位的x
- 如果在這個目錄上加入sgid特殊權限,因爲目錄的同一羣組本身沒有執行權限,所以Linux會使用大寫的S替換這一位的x
添加sticky特殊權限的例子
- 如果在該文件上加入sticky特殊權限,因爲文件的其他用戶本來就有執行權限,所以Linux會使用小寫的t替換這一位的x
- 如果在該目錄上加入sticky特殊權限,因爲目錄的其他用戶本身沒有執行權限,所以Linux會使用大寫的T替換這一位的x
以chmod的字符方式設置特殊(第4組)權限
[dog@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x 1 dog dog 0 Jan 13 03:29 dog.baby
-rwxr-xr-- 1 dog dog 0 Jan 13 03:29 wolf.baby
[dog@dog babydog]$ chmod u+s dog.baby
[dog@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-x 1 dog dog 0 Jan 13 03:29 dog.baby
-rwxr-xr-- 1 dog dog 0 Jan 13 03:29 wolf.baby
[dag@dog babydog]$ clear
[dag@dog babydog]$ cd babydog
-bash: cd: babydog: 沒有那個文件或目錄
[dag@dog babydog]$
[dag@dog babydog]$ touch {dog,wolf}.baby
[dag@dog babydog]$ ls -l *baby
-rw-------. 1 dag dag 0 5月 18 00:39 dog.baby
-rw-r--r--. 1 dag dag 0 5月 18 00:20 dog_wolf.baby
-rw-------. 1 dag dag 0 5月 18 00:39 wolf.baby
-rw-------. 1 dag dag 0 5月 18 00:23 wolf_dog.baby
[dag@dog babydog]$ chmod 755 dog.baby
[dag@dog babydog]$ chmod 754 wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chmod u+s dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chmod g+s wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-sr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chomd o+t dog.baby
-bash: chomd: command not found
[dag@dog babydog]$ chmod o+t dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-sr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chmod o+t wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-sr-T. 1 dag dag 0 5月 18 00:39 wolf.baby
以chmod的數字方式設定特殊權限
在第4組權限中,suid使用八進制的4(二進制的100)來表示,sgid使用八進制的2(二進制的10)來表示,而sticky使用八進制的1(二進制的1)來表示,如圖
suid sgid sticky
(4) (2) (1)
[dag@dog babydog]$ chmod 755 dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-sr-T. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chomd 754 wolf.baby
-bash: chomd: command not found
[dag@dog babydog]$ chmod 754 wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
#在dog.baby文件上加入suid和sticky特殊權限,由上圖可知這兩個權限的數字爲5(4+1),
[dag@dog babydog]$ chmod 5755 dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
#在wolf.baby文件上加上所有權限 數字爲7(4+2+1)
[dag@dog babydog]$ chmod 7754 wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwsr-sr-T. 1 dag dag 0 5月 18 00:39 wolf.baby
特殊權限對可執行文件的作用
- 將suid和sgid特殊權限設定在可執行文件上所具有的特性如下:
- suid將以可執行文件所有者權限來運行這一命令、而不是以執行者的權限來運行該命令
- sgid特殊權限與suid類似,是以可執行文件的羣組的權限運行這一命令(可執行文件)的
- 普通用戶之所以可以執行ping命令是因爲在ping可執行文件上設置了suid特殊權限
[root@dog ~]# ls -l /bin/ping
-rwsr-xr-x 1 root root 33272 Oct 7 2006 /bin/ping
ping命令的工作原理
- ping是使用ICMP網絡協議
- Linux內核中設定只有root纔有權限控制ICMP封包
- 爲了使其他用戶有權使用ping,必須在ping可執行文件上設置suid權限而其他用戶都有執行權限、並且ping的所有者爲root用戶
[dag@dog babydog]$ chmod 755 dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-sr-T. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chomd 754 wolf.baby
-bash: chomd: command not found
[dag@dog babydog]$ chmod 754 wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwxr-xr-x. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chmod 5755 dog.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwxr-xr--. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ chmod 7754 wolf.baby
[dag@dog babydog]$ ls -l dog.baby wolf.baby
-rwsr-xr-t. 1 dag dag 0 5月 18 00:39 dog.baby
-rwsr-sr-T. 1 dag dag 0 5月 18 00:39 wolf.baby
[dag@dog babydog]$ su -root
su:無效選項 -- r
請嘗試執行"su --help"來獲取更多信息。
[dag@dog babydog]$ su - root
密碼:
[root@dog ~]# ls -l /bin/ping
-rwsr-xr-x. 1 root root 38520 1月 11 2017 /bin/ping
[root@dog ~]# su - dog
su: 用戶dog 不存在
[root@dog ~]# su - dag
[dag@dog ~]$ ping 192.168.43.16
PING 192.168.43.16 (192.168.43.16) 56(84) bytes of data.
64 bytes from 192.168.43.16: icmp_seq=1 ttl=128 time=1.29 ms
64 bytes from 192.168.43.16: icmp_seq=2 ttl=128 time=1.93 ms
64 bytes from 192.168.43.16: icmp_seq=3 ttl=128 time=1.65 ms
64 bytes from 192.168.43.16: icmp_seq=4 ttl=128 time=1.66 ms
64 bytes from 192.168.43.16: icmp_seq=5 ttl=128 time=1.71 ms
64 bytes from 192.168.43.16: icmp_seq=6 ttl=128 time=1.79 ms
64 bytes from 192.168.43.16: icmp_seq=7 ttl=128 time=1.80 ms
64 bytes from 192.168.43.16: icmp_seq=8 ttl=128 time=1.64 ms
^Z
[1]+ Stopped ping 192.168.43.16
[dag@dog ~]$ chmod u-s /bin/ping
chmod: 更改"/bin/ping" 的權限: 不允許的操作
[dag@dog ~]$ su - root
密碼:
[root@dog ~]# chmod u-s /bin/ping
[root@dog ~]# ls -l /bin/ping
-rwxr-xr-x. 1 root root 38520 1月 11 2017 /bin/ping
[root@dog ~]# su dag
[dag@dog root]$ exit
exit
[root@dog ~]# su - root
[root@dog ~]# su - dag
[dag@dog ~]$ ping 192.168.43.16
ping: icmp open socket: 不允許的操作
[dag@dog ~]$ chmod u+s /bin/ping
chmod: 更改"/bin/ping" 的權限: 不允許的操作
[dag@dog ~]$ su - root
密碼:
[root@dog ~]# chmod u+s /bin/ping
[root@dog ~]# ls -l /bin/ping
-rwsr-xr-x. 1 root root 38520 1月 11 2017 /bin/ping
[root@dog ~]# su - dag
[dag@dog ~]$ ping 192.168.43.16
PING 192.168.43.16 (192.168.43.16) 56(84) bytes of data.
64 bytes from 192.168.43.16: icmp_seq=1 ttl=128 time=1.09 ms
64 bytes from 192.168.43.16: icmp_seq=2 ttl=128 time=1.68 ms
^Z
[1]+ Stopped ping 192.168.43.16
特殊權限目錄的作用
- 將sticky和sgid特殊權限設定在目錄上所具有的特性如下:
- 如果在一個目錄上設置了sticky特殊權限,只有文件的所有者和root用戶纔可以刪除該目錄中的文件,而Linux不會理會group或other的寫權限
- 如果在一個目錄上設置了sgid特殊權限,只要是同一羣組的成員,都可以在這個目錄中創建文件
- 通常會對目錄同時設置sticky和sgid這兩個特殊權限以方便項目的管理