Log masuk ke Linux dengan hak root. Jalankan su hanya oleh pengguna daripada kumpulan roda. pengguna pilihan $su

pengguna root dan sudo

Pengguna akar pada sistem GNU/Linux ialah pengguna yang mempunyai akses pentadbiran kepada sistem anda. Pengguna biasa tidak mempunyai akses ini kerana kekurangan akses. Walau bagaimanapun, di Kubuntu tidak ada pengguna akar. Sebaliknya, akses pentadbiran diberikan pengguna individu, yang boleh menggunakan aplikasi "sudo" untuk melaksanakan tugas pentadbiran. Pertama Akaun, yang dibuat semasa pemasangan sistem akan mempunyai akses kepada aplikasi sudo secara lalai. Anda boleh menafikan akses sudo atau memberikannya menggunakan aplikasi Pengguna dan Kumpulan (Lihat “Pengguna dan Kumpulan”).

Jika anda menjalankan program yang memerlukan hak superuser, sudo akan memerlukan anda untuk memasukkan normal anda kata laluan pengguna. Ini memastikan bahawa aplikasi berniat jahat tidak akan merosakkan sistem anda, dan juga akan mengingatkan anda tentang perkara yang akan anda lakukan tindakan pentadbiran, yang memerlukan penjagaan khas!

Untuk menggunakan sudo pada baris arahan, hanya taip "sudo" sebelum arahan yang anda mahu jalankan. Selepas ini, sudo akan meminta anda memasukkan kata laluan anda.

Sudo akan mengingati kata laluan anda untuk jumlah masa yang ditetapkan (lalai ialah 15 minit). Ciri ini membolehkan pengguna melakukan sejumlah besar tugas pentadbiran tanpa perlu memasukkan kata laluan setiap kali.

Perhatian

Berhati-hati semasa menjalankan tugas pentadbiran - anda mungkin merosakkan sistem anda!

Beberapa petua untuk menggunakan sudo:

    Untuk menggunakan terminal pengguna root, taip "sudo -i" pada prompt arahan

    Seluruh kumpulan utiliti konfigurasi grafik dalam Kubuntu sudah menggunakan sudo, jadi jika perlu anda akan diminta untuk kata laluan menggunakan aplikasi kdesu, iaitu cangkerang grafik sudo .

    Untuk maklumat lanjut mengenai program tersebut sudo dan ketiadaan pengguna akar dalam Kubuntu, lihat halaman sudo di wiki Ubuntu.

Menjalankan program secara manual dengan keistimewaan root

Kadang-kadang perlu untuk menjalankan program dengan keistimewaan root. Ini mudah dilakukan menggunakan dialog Jalankan arahan .

Perhatian

Sila berhati-hati semasa menjalankan aplikasi dengan keistimewaan root kerana ia boleh merosakkan sistem anda. Untuk maklumat lanjut, lihat Pengguna akar dan sudo.

    Buka dialog Jalankan arahan dengan menekan Alt -F2

    Masukkan nama program yang anda ingin jalankan, dengan awalan kdesu dan tekan Masuk. Sebagai contoh, untuk berlari pengurus fail Penakluk dengan keistimewaan akar, taip

    Dalam kebanyakan manual linux (dan bukan sahaja linux) mengenai isu keselamatan, terdapat pengesyoran yang kerap untuk melaksanakan semua tindakan bukan pentadbiran di bawah pengguna yang tidak mempunyai hak pentadbir/pengguna super. Ringkasnya, semua orang mengesyorkan untuk tidak bekerja sebagai root sepanjang masa dan untuk bekerja sebagai root hanya apabila perlu.
    Malah, dalam banyak situasi, proses di bawah pengguna perlu dijalankan yang bukan sahaja tidak mempunyai hak root, tetapi juga tidak dapat meningkatkan haknya untuk root. Tidak mungkin, tidak mungkin. Keperluan ini timbul (masuk akal untuk mencipta pengguna sedemikian) untuk perkhidmatan yang dijalankan pada pelayan. Contohnya, Apache, Asterisk, dan sebagainya. Maksudnya, supaya seseorang yang boleh mendapatkan hak pengguna sedemikian bukan sahaja tidak menerima hak root, malah (tiba-tiba) mempelajari kata laluan akar, tidak akan dapat log masuk menggunakan kata laluan ini (meningkatkan keistimewaan mereka).

    Dalam versi Linux yang lebih lama, mod lalai telah ditetapkan kepada mod berikut: pengguna yang tergolong dalam kumpulan roda boleh menjalankan arahan su, tetapi orang lain tidak boleh. Iaitu, semua orang boleh menjalankan su, tetapi untuk pengguna bukan dari kumpulan roda, perintah su walaupun dengan kata laluan yang betul root akan membuang ralat.
    DALAM versi moden linux, sebagai contoh, CentOS dan Debian, ciri ini dilumpuhkan secara lalai, i.e. semua pengguna boleh meningkatkan hak mereka (mengetahui kata laluan akar). Dalam artikel ini kami akan menunjukkan cara untuk mengembalikan mod yang sebelum ini - supaya hanya pengguna daripada kumpulan roda boleh "meningkatkan" keistimewaan mereka.

    Di mana untuk bermula

    Pertama sekali, anda perlu melindungi diri anda. Iaitu, pastikan anda menambah pengguna yang anda sedang bekerja di bawah kumpulan roda. Nah, jika terdapat beberapa pengguna dalam sistem, di bawahnya adalah perlu untuk meningkatkan keistimewaan untuk melakukan root dari semasa ke semasa, maka setiap daripada pengguna ini mesti ditambahkan pada kumpulan roda!
    Sila ambil perhatian, ini penting untuk dilakukan sebelum ini bagaimana anda berubah tetapan linux, jika tidak (jika, sebagai contoh, anda menyambung ke pelayan melalui SSH, akses melalui SSH di bawah akar adalah dilarang) dengan log masuk sebagai pengguna biasa melalui SSH, anda tidak akan dapat meningkatkan keistimewaan anda kepada root!

    Buat roda kumpulan

    Ada kemungkinan bahawa dalam anda versi linux Tiada kumpulan roda secara lalai. Kemudian ia perlu dicipta. Terdapat arahan berikut untuk ini:
    roda tambah kumpulan
    Jangan takut untuk memasukkan arahan ini: jika roda kumpulan wujud, ia akan memaparkan mesej bahawa kumpulan sedemikian sudah wujud. Jika tidak ada kumpulan sedemikian, ia akan diwujudkan

    Cara menambah pengguna pada kumpulan roda

    Terdapat arahan untuk ini:
    usermod -a -G wheel nama pengguna
    Sebagai contoh:
    usermod -a -G wheel nama pengguna

    Perintah ini menambah nama pengguna pada kumpulan roda. Jika pengguna adalah ahli satu atau lebih kumpulan lain, keahlian dalam semua kumpulan dikekalkan; pengguna hanya ditambah kepada kumpulan lain (tambahan).

    Sekarang semak bahawa semuanya dilakukan dengan betul. Terdapat arahan untuk ini:
    nama pengguna id
    Sebagai contoh:
    nama pengguna id

    ID pengguna, nama pengguna dan ID serta nama setiap kumpulan yang menjadi milik pengguna akan dipaparkan. Pastikan semuanya pengguna yang diperlukan ditambahkan pada kumpulan roda.

    Jalankan su hanya oleh pengguna daripada kumpulan roda

    Buka dalam anda penyunting teks fail: /etc/pam.d/su
    Dalam fail ini, cari baris yang serupa dengan yang berikut:
    pengesahan diperlukan pam_wheel.so
    atau
    pengesahan diperlukan pam_wheel.so use_uid
    Secara lalai, baris ini bermula dengan tanda "#", iaitu seperti ulasan. Keluarkan tanda komen dari permulaan baris ini dan simpan fail.

    Semua! Kini hanya pengguna daripada kumpulan roda boleh menjalankan perintah su dan meningkatkan keistimewaan mereka kepada root. Jangan lupa untuk menyemaknya!

    Seperti yang anda ketahui, Linux mengambil pengurusan pengguna dan memberikan mereka kebenaran untuk menggunakan sistem dengan sangat serius. Pengguna biasa hanya boleh menulis fail ke direktori mereka sendiri dan direktori /tmp/. Ia juga mungkin untuk membaca beberapa fail dalam akar sistem fail. Tetapi anda tidak boleh memasang program, kerana ini memerlukan kebenaran menulis, anda tidak boleh menukar atribut fail, anda tidak boleh memulakan perkhidmatan, anda tidak boleh membaca beberapa fail log, dan anda tidak boleh melakukan lebih banyak lagi.

    Di Linux, hanya pengguna akar mempunyai hak untuk mengurus sistem fail akar dan membuat fail di sana.

    Dalam artikel ini kita akan melihat program apa yang diperlukan untuk mendapatkan hak root pengguna linux bagaimana mereka bekerja, bagaimana untuk menjalankan program dengan hak akar daripada pengguna biasa dan cara menjalankannya program grafik dengan hak akar. Kami juga akan mengetahui apa itu sudo dan apakah perbezaan antara su dan sudo.

    Ia akan mengambil masa yang lama untuk menyenaraikan perkara yang tidak boleh dilakukan oleh pengguna Linux biasa; lebih mudah untuk mengatakan apa yang dia berhak, iaitu apabila tetapan standard kebenaran fail dalam Linux, pengguna biasa boleh:

    • Baca, tulis dan tukar atribut fail dalam direktori anda
    • Baca, tulis, tukar atribut fail dalam direktori /tmp
    • Jalankan program di mana ia tidak dilarang menggunakan bendera noexec
    • Baca fail yang mempunyai bendera baca ditetapkan untuk semua pengguna.

    Jika kami perlu melakukan sesuatu yang lebih, kami memerlukan hak pengguna root Linux. Root mempunyai hak untuk melakukan segala-galanya pada sistem fail anda, tanpa mengira kebenaran yang ditetapkan pada fail.

    Log masuk sebagai pengguna super

    Untuk log masuk sebagai pengguna root, anda boleh bertukar kepada salah satu konsol maya, contohnya, menggunakan pintasan papan kekunci Ctrl+Alt+F1 dan kemudian masukkan log masuk akar dan kata laluan pengguna root.

    Anda akan mendapat persekitaran akar penuh dengan keupayaan untuk melakukan segala-galanya, tetapi kaedah ini sangat tidak praktikal kerana anda kehilangan semua faedah menggunakan GUI.

    Kami boleh melakukan sebaliknya, masukkan log masuk akar dan kata laluannya dalam pengurus log masuk grafik, supaya persekitaran desktop berjalan sebagai akar, dan kami mendapat semua hak root linux, tetapi pilihan ini sangat tidak disyorkan, dan sangat berbahaya, anda boleh merosakkan keseluruhan sistem secara tidak sengaja. Oleh itu, kaedah ini telah dilumpuhkan dalam banyak pengurus log masuk.

    Tukar kepada superuser dalam terminal

    Sekarang kita datang kepada sesuatu yang lebih menarik dan praktikal. Menggunakan utiliti khas, anda boleh menukar emulator terminal semasa kepada persekitaran pengguna super dan melaksanakan semua arahan berikut bukan bagi pihak anda, tetapi bagi pihaknya, sekali gus memberikan hak Linux root program. Terdapat utiliti yang dipanggil su untuk tujuan ini. Secara umumnya, utiliti ini membolehkan anda bukan sahaja bertukar kepada pengguna root tetapi juga kepada mana-mana pengguna lain, tetapi secara lalai ia adalah root yang digunakan. Mari kita lihat dengan lebih dekat. Perintah su linux mempunyai sintaks berikut:

    pengguna pilihan $su

    Berikut adalah pilihan utamanya:

    • -c, --perintah- laksanakan arahan
    • -g, --kumpulan- tetapkan kumpulan pengguna utama (hanya untuk root)
    • -G --supp-group- kumpulan pengguna tambahan (untuk root sahaja)
    • -, -l, --log masuk- mod log masuk, semuanya akan dikosongkan dan dimulakan dengan mengambil kira pengguna baharu pembolehubah persekitaran, dan juga berubah direktori rumah
    • -p, --pelihara-alam sekitar
    • -s, --shell- tetapkan shell log masuk
    • --versi- paparkan versi program.

    Sekarang mari kita mencuba sedikit untuk memahami bagaimana arahan su linux berfungsi.

    Mula-mula, mari jalankan su tanpa parameter, tetapi mula-mula kita akan mencipta pembolehubah persekitaran untuk menyemak cara arahan ini menanganinya:

    Sekarang kita lakukan:

    Sekarang mari kita lihat apa yang berlaku:

    siapakah saya
    $pwd
    $ echo $VAR
    $ echo $PATH
    $ keluar

    Daripada arahan ini, kami melihat bahawa kami kini adalah pengguna akar, tetapi direktori rumah dianggap sebagai direktori kami. pengguna sebelumnya dan pembolehubah kami tidak disimpan, dan pembolehubah PATH juga berubah, kini laluan /sbin ditambah di sana.

    Sekarang kami menggunakan mod log masuk:

    Dan mari ulangi gabungan yang sama:

    siapakah saya
    $pwd
    $ echo $VAR
    $ echo $PATH
    $ keluar

    Keadaan yang sama, cuma kali ini direktori rumah juga telah ditukar kepada direktori akar. Tetapi kita boleh menyimpan pembolehubah persekitaran kita jika perlu, terdapat pilihan -p untuk ini:

    Seperti yang anda lihat, pembolehubah kami kekal. Anda juga boleh bertukar kepada mana-mana pengguna lain. Sebagai contoh:

    Mendapatkan hak superuser dengan cara ini digunakan dalam banyak pengedaran, contohnya, Debian, OpenSUSE, ArchLInux, Gentoo, dll. Tetapi dalam Ubuntu, sebagai pengedaran untuk pemula, log masuk sebagai pengguna root dilumpuhkan. Ini dilakukan kerana ia juga tidak begitu selamat, anda mungkin terlupa bahawa anda sedang melaksanakan arahan sebagai root dan melakukan sesuatu yang salah dalam sistem. Oleh itu, mari kita beralih ke program seterusnya.

    Mendapatkan hak root tanpa bertukar

    Untuk melaksanakan antara muka yang paling selamat untuk bekerja dengan hak pengguna super dalam Linux, arahan sudo telah dibangunkan. Mari lihat apa itu sudo. Perintah ini ditulis sebelum setiap arahan yang perlu dilaksanakan sebagai pengguna super, dan untuk melaksanakannya anda perlu memasukkan kata laluan bukan dari akar, tetapi hanya pengguna anda. Sama seperti yang sebelumnya, utiliti ini mempunyai pilihannya sendiri. Mari lihat sintaks dahulu:

    Perintah pilihan $ sudo

    Pilihan program:

    • -b- laksanakan utiliti yang dilancarkan di latar belakang
    • -E- simpan pembolehubah persekitaran
    • -g- jalankan arahan daripada kumpulan
    • -H- gunakan direktori rumah
    • -l- tunjukkan senarai kebenaran sudo untuk pengguna semasa
    • -r- gunakan peranan SELinux untuk arahan
    • -s- gunakan cangkerang
    • -u- jalankan arahan sebagai pengguna, jika tidak dinyatakan, gunakan root
    • -i- jangan laksanakan arahan, tetapi masukkan shell, bersamaan dengan su -

    Anda boleh melakukan eksperimen yang sama, hanya untuk arahan ini, untuk memahami cara menggunakan arahan sudo. Sebagai contoh:

    Menggunakan sudo ialah cara yang disyorkan untuk menjalankan arahan sebagai root pada Linux. Dengan cara ini anda tidak akan melupakan perkara yang anda hadapi dan mempunyai risiko paling sedikit merosakkan sistem. Tetapi masih ada satu lagi soalan yang tidak dapat diselesaikan - apa yang perlu dilakukan utiliti grafik? Lagipun, arahan sudo tidak menjalankannya, tetapi berjalan cangkerang grafik berjalan sebagai root tidak selamat. Inilah yang akan kita lihat seterusnya.

    Aplikasi grafik sebagai pengguna super

    Untuk permulaan aplikasi grafik wujud bagi pihak pengguna super utiliti khas. Mereka mengekalkan semua pembolehubah dan kebenaran persekitaran yang diperlukan. Dalam KDE ini ialah arahan kdesu, dan dalam Gnome arahan gksu.

    Hanya taip gksu atau kdesu diikuti dengan arahan yang anda mahu:

    Perintah ini akan melancarkan pengurus fail KDE dengan hak superuser. Dalam Gnome ia akan kelihatan seperti ini:

    Program ini akan meminta kata laluan dalam tetingkap grafik, dan kemudian pengurus fail akan dibuka.

    kesimpulan

    Itu sahaja. Sekarang anda tahu cara mendapatkan hak superuser di Linux, anda tahu cara menggunakan arahan sudo dan apakah perbezaan antara sudo dan su. Sekarang program yang memerlukan keistimewaan tambahan pada sistem tidak akan menyebabkan masalah kepada anda. Jika anda mempunyai sebarang soalan, tulis dalam komen!

    1. Menggunakan arahan: su

    Banyak arahan hanya boleh dijalankan oleh superuser, jadi kita perlu tahu cara menjadi root. Untuk melakukan ini kita boleh menggunakan arahan: su (tukar pengguna). Perintah su menerima format berikut:

    tetapi selalunya kita akan gunakan su untuk menjadi pengguna akar:

    Su - akar

    Jika nama pengguna tidak dinyatakan pada baris, pengguna secara automatik diandaikan sebagai akar, jadi arahan boleh dipendekkan:

    tetapi kedua-dua pasukan berkelakuan berbeza. "su" memberikan pengguna semasa identiti, manakala "su -" memberikan pengguna semasa identiti bersama-sama dengan persekitaran yang akan diperolehi dengan mendaftar sebagai.

    Selalunya pengguna menggunakan "su" untuk menjadi root. Jika anda cuba menjalankan arahan (contohnya - ifconfig), anda akan menerima: "command tidak ditemui"kesilapan.

    Su Kata Laluan: ifconfig bash: ifconfig: arahan tidak dijumpai

    Sebabnya ialah pengguna sistem biasa dan pengguna akar mempunyai pembolehubah persekitaran PATH yang berbeza (anda boleh melihat PATH pengguna menggunakan "echo $PATH"). Selepas memasukkan arahan Linux, shell akan mencari PATH pengguna untuk cuba mencari arahan untuk dijalankan. Ia mula mencari setiap direktori yang disenaraikan dalam PATH sehingga sasaran ditemui.

    Pasukan pengguna biasa biasanya terletak di /usr/local/bin, /usr/bin dan /bin. Dan arahan pengguna root terletak terutamanya dalam /usr/local/sbin, /usr/sbin, /sbin dan PATH akar mencerminkan ini. Jadi apabila anda menjadi pengguna super dengan "su -", anda juga mengambil PATH baharu untuk arahan utama anda. Dan hanya menggunakan "su", ia disimpan laluan tersuai PATH adalah lalai, oleh itu, apabila cuba melaksanakan program yang terletak di /usr/local/sbin, /usr/sbin, /sbin ia akan menghasilkan keputusan: ralat "perintah tidak ditemui". Untuk penjelasan yang lebih terperinci, lihat halaman man bash, terutamanya bahagian shell log masuk.

    Jadi anda atau harus menunjukkan laluan penuh kepada arahan (contoh - /sbin/ifconfig) apabila menggunakan "su", atau gunakan "su -" apabila menjadi root.

    2. Menggunakan Sudo

    Anda tidak perlu menjadi pengguna super setiap kali anda mahu menjalankan beberapa fungsi pentadbiran tertentu. Terima kasih kepada Sudo, anda boleh menjalankan beberapa atau semua arahan sebagai root. Bila Sudo dipasang (pakej: Sudo), anda boleh mengkonfigurasinya menggunakan arahan "visudo" sebagai root. Pada asasnya ia mengedit (Vim lalai) /etc/sudoers, tetapi tidak disyorkan untuk melakukan ini secara manual.

    Alex SEMUA=(SEMUA)SEMUA

    Alex ialah nama pengguna. Simpan (tekan escape kemudian taip wq) dan anda selesai. Log masuk sebagai alex, dan jalankan sebagai contoh:

    kemas kini $sudo yum

    Sudo akan meminta kata laluan. Ini kata laluan Alex, bukan kata laluan pengguna root. Jadi berhati-hati apabila anda memberikan hak pengguna dengan Sudo.

    Tetapi Sudo boleh melakukan lebih daripada itu. Kami boleh membenarkan pengguna atau kumpulan pengguna menjalankan hanya satu arahan atau kumpulan arahan. Mari kembali ke fail sudoers kami. Mari kita mulakan dengan alex dan alisa, ahli kumpulan pentadbir. Jika kami mahu semua pengguna dalam kumpulan "pentadbir" dapat menjalankan setiap arahan sebagai pengguna super, kami mesti mengubah suai contoh kami:

    %admin SEMUA=(SEMUA)SEMUA

    Alex juga boleh melaksanakan perintah superuser, dan Alisa mempunyai hak untuk menjalankan Sudo, dengan hak yang sama dan kata laluannya. Jika alex dan alisa bukan ahli kumpulan yang sama, kami boleh menentukan alias pengguna dalam fail sudoers:

    User_Alias ​​​​ADMINS = alisa,alex

    Di sini kami telah mentakrifkan alias yang dipanggil ADMIN, dengan ahli alisa dan alex.

    Walau bagaimanapun, kami tidak mahu Alex dan Alisa dapat menjalankan sebarang program sebagai root. Kami mahu mereka hanya boleh menjalankan "updatedb". Mari kita tentukan alias arahan:

    Cmnd_Alias ​​​​LOCATE = /usr/sbin/updatedb

    Tetapi ini tidak mencukupi! Kami perlu memberitahu Sudo bahawa pengguna yang ditakrifkan sebagai ADMINS boleh menjalankan arahan yang dinyatakan dalam LOCATE. Untuk melakukan ini, kami akan menggantikan baris dengan "%admin" dengan ini:

    ADMINS SEMUA = LOCATE

    Ini bermakna pengguna dalam alias ADMIN boleh menjalankan semua arahan dalam alias LOCATE.

    Kali ini, /etc/sudoers kelihatan seperti ini:

    User_Alias ​​​​ADMIN = alisa, alex Cmnd_Alias ​​​​LOCATE = /usr/bin/updatedb ADMINS ALL = LOCATE

    Akibatnya, alex dan alisa boleh menjalankan updatedb sebagai root dengan memasukkan kata laluan mereka.

    Jika baris terakhir dalam fail diubah:

    ADMINS SEMUA = NOPASSWD:LOCATE

    maka alex dan alisa akan dapat melaksanakan "sudo updatedb" tanpa memasukkan kata laluan.

    Anda boleh menambah lebih banyak arahan pada alias perintah dan lebih banyak alias pada peraturan. Sebagai contoh, kita boleh membuat alias NETWORKING yang mengandungi beberapa arahan rangkaian jenis: ifconfig, laluan atau iwconfig:

    Cmnd_Alias ​​​​NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcclient, /usr/bin/net, sbin/iptables, /usr/bin/rfcom, /usr/bin/wvdial, /sbin /iwconfig, /sbin/mii-tool

    Mari tambahkan semua ini pada fail /etc/sudoers kami (menggunakan visudo!). Kami juga akan memberikan kumpulan ADMIN kami hak untuk melaksanakan program daripada alias NETWORKING:

    User_Alias ​​​​ADMINS = alice, bob Cmnd_Alias ​​​​LOCATE = /usr/bin/updatedb Cmnd_Alias ​​​​NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net ,/sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool ADMINS ALL = LOCATE, NETWORKING

    Ujian pantas: log masuk sebagai alisa (atau alex), dan taip:

    $ping -c 10 -i localhost

    Jawapannya harus kembali dengan cepat:

    PING localhost.localdomain (127.0.0.1) 56(84) bait data. ping: tidak boleh banjir; selang minimum, dibenarkan untuk pengguna, ialah 200ms

    Sekarang, perkara yang sama tetapi dengan Sudo:

    $sudo ping -c 10 -i 0 localhost PING localhost.localdomain (127.0.0.1) 56(84) bait data. 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 masa=0.049 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 masa=0.034 ms 64 bait daripada localhost (127.0.0.1): icmp_seq=3 ttl=64 masa=0.021 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=4 ttl=64 masa=0.030 ms 64 bait daripada localhost.localdomain (127):.0. icmp_seq=5 ttl=64 masa=0.017 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=6 ttl=64 masa=0.016 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=7 masa=0.016 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=8 ttl=64 masa=0.016 ms 64 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=9 ttl=64 masa=0.016 bait daripada localhost.localdomain (127.0.0.1): icmp_seq=10 ttl=64 masa=0.016 ms --- localhost.localdomain ping statistik --- 10 paket dihantar, 10 diterima, 0% kehilangan paket, masa 1ms rtt min/avg/ maks/mdev = 0.016/0.023/0.049/0.010 ms, ipg/ewma 0.187/0.028 ms

    Sudo sering digunakan untuk memberikan pengguna tertentu akses separa kepada perintah istimewa supaya mereka boleh melaksanakan fungsi pentadbiran terhad. Salah satu kemudahan Sudo ialah semua arahan ditulis ke /var/log/secure. Contoh di atas akan diterangkan oleh baris dalam log:

    18 Apr 11:23:17 localhost sudo: alex: TTY=pts/0 ; PWD=/home/alex ; USER=root ; COMMAND=/bin/ping -c 10 -i 0 localhost

    Itu sahaja. Sekarang saya tidak akan pernah lupa apabila saya menggunakan Sudo: "dengan kuasa besar datang tanggungjawab besar."

    2.1 Cangkang sudo

    Jika anda mempunyai cukup kebenaran yang dikonfigurasikan dalam sudoers, anda juga boleh membuka root tempurung menggunakan:

    DALAM versi terkini hanya pada CentOS 5, untuk menjalankan shell sebagai root, gunakan sudo -s. Berhati-hati kerana ini boleh menukar atau mencipta fail baharu direktori rumah Root, dan pasang dalam direktori rumah pengguna yang memanggil.

    3.pembantu konsol

    Consolehelper ialah shell untuk melancarkan aplikasi GUI. Apabila ia mula berjalan, ia menyemak konfigurasi PAM untuk aplikasi yang diperlukan. Ini bermakna kami boleh mengesahkan pengguna menggunakan semua modul yang dipasang PAM. Kaedah utama adalah untuk meminta kata laluan, tetapi jika kita mempunyai peralatan yang betul. kami boleh mengesahkan menggunakan kad pintar, token, cap jari, dll. Konfigurasi PAM berada di luar skop dokumen ini (lihat Panduan Pentadbir PAM), jadi kami akan melihat langkah konfigurasi consolehelper yang diperlukan untuk menjalankan aplikasi sebagai akar dan memerlukan kata laluan akar.

    Sebagai contoh, mari kita konfigurasikan /usr/bin/xterm untuk dijalankan sebagai root.

    Ln -s /usr/sbin/consolehelper /usr/bin/xterm-root

    Sekarang untuk mengkonfigurasi PAM, buat fail /etc/pam.d/xterm-root:

    #%PAM-1.0 auth include config-util account include config-util session include config-util

    Akhir sekali, konfigurasi consolehelper untuk menjalankan /usr/bin/xterm sebagai root dengan arahan "xterm-root". Buat fail /etc/security/console.apps/xterm-root:

    USER=root PROGRAM=/usr/bin/xterm

    Itu sahaja. Jalankan "xterm-root" (dari baris arahan atau shortcut.desktop file), masukkan kata laluan dan pergi. Jika anda menerima ralat: "Xlib: sambungan ke ":0.0" ditolak oleh pelayan", jalankan "xhost local:root" dahulu.

    Bagaimanakah saya boleh meningkatkan keistimewaan saya kepada keistimewaan sistem? dunia Windows. Ternyata, terdapat lebih daripada cukup pilihan untuk ini. Apa yang perlu dipilih bergantung pada keadaan dan pilihan anda. Walau bagaimanapun, seperti yang anda faham, anda perlu mengembangkan kuasa anda bukan sahaja untuk tingkap, tetapi juga untuk penguin. Apakah peluang yang ada? Baiklah, mari kita lihat...

    Prakata

    Seperti yang anda ingat (dan setiap pentadbir yang mencukupi harus ingat), bekerja di Linux di bawah akar adalah tidak disyorkan sama sekali. Dalam dunia yang ideal, anda hanya akan menggunakannya untuk konfigurasi pelayan, pemasangan dan kemas kini perisian serta tugasan pentadbiran semata-mata yang lain. Masalahnya ialah kita hidup dalam dunia biasa, yang sangat jauh dari ideal. Oleh itu, keadaan sedemikian masih berlaku kadang-kadang. Benar, dalam kebanyakan kes, semata-mata disebabkan oleh kecuaian, kerana ia berlaku secara sejarah bahawa pengguna Linux perlu memahami bagaimana mereka sistem operasi. Dan walaupun anda memahami sedikit tentang sistem dan mekanisme keselamatannya, anda tidak akan dapat duduk di bawah akar. Oleh itu, hari ini, tidak seperti Windows, di mana kami bercakap tentang mendapatkan keistimewaan sistem sebagai pentadbir, kami hanya akan mempertimbangkan pilihan untuk meningkatkan keistimewaan daripada pengguna yang tidak mempunyai hak kepada root. Jadi mari kita mulakan.

    Eksploitasi

    Semua kaedah untuk mendapatkan hak superuser dalam Linux boleh dibahagikan kepada dua kategori. Yang pertama adalah tepat penggunaan eksploitasi. Tidak seperti Windows, dengan mekanismenya pemasangan automatik kemas kini, pengikut Penguin kebanyakannya perlu memantau keluaran patch dan pemasangan mereka sendiri. Dalam hal ini, peluang untuk menemui sistem yang belum ditambal sepenuhnya di kalangan mesin Linux adalah lebih tinggi. Apakah faedahnya kaedah ini boleh highlight tak? Sebagai permulaan, kebanyakan eksploitasi menggunakan kelemahan dalam kernel OS, yang membolehkan mereka mendapat keistimewaan maksimum. Mencari kod eksploitasi yang sesuai tidaklah begitu sukar, dan anda mungkin tahu beberapa sumber. Selain itu, untuk memanfaatkan eksploitasi, kadangkala anda tidak perlu memahami semua selok-belok kelemahan yang digunakan - anda hanya perlu menyusunnya dengan betul dan menjalankannya (kadangkala, bagaimanapun, anda perlu menyesuaikannya sedikit, tetapi selalunya semuanya akan berfungsi tanpa mengubahnya dengan fail). DALAM Pandangan umum Algoritma tindakan adalah seperti berikut:

    1. Tentukan versi kernel dan pengedaran.
    2. Dapatkan senarai alatan yang tersedia untuk membina eksploitasi.
    3. Menghantar sploit kepada mesin sasaran.
    4. Susun (jika perlu) dan jalankan.
    5. Nikmati akar yang terhasil.

    Nah, sekarang tentang setiap langkah dengan lebih terperinci.

    Pengenalan

    Berdasarkan rancangannya, kita perlu terlebih dahulu mengetahui di mana kita berakhir, jenis distro yang kita gunakan dan apakah versi kernel. Versi kernel boleh diambil menggunakan perintah uname -a yang terkenal atau analognya. Untuk mendapatkan maklumat tentang pengedaran yang anda gunakan, anda perlu melihat fail *-release yang terletak dalam direktori etc (bergantung pada pengedaran, ia boleh dipanggil secara berbeza: lsb-release dalam Ubuntu, redhat-release dalam topi merah/ CentOS dan sebagainya):
    cat /etc/*-release

    Mengetahui pengedaran dan versi kernel, anda boleh beralih ke peringkat kedua - mencari "kunci induk" yang sesuai.

    Cari eksploitasi

    Setelah semua maklumat yang diperlukan sudah tersedia, sudah tiba masanya untuk mencari eksploitasi yang sesuai. Perkara pertama yang terlintas di fikiran ialah exploit-db.com, tetapi terdapat juga alternatif: 1337day, SecuriTeam, ExploitSearch, Metasploit, securityreason, seclist. Lagipun, ada Google; ia pasti tahu lebih banyak tentang eksploitasi daripada orang lain. Melihat ke hadapan sedikit, saya akan berkata: kadang-kadang, atas sebab tertentu, "kunci induk" mungkin tidak berfungsi, atau anda perlu menyesuaikannya sedikit dengan keadaan tertentu atau keperluan anda, iaitu, melaluinya dengan fail. Dalam kes itu, tidak salah untuk mengetahui tentang dia Maklumat tambahan, yang boleh diperolehi daripada salah satu sumber berikut:
    www.cvedetails.com
    packetstormsecurity.org
    cve.mitre.org

    Jadi, katakan anda menemui eksploitasi yang sesuai yang memberi anda laluan ke dunia akar. Yang tinggal hanyalah mengangkutnya ke dalam kereta.

    Penghantaran ke rumah

    Untuk menghantar penyebar ke lokasi, terdapat banyak cara, daripada cURL/wget yang terkenal, Netcat, FTP, SCP/SFTP, SMB kepada menggunakan DNS rekod TXT. Untuk mengetahui alat berikut yang kami ada, jalankan:

    Cari / -name wget find / -name nc* find / -name netcat* find / -name tftp* find / -name ftp

    Katakan kami menjumpai Netcat. Untuk memindahkan fail menggunakannya, jalankan pada bahagian penerima:
    nc -l -p 1234 > out.file

    Iaitu, kami mendengar port 1234. Pada penghantaran, kami melakukan perkara berikut:
    nc -w 3 1234< out.file

    Jika pemindahan berlaku daripada *nix pada sistem *nix, iaitu di sana-sini utiliti standard, maka anda boleh menggunakan pemampatan untuk mempercepatkan proses pemindahan. Dalam kes ini, arahan akan kelihatan seperti ini:

    Nc -l -p 1234 | nyahmampat -c | tar xvfp - // untuk mendapatkan tar cfp - /some/dir | mampatkan -c | nc -w 3 1234 // untuk menghantar

    Pilihan lain adalah lebih mudah, jadi kami tidak akan mempertimbangkan untuk menggunakan wget, FTP dan kaedah lain yang terkenal.

    Sorok dan cari

    Baiklah, kami telah mengetahui cara menyampaikannya. Tetapi bagaimana anda boleh mengelak daripada terbakar? Jika eksploitasi anda ditemui, yakinlah bahawa kelemahan itu akan segera ditutup. Oleh itu, anda perlu mengehoskannya, menyusun dan menjalankannya dari tempat yang tidak mencolok. Di Linux, direktori yang bermula dengan titik (contohnya, .secret_folder) disembunyikan. Oleh itu, adalah logik untuk menggunakannya untuk menyembunyikan aktiviti mereka. Sebagai contoh, letakkan kod exploit padanya: /tmp/.nothingthere/exploit.c . Walau bagaimanapun, dalam kes ini, anda mesti terlebih dahulu memastikan bahawa tmp dipasang tanpa pilihan noexec dan anda boleh menjalankan eksploit yang dipasang daripadanya (untuk melakukan ini, gunakan arahan mount).

    Membina dan menjalankan eksploit

    Sebaik sahaja kami telah menghantar dan meletakkan Sploit, ia perlu dipasang/dikonfigurasikan. Sebagai peraturan, eksploitasi ditulis dalam C atau salah satu bahasa skrip Python/Perl/PHP. Pembaca biasa ][ tahu bahawa meninggalkan pengkompil pada pelayan anda bukanlah yang terbaik Keputusan terbaik, jadi ia biasanya dipotong. Jika soalan anda tentang versi pengkompil gcc-v bash akan bersumpah gcc: command not found , yang bermaksud anda "bertuah" dan perlu pergi berkeliling. Iaitu, sama ada mencari hamparan dalam Python, Perl atau sesuatu yang lain, atau menyusunnya mesin maya dengan versi OS dan kernel yang serupa. Kemudian pindahkan fail boleh laku yang terhasil ke hos sasaran (namun, kaedah ini tidak menjamin operasi 100%; eksploitasi mungkin jatuh dan ranap sistem, jadi berhati-hati di sini). Walau bagaimanapun, seperti yang ditunjukkan oleh amalan, jurubahasa untuk salah satu bahasa yang disebutkan mesti ada dalam sistem. Oleh itu, anda tidak sepatutnya berputus asa dengan serta-merta; sebaliknya, mari semak semua pilihan:

    Cari / -name perl* find / -name python* find / -name gcc* find / -name cc

    Jika berjaya, anda hanya perlu menjalankan eksploit yang disusun dan nikmati promosi. Nah, atau fikirkan mengapa ia tidak berjaya, bergantung pada nasib anda.

    Melawan Sploit

    Sukar untuk menghasilkan sebarang resipi inovatif di sini. Semuanya sudah lama diketahui. Anda hanya perlu memasang tampalan tepat pada masanya. Ini adalah yang pertama. Yang kedua adalah untuk mengehadkan tempat dari mana fail boleh dilaksanakan (folder tmp pasti akan dilucutkan keupayaan ini). Baik, gunakan sedikit penyelesaian keselamatan, contohnya grsecurity.

    Hak, fail, laluan dan konfigurasi

    Kategori kedua yang boleh dibezakan dalam meningkatkan keistimewaan ialah kaedah yang tidak berkaitan dengan penggunaan eksploitasi, tetapi berdasarkan pencarian fail dengan hak yang ditetapkan secara salah. Di sini, seperti dalam kes Windows, terdapat beberapa helah, tetapi pada asasnya ia masih merupakan kerja yang sama untuk mengumpul dan menganalisis data. Biasanya, perkara pertama yang perlu dicari ialah fail yang boleh dibaca dan ditulis oleh semua orang:
    cari / -perm 2 ! -jenis l -ls

    Ini mungkin cukup nombor besar, dan di antara mereka anda boleh menemui sesuatu yang menarik: fail konfigurasi, sumber tapak/aplikasi, skrip yang dilancarkan oleh init atau cron. Pada dasarnya, keadaan di mana fail boleh dibaca dan ditulis oleh semua orang adalah perkara biasa. Masalah timbul apabila pengguna/pentadbir/skrip mula menukar kebenaran tanpa berfikir. Jadi apabila anda menukar kebenaran, cuba elakkan menggunakan chmod 777. Baik, jalankan audit berkala untuk fail penting tidak tersedia untuk semua orang.

    Setuid + setgid

    Seperti yang dinyatakan dalam dokumentasi, setuid dan setgid ialah bendera kebenaran yang membenarkan executable dijalankan dengan hak pemilik atau kumpulan executable (biasanya root). Fail boleh laku sedemikian, apabila dijalankan dengan keistimewaan yang tinggi, boleh mengakses maklumat yang lebih istimewa. Sebagai contoh, jika anda menetapkan setuid kepada arahan ls, anda akan dapat melihat kandungan direktori yang anda tidak dapat akses pada mulanya. Dan dalam kes vim, saya boleh mengedit fail konfigurasi yang saya tidak mempunyai hak untuk melihat sebelum ini.

    Sehubungan itu, jika aplikasi dengan set bendera setuid/setgid mengandungi kelemahan seperti limpahan penimbal atau suntikan arahan, maka penyerang boleh melaksanakan kod arbitrari dengan keistimewaan yang tinggi. Oleh itu, pilihan seterusnya biasanya untuk mencari fail boleh laku dengan bendera ini.
    sudo find / -xdev \(-perm 4000\) -type f -print0 -exec ls -s () \;

    Pada dasarnya, anda boleh melakukannya tanpa sudo, ini hanya perlu untuk menyemak direktori yang anda tidak mempunyai akses.

    Biasanya terdapat tiga pilihan untuk penggunaan selanjutnya fail boleh laku. Yang pertama ialah cuba meningkatkan keistimewaan berdasarkan fungsi yang disediakan oleh aplikasi ini (atau lebih tepat, tampil dengan cara anda sendiri menggunakan fungsi ini dengan cara yang luar biasa). Pilihan kedua adalah untuk mencari eksploitasi awam atau menjalankan fuzzing bebas untuk mengenal pasti pepijat. Yang ketiga ialah suntikan arahan. Tiada resipi universal, semuanya bergantung pada keadaan.

    SUDO

    perintah sudo (pengganti). pengguna dan do), yang secara literal bermaksud "ganti pengguna dan laksanakan," membolehkan anda mewakilkan sumber istimewa tertentu kepada pengguna sambil mengekalkan log kerja. Iaitu, ia menyediakan pengguna dengan keupayaan untuk melaksanakan arahan sebagai root (atau pengguna lain) menggunakan mereka kata laluan sendiri, bukan kata laluan akar. Peraturan untuk membuat keputusan akses adalah dalam fail /etc/sudoers. Butiran lanjut tentang format fail ini dan menetapkan peraturan boleh didapati dalam manual rasmi atau Wikipedia. Saya hanya akan mengatakan bahawa fail ini juga perlu diperiksa dengan teliti. Kerana ia sering berlaku bahawa beberapa aplikasi mengubahnya semasa pemasangan, dan, lebih-lebih lagi, tidak masuk sisi yang lebih baik. Akibatnya, pengguna berpeluang untuk meningkatkan keistimewaan mereka (siaran mengenai keselamatan Offensive memberitahu tentang kes sedemikian).

    JALAN

    Seperti pada Windows, dalam Linux laluan yang dikonfigurasikan secara salah juga akan membantu meningkatkan keistimewaan anda. Ini biasanya berlaku dengan pembolehubah persekitaran PATH (gunakan printenv untuk melihatnya). dah tengok ke? Hebat, sekarang beritahu saya: bagaimana jika pembolehubah persekitaran PATH bermula dengan. (.:/bin:/usr/sbin ....)? Ini biasanya dilakukan oleh pengguna yang tidak mahu menaip dua aksara tambahan, iaitu, mereka mahu memanggil arahan seperti ini: $ program dan bukannya $ ./program . Penambahan. dalam PATH bermaksud keupayaan untuk melaksanakan fail/skrip daripada direktori kerja. Anda boleh menambahnya seperti berikut:

    PATH=.:$(PATH) eksport PATH

    Sekarang bayangkan keadaan kita mempunyai dua pengguna: Joe (penyerang) dan Bob. Joe tahu bahawa Bob mempunyai keistimewaan sudo untuk menukar kata laluan pengguna, termasuk root. Selain itu, Bob malas dan menambah. kepada pembolehubah persekitaran PATH. Wile Joe menulis program yang akan menukar kata laluan root, memanggilnya ls dan meletakkannya dalam folder yang Bob suka lihat. Sekarang, apabila yang terakhir masuk ke dalam folder dan ingin melihat kandungannya, program yang ditulis Joe akan dilaksanakan dan kata laluan root akan ditukar. Oleh itu, kami sentiasa menyemak pembolehubah persekitaran untuk kehadiran perkara yang menarik, dan untuk diri kami sendiri kami membuat kesimpulan berikut:

    1. Kami tidak pernah menggunakannya. dalam pembolehubah PATH.
    2. Jika titik itu masih ada di sana, letakkannya baris seterusnya dalam .bashrc atau .profile:
      PATH= echo $PATH | sed -e "s/::/:/g; s/:.:/:/g; s/:.$//; s/^://"

    Alatan

    Untuk mengautomasikan carian titik lemah Anda boleh menggunakan alat berikut:

    1. LinEnum ialah skrip bash yang akan melakukan semua kerja kotor untuk anda, melakukan semua semakan yang diterangkan dalam helaian cheat ini. Secara keseluruhan terdapat kira-kira 65 dalam senjatanya pelbagai cek, bermula daripada mendapatkan maklumat tentang versi kernel kepada mencari fail SUID/GUID yang berpotensi menarik. Di samping itu, anda boleh lulus skrip kata kunci, yang akan dicari dalam semua konfigurasi dan fail log. Semakan dimulakan seperti berikut: ./LinEnum.sh -k kata kunci -r report -e /tmp/ -t . Selepas pengimbasan selesai, anda akan dibentangkan dengan laporan yang agak terperinci, tempat paling menarik yang akan diserlahkan dengan warna kuning.
    2. LinuxPrivChecker - Skrip Python yang juga berguna dalam mencari pilihan yang berpotensi untuk meningkatkan keistimewaan. Secara umum, ia melakukan semua perkara standard yang sama: memeriksa keistimewaan, mendapatkan maklumat tentang sistem... Tetapi ciri utamanya ialah selepas pemeriksaan selesai, ia akan menawarkan anda senarai eksploitasi yang, pada pendapatnya, akan membantu meningkatkan keistimewaan. Lelaki yang begitu baik :).
    3. unix-privesc-check - skrip ini membolehkan anda mencari pilihan untuk meningkatkan keistimewaan bukan sahaja dalam Linux, tetapi juga dalam Solaris, HPUX, FreeBSD. Ia cuba mengesan ralat konfigurasi yang akan membolehkan pengguna yang tidak mempunyai hak untuk meningkat dalam sistem.
    4. Blog g0tmi1k - dan ini adalah blog di mana semua semakan yang dilakukan oleh tiga alat yang dinamakan diterangkan dengan baik. Oleh itu, saya amat mengesyorkan agar anda melihat di sana dan berkenalan dengannya supaya anda boleh membayangkan bagaimana alat ini berfungsi dari dalam.



    LinuxPrivChecker mengandungi senarai besar eksploitasi, yang sentiasa dikemas kini daripada Pangkalan Data Eksploit

    Akhir kata

    Seperti yang anda lihat, dalam dunia Linux, meningkatkan keistimewaan juga adalah perkara biasa. Rahsia kejayaan adalah mudah: untuk mencapai matlamat anda, anda perlu bersabar dan tahu di mana hendak mencari dan apa yang perlu dicari. Di mana hendak melihat, anda kini tahu utiliti mana yang hendak digunakan untuk automasi, jadi kini anda boleh menakluki bukan sahaja sistem menang, tetapi juga sistem nix. Berusaha untuk mendapatkannya!