本文研究的主要是在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中文網其他相關文章!