91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中怎么使用Jailkit管理用戶

發布時間:2021-07-27 16:28:20 來源:億速云 閱讀:132 作者:Leah 欄目:系統運維

本篇文章給大家分享的是有關Linux中怎么使用Jailkit管理用戶,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

安裝jailkit

代碼如下:


cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar xzf jailkit-2.16.tar.gz
cd jailkit-2.16
./configure
make
make install
cp extra/jailkit /etc/init.d/jailkit
chmod u+x /etc/init.d/jailkit
chkconfig jailkit on


初始化chroot環境

代碼如下:


jk_init -v -j /home/chroot sftp scp jk_lsh netutils extendedshell
service jailkit start

配置Jailed Shell

配置受限環境:

我們需要建立一個目錄來存放所有受限環境的配置。目錄隨便放在什么地方,比如我們可以創建個/opt/jail的目錄。

代碼如下:


$ sudo mkdir /opt/jail


這個目錄應為Root所有。用chown改變屬主。

代碼如下:


$ sudo chown root:root /opt/jail


設置在受限環境中可用的程序

任何程序想要在受限環境中執行則必須用jk_init命令拷貝到目錄中。

例如:

代碼如下:


$ sudo jk_init -v /jail basicshell
$ sudo jk_init -v /jail editors
$ sudo jk_init -v /jail extendedshell
$ sudo jk_init -v /jail netutils
$ sudo jk_init -v /jail ssh
$ sudo jk_init -v /jail sftp
$ sudo jk_init -v /jail jk_lsh


或一次性解決:

代碼如下:


$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp


像basicshell, editors, netutils是一些組名,其中包含多個程序。復制到jail shell中的每個組都是可執行文件、庫文件等的集合。比如basicshell就在jail提供有bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep等程序。

完整的程序列表設置,你可以在/etc/jailkit/jk_init.ini中查看。

代碼如下:


jk_lsh (Jailkit limited shell) - 這是一個重要的部分,必須添加到受限環境中。


創建將被監禁的用戶

需要將一個用戶放入jail里。可以先創建一個

代碼如下:


$ sudo adduser robber
Adding user `robber' ...
Adding new group `robber' (1005) ...
Adding new user `robber' (1006) with group `robber' ...
Creating home directory `/home/robber' ...
Copying files from `/etc/skel' ...  
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for robber
Enter the new value, or press ENTER for the default
   Full Name []:
   Room Number []:
   Work Phone []:
   Home Phone []:
   Other []:
Is the information correct? [Y/n] y


注意:目前創建的是一個在實際文件系統中的普通用戶,并沒有添加到受限環境中。

在下一步這個用戶會被放到受限環境里。

這時候如果你查看/etc/passwd文件,你會在文件最后看到跟下面差不多的一個條目。

代碼如下:


robber:x:1006:1005:,,,:/home/robber:/bin/bash


這是我們新創建的用戶,最后部分的/bin/bash指示了這個用戶如果登入了那么它可以在系統上正常的Shell訪問

限制用戶

現在是時候將用戶限制

代碼如下:


$ sudo jk_jailuser -m -j /opt/jail/ robber


執行上列命令后,用戶robber將會被限制。

如果你現在再觀察/etc/passwd文件,會發現類似下面的最后條目。

代碼如下:


robber:x:1006:1005:,,,:/opt/jail/./home/robber:/usr/sbin/jk_chrootsh


注意:最后兩部分表明用戶主目錄和shell類型已經被改變了。現在用戶的主目錄在/opt/jail(受限環境)中。用戶的Shell是一個名叫jk_chrootsh的特殊程序,會提供Jailed Shell。

jk_chrootsh這是個特殊的shell,每當用戶登入系統時,它都會將用戶放入受限環境中。

到目前為止受限配置已經幾乎完成了。但是如果你試圖用ssh連接,那么注定會失敗,像這樣:

代碼如下:


$ ssh robber@localhost
robber@localhost's password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
* Documentation:  https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:45:13 2012 from localhost
Connection to localhost closed.
$


連接會立馬關閉,這意味著用戶已經活動在一個受限制的shell中。

給在jail中的用戶Bash Shell

下個重要的事情是給用戶在限制環境中的一個正確的bash shell。

打開下面的文件

/opt/jail/etc/passwd
這是個jail中的password文件。類似如下

代碼如下:


root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/usr/sbin/jk_lsh


將/usr/sbin/jk_lsh改為/bin/bash

代碼如下:


root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/bin/bash


保存文件并退出。

登入限制環境

現在讓我們再次登入受限環境

代碼如下:


$ ssh robber@localhost
robber@localhost's password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
* Documentation:  https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:46:01 2012 from localhost
bash: groups: command not found
I have no name!@desktop:~$


受限環境說'I have no name!',哈哈。現在我們在受限環境中有了個完整功能的bash shell。

現在看看實際的環境。受限環境中的根目錄實際就是真實文件系統中的/opt/jail。但這只有我們自己知道,受限用戶并不知情。

代碼如下:


I have no name!@desktop:~$ cd /
I have no name!@desktop:/$ ls
bin  dev  etc  home  lib  lib64  run  usr  var
I have no name!@desktop:/$


也只有我們通過jk_cp拷貝到jail中的命令能使用。

如果登入失敗,請檢查一下/var/log/auth.log的錯誤信息。

現在嘗試運行一些網絡命令,類似wget的命令。

代碼如下:


$ wget http://www.google.com/


如果你獲得類似的錯誤提示:

代碼如下:


$ wget http://www.google.com/
--2012-06-23 12:56:43--  http://www.google.com/
Resolving www.google.com (www.google.com)... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'


你可以通過運行下列兩條命令來解決這個問題:

代碼如下:


$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2


這樣才能正確的定位到libnssfiles.so和libnssdns.so

在限制環境中運行程序或服務

現在配置已經完成了。可以在限制/安全的環境里運行程序或服務。要在限制環境中啟動一個程序或守護進程可以用jk_chrootlaunch命令。

代碼如下:


$ sudo jk_chrootlaunch -j /opt/jail -u robber -x /some/command/in/jail


jk_chrootlaunch工具可以在限制環境中啟動一個特殊的進程同時指定用戶特權。如果守護進程啟動失敗,請檢查/var/log/syslog/錯誤信息。

以上就是Linux中怎么使用Jailkit管理用戶,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高唐县| 安泽县| 常州市| 茶陵县| 工布江达县| 唐山市| 信阳市| 海丰县| 新泰市| 海阳市| 武乡县| 彰化县| 蓝山县| 正蓝旗| 沙田区| 双流县| 马边| 闸北区| 萨嘎县| 揭东县| 祁连县| 新乡县| 金昌市| 常山县| 宝兴县| 陈巴尔虎旗| 上高县| 武夷山市| 高州市| 安宁市| 延长县| 舟曲县| 亚东县| 衡阳县| 辽源市| 沧州市| 陕西省| 普格县| 长宁区| 岗巴县| 横峰县|