Saya membuat pengguna khusus di / etc / passwd dengan:
secure:x:2000:2000:secure:/bin:/usr/sbin/nologin
Saya tidak ingin mengizinkan masuknya pengguna ini (melalui konsol, ssh, ftp, apa pun).
Dia hanya menjalankan satu skrip melalui:
sudo su secure -c '/home/someuser/secure.script'
Tapi itu memberi saya This user is currently not available.
. Bagaimana cara mengaturnya agar dapat menjalankan skrip dengan cara ini tetapi mencegah login (konsol, ssh, ftp, ...) pengguna ini ke sistem?
Saya perhatikan bahwa ketika saya mengetik /usr/sbin/nologin
pada command-line, komputer merespons This account is currently not available.
.
sudo su
, lihat unix.stackexchange.com/questions/218169/…Jawaban:
Ini adalah kasus penggunaan khas untuk
sudo
.Anda sedang mencampuradukkan
sudo
yang memungkinkan menjalankan perintah sebagai pengguna lain dan sangat dapat dikonfigurasi (Anda dapat secara selektif menentukan pengguna mana yang dapat menjalankan perintah mana sebagai pengguna mana) dansu
yang beralih ke pengguna lain jika Anda mengetahui kata sandi (atau root).su
selalu menjalankan shell yang ditulis/etc/passwd
, bahkan jikasu -c
digunakan. Karena inisu
tidak kompatibel dengan/usr/sbin/nologin
.Kamu harus menggunakan
sudo -u secure /home/someuser/secure.script
Seperti yang
sudo
dapat dikonfigurasi, Anda dapat mengontrol siapa yang dapat menggunakan perintah ini dan jika ia perlu memasukkan kata sandi untuk menjalankannya. Anda perlu mengedit/etc/sudoers
menggunakanvisudo
untuk melakukan ini. (Hati-hati saat mengedit / etc / sudoers dan selalu gunakan visudo untuk melakukannya. Sintaksnya tidak sepele dan satu kesalahan dapat mengunci Anda keluar dari akun root Anda.)Baris dalam sudoer ini memungkinkan siapa pun dalam grup
somegroup
untuk menjalankan perintah sebagaisecure
:Ini memungkinkan siapa saja dalam grup
somegroup
untuk menjalankan perintahsecure
tanpa memasukkan kata sandi:Ini memungkinkan
user1
untuk menjalankan perintahsecure
tanpa memasukkan kata sandi:sumber
Saya menemukan masalah utama adalah "
/usr/sbin/nologin
" di/etc/passwd
Ketika saya ingin mengeksekusi su dalam kasus ini, ia harus ada-s /bin/bash
di dalam, jadi misalnya:su -s /bin/bash -c '/home/someuser/secure.script' secure
sumber
su
gunakan shell yang ditulis di / etc / passwd secara default. Menggunakansu
adalah cara untuk masuk sebagai pengguna dari pengguna lain.nologin
mencetak pesan "Pengguna ini saat ini tidak tersedia." dan keluar.sudo
tidak menggunakan shell untuk menjalankan perintah, jadi menggunakansudo
tanpasu
akan juga berfungsi. Lihat jawaban saya untuk lebih lanjutsudo
.su
menggunakan shell yang ditentukan dalam/etc/passwd
.Anda tidak perlu menggunakan
su
dengansudo
.Karena itu jangan campur
su
dengansudo
: gunakansudo -u secure '/home/someuser/secure.script'
.sumber
Ini mungkin tidak 100% relevan dengan pertanyaan tetapi dapat membantu seseorang yang memiliki pesan peringatan serupa
This user is currently not available
1) Periksa dengan perusahaan hosting Anda jika Anda telah memberikan akses shell.
2) jika Anda menggunakan CWP7: Setel Shell Access ke ON
sumber
su
,sudo
dan segala macam hal lainnya. 2) Tidak ada indikasi dalam pertanyaan bahwa instalasi yang dimaksud berada di belakang panel kontrol web dalam bentuk apa pun.