Membuat pengguna tanpa kata sandi

66

Saya mencoba membuat pengguna tanpa kata sandi seperti ini:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Ini dibuat dengan baik. Tetapi ketika saya mencoba masuk di bawah pengguna git saya mendapatkan kata sandi yang dimasukkan:

su git
Password:...

Ketika saya membiarkannya kosong saya mendapatkan kesalahan:

su: Authentication failed

Apa yang salah?

Erik
sumber
1
Tidak ada yang salah, otentikasi gagal seperti yang diharapkan. Anda tidak akan mendapatkan pesan kesalahan "tidak ada kata sandi, Anda tidak bisa login".
scai
Tetapi saya perlu membuat folder .ssh di bawah pengguna git, bagaimana saya harus melakukannya?
Erik
1
Baik buat sebagai root dan atur izin yang benar, atau jalankan su gitsebagai root di mana Anda tidak perlu memberikan kata sandi.
scai
4
Dengan menggunakan chmoddan chown.
scai
1
Di luar topik, tetapi "pengguna" bukan "pengguna". writersdigest.com/online-editor/…
David Baucum

Jawaban:

31

Anda telah membuat pengguna dengan "kata sandi yang dinonaktifkan", artinya tidak ada kata sandi yang memungkinkan Anda masuk karena ini digunakan. Ini berbeda dari membuat pengguna yang siapa pun dapat masuk tanpa memberikan kata sandi, yang dicapai dengan menentukan kata sandi kosong dan sangat jarang berguna.

Untuk menjalankan perintah sebagai pengguna "sistem" seperti itu yang tidak masuk secara normal, Anda perlu melompat melalui akun root:

su -c 'su git -c "git init"'

atau

sudo -u git git init

Jika Anda ingin pengguna tertentu dapat menjalankan perintah sebagai gitpengguna tanpa membiarkan mereka menjalankan perintah sebagai root, atur sudo (jalankan visudosebagai root dan tambahkan baris seperti %gitters ALL = (git) ALL).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
@ JulienRicard Er, ya, dan? Ada beberapa cara "pengguna tanpa kata sandi" dapat dipahami, dan saya menjawab untuk kasus penggunaan yang diberikan dalam pertanyaan. Pertanyaan tentang, misalnya, membuat pengguna tamu akan menjadi pertanyaan yang berbeda.
Gilles 'SANGAT berhenti menjadi jahat'
41

The --disabled-passwordpilihan untuk tidak akan menetapkan password, yang berarti tanpa password adalah legal, tetapi masuk masih mungkin (misalnya dengan kunci SSH RSA).

Untuk membuat pengguna tanpa kata sandi, gunakan passwd -d $usernamesetelah pengguna dibuat untuk membuat kata sandi kosong. Perhatikan tidak semua sistem mengizinkan pengguna dengan kata sandi kosong untuk masuk.

pallxk
sumber
3
Ini sepertinya tidak berfungsi di versi 16 ubuntu
Daniel Tate
@DanielTate membuatnya bekerja dengan: unix.stackexchange.com/a/472968/32558
Ciro Santilli 新疆 改造 中心 法轮功 六四 六四 事件
9

Jika Anda ingin mengakses sistem di bawah pengguna git, Anda harus menggunakan sudo:

sudo -s -u git

atau

sudo su - git
Didi Kohen
sumber
4

Buat pengguna dengan kata sandi kosong

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

Sayangnya kata sandi masih menunjukkan.

Tetapi jika Anda hanya menekan enter tanpa mengetik apa pun, dan itu masuk sebagai pengguna test-user-0.

The -ebendera mengatakan chpasswdbahwa password sudah dienkripsi, dan U6aMy0wojrahoadalah hash dari string kosong.

Diuji pada Ubuntu 18.04.

Autologin terminal dengan getty -a

Setidaknya di terminal, Anda tidak perlu membuat pengguna tanpa kata sandi untuk memungkinkan seseorang untuk tidak mengetik kata sandi mereka setiap waktu.

Saya dapat melakukan ini di BusyBox dengan memodifikasi inittab: Bagaimana cara login secara otomatis tanpa mengetikkan nama pengguna atau kata sandi root di Buildroot BusyBox init?

Jadi saya percaya bahwa seharusnya tidak terlalu sulit untuk mengadaptasi teknik itu dengan memodifikasi skrip systemd init sistem Ubuntu 18.04 untuk mengatur getty -a <user>terminal seperti yang disebutkan dalam jawaban itu, walaupun saya belum mencoba melakukannya sendiri.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
2

Saya pikir ini yang Anda inginkan:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Anda akan bisa

su $username

untuk menjalankan perintah sebagai pengguna itu, di / bin / bash atau shell apa pun yang Anda tentukan. --gecos "Pengguna" cukup masukkan "Pengguna" ke dalam kolom komentar sehingga Anda tidak diminta untuk mendapatkan informasi itu. Anda dapat meletakkan apa pun yang Anda inginkan di bidang itu.

Douglas Krugman
sumber