GNU/Linux >> Belajar Linux >  >> Linux

Blokir Perintah Khusus di Linux untuk pengguna tertentu

Saya tidak tahu bagaimana melakukannya dengan bash, tapi saya tahu shell lain yang membatasi lingkungan pengguna:lshell (shell terbatas).

Ikhtisar singkat tentang konfigurasi

Lshell dikonfigurasi melalui file INI. Secara default, ini menyimpan daftar putih dari perintah yang diizinkan, tetapi dapat dikonfigurasi dengan mudah untuk melarang pengguna menggunakan perintah tertentu.

Konfigurasi ini (default conf /etc/lshell.conf ) melarang pengguna foo dari penggunaan mkdir :

[foo]
allowed = 'all' - ['mkdir', 'bash', 'sh', 'csh', 'dash', 'env']

Untuk mengonfigurasi akun pengguna agar menggunakan lshell secara default, Anda harus:

 chsh -s /usr/bin/lshell foo

Lshell dapat melakukan lebih banyak, seperti:

  • 3 tingkat perincian:pengguna, grup, semua.
  • Dapat membatasi akses ke jalur tertentu dalam sistem.
  • Dapat membatasi penggunaan karakter tertentu (seperti | ).
  • Dapat membatasi penggunaan perintah tertentu hanya melalui SSH.

Dan banyak lagi.

Perbarui 1# Menambahkan Hasil Tes :

rahul:~$ which bash
/bin/bash
rahul:~$ dd if=$(which bash) of=my_bash
*** forbidden syntax: dd if=$(which bash) of=my_bash
rahul:~$ bash
*** forbidden command: bash
rahul:~$ cp /bin/bash my_bash
*** forbidden path: /bin/bash
rahul:~$ /bin/bash
*** forbidden command: /bin/bash
rahul:~$ sh
*** forbidden command: sh
rahul:~$ dash
*** forbidden command: dash
rahul:~$ env bash
*** forbidden command: env
rahul:~$ cp /bin/mkdir mycreatedir
*** forbidden path: /bin/mkdir

Cara saya biasanya menerapkan pembatasan semacam ini mengharuskan beberapa persyaratan dipenuhi, jika tidak, pembatasan dapat dengan mudah dielakkan:

  • Pengguna bukan milik wheel grup, satu-satunya yang diizinkan untuk menggunakan su (diberlakukan melalui PAM).
  • Pengguna diberi rbash yang diamankan dengan benar dengan PATH read-only yang menunjuk ke ~/bin pribadi , ini ~/bin/ direktori berisi tautan ke utilitas sederhana:

    $ ll ~/bin
    total 0
    lrwxrwxrwx. 1 root dawud 14 Sep 17 08:58 clear -> /usr/bin/clear*
    lrwxrwxrwx. 1 root dawud  7 Sep 17 08:58 df -> /bin/df*
    lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 egrep -> /bin/egrep*
    lrwxrwxrwx. 1 root dawud  8 Sep 17 08:58 env -> /bin/env*
    lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 fgrep -> /bin/fgrep*
    lrwxrwxrwx. 1 root dawud  9 Sep 17 08:58 grep -> /bin/grep*
    lrwxrwxrwx. 1 root dawud 10 Sep 17 08:58 rview -> /bin/rview*
    lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 rvim -> /usr/bin/rvim*
    lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 sudo -> /usr/bin/sudo*
    lrwxrwxrwx. 1 root dawud 17 Sep 17 08:58 sudoedit -> /usr/bin/sudoedit*
    lrwxrwxrwx. 1 root dawud 13 Sep 17 08:58 tail -> /usr/bin/tail*
    lrwxrwxrwx. 1 root dawud 11 Sep 17 08:58 wc -> /usr/bin/wc*
    
  • pengguna diberi lingkungan hanya-baca yang dibatasi (pikirkan hal-hal seperti LESSSECURE , TMOUT , HISTFILE variabel).

  • pengguna dipetakan ke pengguna SELinux staff_u dan diberikan hak untuk menjalankan perintah sebagai pengguna lain sesuai kebutuhan melalui sudo .
  • /home pengguna , /tmp dan mungkin /var/tmp di-polyinstantiated melalui /etc/security/namespace.conf :

    /tmp       /tmp/.inst/tmp.inst-$USER-     tmpdir:create   root
    /var/tmp   /tmp/.inst/var-tmp.inst-$USER- tmpdir:create   root
    $HOME      $HOME/$USER.inst/              tmpdir:create   root
    

    Juga, /etc/security/namespace.init membuat semua file rangka hanya dapat dibaca oleh pengguna dan dimiliki oleh root .

Dengan cara ini Anda dapat memilih apakah $USER dapat mengeksekusi mkdir atas namanya sendiri (melalui tautan di ~/bin pribadi direktori, disediakan melalui /etc/skel , seperti yang dijelaskan di atas), atas nama pengguna lain (melalui sudo ) atau tidak sama sekali.


Tambahkan grup boneka, tambahkan pengguna ke grup itu, chown root:somegroup /bin/mkdir , chmod g-x /bin/mkdir . Perhatikan bahwa ini bergantung pada pengguna yang tidak dapat memodifikasi grup mereka. IIRC hal ini berlaku di GNU/Linux tetapi tidak di Unix lainnya.


Linux
  1. 20 perintah Linux penting untuk setiap pengguna

  2. Cara Mengatur Hak Istimewa Sudo untuk Pengguna di Linux

  3. perintah su Linux

  1. Cara menonaktifkan perintah khusus untuk pengguna tertentu di Linux

  2. Contoh Perintah adduser di Linux

  3. Contoh Perintah sudo di Linux

  1. 12 Contoh Perintah IP untuk Pengguna Linux

  2. Cara menonaktifkan login jarak jauh untuk pengguna root di mesin Linux

  3. Contoh Perintah login di Linux