首頁  >  文章  >  系統教程  >  解析Linux下使用受限bash建立具有指定權限的帳號的程式碼

解析Linux下使用受限bash建立具有指定權限的帳號的程式碼

王林
王林轉載
2023-12-31 14:43:301045瀏覽

本文研究的主要是在Linux下透過受限bash建立指定權限的帳號的相關內容,具體介紹如下。

在日常業務運作中,有時為了配合解決問題,需要開通系統帳號給非維運人員帳號,用來查詢日誌或程式碼。通常為了系統安全或避免不必要的誤操作等目的,會將帳號權限降至最低。以下介紹下在Linux下透過受限bash建立指定權限帳號的操作記錄:

[root@mq-server ~]# ln -s /bin/bash/bin/rbash
[root@mq-server ~]# useradd -s /bin/rbash wangshibo
[root@mq-server ~]# passwd wangshibo
[root@mq-server ~]# mkdir /home/wangshibo/bin
[root@mq-server ~]# chown root. /home/wangshibo/.bash_profile
[root@mq-server ~]# chmod 755 /home/wangshibo/.bash_profile
[root@mq-server ~]# vim /home/wangshibo/.bash_profile //复制下面的内容覆盖原内容
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$HOME/bin

export PATH<br data-filtered="filtered">
[root@mq-server ~]# ln -s /bin/cat /home/wangshibo/bin/cat
[root@mq-server ~]# ll /home/wangshibo/
total 4
drwxr-xr-x 2 root root 4096 Nov 25 23:38 bin
[root@mq-server ~]# ll /home/wangshibo/bin/
total 0
lrwxrwxrwx 1 root root 8 Nov 25 23:12 cat -> /bin/cat

如上設定後,可以發現創建的wangshibo用戶家目錄下的檔案權限是root.root,上面只設定了wangshibo用戶的cat權限,並且只能cat查看wangshibo用戶家目錄/home/wangshibo 下的檔案。除了cat指令外。不能執行其他指令!

[wangshibo@mq-server ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied
[wangshibo@mq-server ~]$ ls
-rbash: /home/wangshibo/bin/ls: No such file or directory
[wangshibo@mq-server ~]$ touch test
-rbash: /home/wangshibo/bin/touch: No such file or directory

如果要想在其家目錄下有其他命令的執行權,那麼需要添加這些命令的軟鏈接到/home/wangshibo/bin目錄下(可以通過which命令查看二進制命令的全路徑)

[root@mq-server ~]# ln -s /bin/ls /home/wangshibo/bin
[root@mq-server ~]# ln -s /bin/touch /home/wangshibo/bin
[root@mq-server ~]# ln -s /bin/mkdir /home/wangshibo/bin
[root@mq-server ~]# ln -s /usr/bin/vim /home/wangshibo/bin/
[root@mq-server ~]# ll /home/wangshibo/bin/
total 0
lrwxrwxrwx 1 root root8 Nov 25 23:12 cat -> /bin/cat
lrwxrwxrwx 1 root root7 Nov 25 23:44 ls -> /bin/ls
lrwxrwxrwx 1 root root 10 Nov 25 23:45 mkdir -> /bin/mkdir
lrwxrwxrwx 1 root root 10 Nov 25 23:44 touch -> /bin/touch
lrwxrwxrwx 1 root root 12 Nov 25 23:45 vim -> /usr/bin/vim

這樣,wangshibo使用者就擁有了上面加入的指令的執行權

[root@mq-server ~]# su - wangshibo
[wangshibo@mq-server ~]$ ls
bin
[wangshibo@mq-server ~]$ touch test
[wangshibo@mq-server ~]$ mkdir ops
[wangshibo@mq-server ~]$ vim test
[wangshibo@mq-server ~]$ cat test
dsfdsafsadf
[wangshibo@mq-server ~]$ rm -f test
-rbash: rm: command not found
[wangshibo@mq-server ~]$ ls /usr/
binetcgamesincludeliblib64libexeclocalsbinsharesrctmp
[wangshibo@mq-server ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied

以上是解析Linux下使用受限bash建立具有指定權限的帳號的程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除