Ini adalah perintah super yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
super - jalankan perintah setuid root.
RINGKASAN
Untuk menjalankan perintah:
super [ -r reqpath] Command [ args ]
super [ -r reqpath] -o path [ args ]
Command [ args ]
Untuk membuat daftar perintah yang tersedia:
super [-H|-f] [-S]
Untuk informasi penggunaan dan/atau versi:
super [-h] [-V]
Untuk debugging dan pengembangan:
super -b
super -c [ file super ]
super [-d|-D|-t] [-S] [Opsi Masq] [-H|-f|memerintah...]
Opsi Masq:
-F fillet
-T hh:mm/nama hari
-G gid
-U uid
-M mach
DESKRIPSI
besar memungkinkan pengguna tertentu untuk mengeksekusi skrip (atau perintah lain) seolah-olah mereka adalah root;
atau dapat mengatur uid, gid, dan/atau grup tambahan berdasarkan per-perintah sebelum
menjalankan perintah. Ini dimaksudkan sebagai alternatif yang aman untuk membuat skrip setuid
akar. Super juga memungkinkan pengguna biasa untuk memberikan perintah untuk dieksekusi oleh orang lain; ini
jalankan dengan uid, gid, dan grup pengguna yang menawarkan perintah.
besar berkonsultasi dengan ``super.tab'' untuk melihat apakah pengguna diizinkan untuk menjalankan yang diminta
Command. Jika izin diberikan, super akan mengeksekusi pgm [ args ], di mana pgm adalah programnya
yang terkait dengan ini perintah. (Root diizinkan dieksekusi secara default, tetapi dapat
masih ditolak jika aturan mengecualikan root. Pengguna biasa tidak diizinkan untuk dieksekusi oleh
bawaan.)
Jenis entri yang paling umum di a super.tab pasangan file yang sederhana Command dengan pgm jalan.
Tapi nyatanya, perintah di super.tab file sebenarnya diperlakukan sebagai pola, dan Apa pun
perintah yang dimasukkan pengguna yang cocok dengan pola ini menyebabkan yang terkait pgm Akan dieksekusi.
Jika terdaftar pgm mengandung tanda bintang, maka tanda bintang tersebut diganti dengan perintah
dimasukkan oleh pengguna. Salah satu kegunaannya adalah membiarkan program apa pun di direktori tertentu menjadi
dieksekusi oleh seorang pengguna. Misalnya, jika entri berisi pasangan perintah/pgm
Pola Perintah program
skrip/* → /usr/lokal/super/*
* → /usr/lokal/somedir/*
maka terjemahan yang dibuat adalah
milik pengguna perintah Dieksekusi program
skrip/xyz → /usr/local/super/scripts/xyz
xyz → /usr/local/somedir/xyz
Beberapa perintah hanya dapat dijalankan setelah pengguna memasukkan kata sandinya. Perintah-perintah ini
kemudian dapat dijalankan beberapa kali hingga beberapa waktu kedaluwarsa, pada titik mana kata sandi
perlu dimasukkan kembali. Daftar perintah yang memerlukan kata sandi dan kata sandi
durasi diatur dalam file yang sama yang mencatat pengguna yang valid untuk setiap perintah.
If Command adalah tautan simbolis (atau tautan keras juga) ke super program, lalu ketik
% Command args
setara dengan mengetik
% super Command args
(The Command tidak boleh super, atau super tidak akan mengenali bahwa itu dipanggil melalui a
tautan.)
besar tanpa argumen apapun akan menampilkan daftar perintah yang mungkin dijalankan oleh
pengguna.
Untuk keamanan, tindakan pencegahan berikut diambil sebelum menjalankan:
(a) semua deskriptor kecuali 0,1,2 ditutup;
(b) semua variabel lingkungan pengguna dibuang, kecuali TERM, LINES, dan
KOLOM. Jika TERM berisi karakter selain {-/:+._a-zA-Z0-9}, itu adalah
dibuang. Jika LINES atau COLUMNS berisi karakter selain [0-9], itu adalah
dibuang. Untuk ini ditambahkan nilai wajar untuk:
USER dan LOGNAME: keduanya disetel ke nama pengguna yang terkait dengan uid asli dari
program berjalan di bawah super;
HOME: atur ke direktori login pengguna yang sedang berjalan super;
ORIG_USER, ORIG_LOGNAME, ORIG_HOME: nilai USER, LOGNAME, dan HOME yang
merujuk ke pengguna yang dipanggil super. (Nilai-nilai ini dihitung dengan super,
dan bukan nilai yang ditetapkan oleh penelepon, jadi itu adalah deskripsi yang andal
dari penelepon. Ini biasanya memiliki nilai yang sama dengan USER, LOGNAME, dan
HOME, tetapi mereka akan berbeda jika perintah super mengubah uid atau gid sebelumnya
menjalankan program.);
IFS: disetel ke kosong, tab, baris baru;
PATH: atur ke /tempat sampah:/ usr / bin.
SUPERCMD: atur ke Command.
variabel lingkungan tambahan seperti yang ditentukan dalam super.tab berkas (lihat di bawah).
(c) semua penanganan sinyal direset ke default.
If besar dieksekusi tanpa argumen, itu akan mencetak perintah yang mungkin dilakukan pengguna
mengeksekusi, satu perintah per baris. besar -H mencetak deskripsi panjang lebar dari setiap perintah
yang dapat dijalankan oleh pengguna.
CmdPat adalah pola perintah, dan Jalur penuh adalah path lengkap yang akan dieksekusi.
File super.tab dapat menentukan argumen awal yang mendahului apa pun yang disediakan pengguna
argumen; argumen ini, jika ada, dicetak setelah Jalur penuh kolom.
Ditetapkan pengguna super.tab File
Pengguna biasa dapat menyediakan file super mereka sendiri. Ini memungkinkan pengguna memberikan terkontrol dengan baik
akses setuid/setgid ke program mereka: pengguna yang menawarkan program mendapatkan jaminan
pengaturan IFS yang aman, pengaturan variabel lingkungan yang aman, dll; dan pengguna yang mengeksekusi
program tahu bahwa itu akan dijalankan di bawah uid dan gid dari pengguna yang menawarkan. Jika sebuah
Command dimasukkan dalam formulir
super nama login:cmd
super mencari cmd dalam file .supertab, di direktori home akun nama login.
cmd akan dieksekusi menggunakan uid, gid, dan grup tambahan (jika ada) dari pengguna
nama login.
Opsi super biasa (seperti -H) dapat diterapkan ke file .supertab pengguna. Untuk
contoh, informasi bantuan tentang satu perintah dapat diperoleh dengan menggunakan:
super -H nama login:cmd
Demikian juga, bantuan informasi tentang semua nama login's perintah dapat diperoleh dengan:
super -H nama login:
Tautan ke perintah per pengguna dapat dibuat dan digunakan dengan cara yang mirip dengan membuat symlink
untuk super diri. Jika Command adalah tautan simbolis ke file .supertab pengguna, dan itu
.file supertab adalah
(a) dapat dieksekusi, dan
(b) dimulai dengan
#! /jalan/ke/super -o
maka pasangan berikut benar-benar setara:
% super nama login:Command
% Command
Jika #!-baris akan lebih panjang dari batas khas Unix 32 karakter, Anda bisa
alih-alih mulai file .supertab dengan:
#! / Bin / sh
# Pertahankan garis miring terbalik ini -> \
exec /long/path/to/the/super/executable -o $0 ${1+"$@"}
(Hal di atas memanfaatkan fakta bahwa super memungkinkan komentar menjadi garis miring terbalik-
melanjutkan, tetapi cangkangnya tidak.)
Penautan .supertab per pengguna berfungsi sebagai berikut: jika /path/ke/xyz adalah symlink ke beberapa pengguna
file .supertab, dan file .supertab dimulai dengan #! /jalan/ke/super -o, lalu cangkangnya
akan memanggil super dengan argumen seperti
super -o /path/ke/xyz [argumen]
Super cek itu /path/ke/xyz adalah tautan ke file .supertab yang sebenarnya, dan kemudian selalu berubah
bagian terakhir dari jalan (di sini xyz) ke dalam perintah untuk dieksekusi.
** Security peringatan **
Perhatikan bahwa jika Anda menggunakan symlink ke file .supertab per pengguna, maka Anda harus percaya bahwa
File .supertab sebenarnya akan menjalankan perintah super, alih-alih melakukan sesuatu yang jahat.
Itu karena super itu sendiri tidak dipanggil sampai shell telah membuka file .supertab
dan melakukan apa pun yang diperintahkan oleh file .supertab. Sebaliknya, perintah langsung
super nama login:cmd tidak melibatkan pemrosesan shell dari file .supertab.
REGULER PILIHAN
-V Cetak nomor versi super.
-S Ketika super meminta kata sandi, ini memaksanya untuk meminta pada stdin, bahkan jika
bawaan (/dev/tty) dapat dibaca dan ditulis. Catatan: Ini hanya berlaku untuk kata sandi-
jenis otentikasi — yaitu, jenis otentikasi yang lebih lama di mana super
sendiri meminta kata sandi; Otentikasi PAM ditangani oleh PAM sistem Anda
modul.
-f Ini meminta daftar perintah yang tersedia dalam format singkat yang berguna untuk diproses
oleh skrip. (-f singkatan dari fakta, seperti dalam ``hanya fakta, m'am'').
-rreqpath
Memberitahu super untuk menghasilkan kesalahan jika program terkait dengan ini Command tidak
reqpath. Ini membantu Anda menulis skrip yang memastikan bahwa super hanya mengeksekusi apa
mereka mengharapkannya untuk dieksekusi. Lihat langkah 4 dari bagian, ``Membuat Skrip Super'',
untuk contoh penggunaannya.
-H Global super untuk mencetak daftar verbose dari perintah yang tersedia bagi pengguna. Dia
mencetak keduanya Command dan terjemahannya ke program pgm. Jika ditampilkan pgm
berisi tanda bintang, maka program yang sebenarnya dieksekusi dibentuk dengan mengganti
tanda bintang dengan Command dimasukkan oleh pengguna. Contoh berikut menunjukkan
jenis garis yang mungkin ditampilkan dengan -H opsi:
Example 1.
super ketrampilan → /usr/local/bin/skill
ketikan super ketrampilan akan mengeksekusi /usr/local/bin/skill.
Example 2.
super {lp*} → / usr / bin /*
Contoh ini berisi tanda bintang di kedua sisi kiri dan kanan. Sisi kiri
menunjukkan pola valid yang harus Anda cocokkan untuk menjalankan perintah yang ditunjukkan di sebelah kanan-
sisi tangan. Biasanya, sisi kanan tidak memiliki tanda bintang, hanya jalur penuh ke a
perintah untuk dieksekusi. Jika ada is hadiah asterisk, diganti dengan perintah
Anda masukkan, sehingga membentuk perintah yang dieksekusi sebenarnya. Jadi, jika Anda mengetik
super lpxxx (dimana xxx adalah string apa saja), super akan mengeksekusi /usr/bin/lpxxx.
Example 3.
super {bersama*} → /usr/bin/kompres
Tanda bintang di sisi kiri berarti Anda bisa masuk super coxxx (dimana xxx is
string apa pun), tetapi karena sisi kanan tidak mengandung tanda bintang, coxxx akan
selalu eksekusi /usr/bin/kompres.
-t Ini mengaktifkan mode ``test''. Itu melakukan semua pemeriksaan normal kecuali yang membutuhkan
input pengguna (kata sandi dan variabel yang harus dimasukkan pengguna), tetapi tidak dijalankan
perintah apapun. Sebagai gantinya, ia keluar dengan kode status 0 jika perintahnya ok untuk dieksekusi,
else 1. Semua keluaran pesan kesalahan normal dihasilkan dengan cara biasa, tetapi tidak
pesan debug khusus dihasilkan. Jadi, ini adalah sarana yang berguna bagi sebuah skrip untuk
periksa apakah suatu perintah kemungkinan akan berfungsi, dan karenanya masuk akal untuk exec super. mari kita
katakan bahwa skrip /usr/local/bin/foo ingin memanggil dirinya sendiri menggunakan super foo (Lihat
bagian ``Membuat Skrip Super'' untuk cara menghindari pengulangan tak terbatas saat melakukannya
ini!) skrip dapat menggunakan -r pilihan untuk memastikan bahwa super foo ke
file yang benar, dan dapat menggunakan mode uji untuk memastikan bahwa super foo adalah perintah yang valid:
prog=`nama dasar $0`
/usr/local/bin/super -t -r $0 $prog
kasus $? di dalam
0) exec /usr/local/bin/super -t -r $0 $prog ;;
* ) echo "Super $prog tidak bekerja!"
... Jadi ambil tindakan yang tepat ...
;;
esac
DEBUG DAN PENGEMBANGAN PILIHAN
Opsi ini berguna saat membuat dan men-debug super.tab file. Mereka memiliki sedikit atau
tidak ada nilai bagi pengguna sehari-hari. Kecuali -b pilihan, mereka dapat digabungkan
dengan opsi reguler, di atas.
-b Cetak nama dan nilai variabel bawaan, lalu keluar. Berguna untuk
administrator untuk mempelajari nilai yang dapat digunakan untuk menguji variabel bawaan.
-c[file super]
Memberitahu super untuk memeriksa sintaks entri di file super, tapi tidak untuk dieksekusi
perintah apapun. Jika tidak file super diberikan, reguler super.tab diperiksa. Keluar
kode adalah 0 jika sintaks file ok; jika tidak, kode keluarnya adalah 1 (dan kesalahan
pesan dicetak). Setelah memodifikasi file super, Anda harus menggunakan opsi ini untuk
periksa integritasnya.
Perhatikan bahwa super -c bukan pemeriksaan lengkap bahwa Anda telah menyiapkan entri dengan benar,
karena Anda dapat membuat entri yang valid secara sintaksis yang tidak melakukan persis seperti yang Anda
mau. Karena itu, Anda juga harus menggunakan super -d cmd untuk memastikan bahwa perintah
yang Anda masukkan akan dieksekusi dengan argumen yang benar, uid, gid, umask, dan sebagainya
pada.
-d Ini mengaktifkan mode debug, dalam hal ini (a) informasi debug dicetak saat
memeriksa validitas pengguna, dan (b) perintah tidak benar-benar dijalankan. Berguna
untuk memeriksa apakah entri baru di super.tab file (lihat di bawah) telah ditangani
tepat.
-D Sama dengan -d, plus mencetak lebih banyak informasi tentang variabel yang didefinisikan dalam super.tab
file.
-Ffile super
Opsi ini hanya digunakan untuk debugging, dan memungkinkan Anda menguji superfile sebelumnya
menginstalnya. Tidak ada perintah yang benar-benar akan dieksekusi. Ini juga mengaktifkan non-
debugging verbose, menunjukkan nama perintah yang cocok dan alasan untuk menerima atau
menolak perintah.
-Ggid Opsi ini juga digunakan untuk debugging, dan memberitahu super untuk bertindak seolah-olah si penelepon
groupid atau nama grup adalah gid. Ini membawa batasan dan info debug yang sama seperti
opsi -F.
-Uuid Opsi ini juga digunakan untuk debugging, dan memberitahu super untuk bertindak seolah-olah si penelepon
uid atau nama pengguna adalah uid. Ini membawa batasan dan info debug yang sama dengan -F
.
-Mmach Opsi ini juga digunakan untuk debugging, dan memberitahu super untuk bertindak seolah-olah si penelepon
tuan rumah (mesin) adalah mach. Ini membawa batasan dan info debug yang sama dengan -F
.
-Thh:mm/nama hari
Opsi ini juga digunakan untuk debugging, dan memberitahu super untuk bertindak seolah-olah eksekusi
waktu adalah hh:mm/nama hari. Ini memungkinkan Anda memeriksa apakah spesifikasi waktu di
super.tab file dengan benar membatasi eksekusi. Itu membawa batasan yang sama
dan debug info sebagai opsi -F.
Gunakan super online menggunakan layanan onworks.net