Giriş yapmayan bir kullanıcıyı nasıl oluşturabilirim?


134

subversionRHEL 5 sisteminde hem kullanıcı hem de grup oluşturmak isterim . Adam sayfasına baktım useraddve sanırım komut sadece ...

useradd subversion

Ancak, bir ev dir oluşturmaktan nasıl kaçınacağını emin değil. Ayrıca, sisteme giriş yapabilen bir kullanıcı olmasını da istemiyorum.

Ana amaç sadece bir SVN deposu için bir sahip sağlamaktır.


Gerçekten useradd man sayfasına baktınız ve -M'yi bulamadınız mı (HOME dizini oluşturma)?
inemanja

Yanıtlar:


76

-MHiçbir giriş dizininin oluşturulmayacağından emin olmak için düğmeyi kullanabilirsiniz (büyük harf olduğundan emin olun):

useradd -M subversion

daha sonra oturum açmayı önlemek için hesabı kilitleyin:

usermod -L subversion

59
Bu özellikle güçlü bir cevap değil, bu yolla yaratılan kullanıcının hala bir kabuğu var. Ve OP'yi durumun bu olduğu konusunda uyarmadınız bile. Geriye dönük olurdu usermod -s /bin/false subversion, ya da --shell /bin/falsehiçuseradd
Lee Hambley

7
@beak hesap kilitli, bir kabuk olan bir tartışma noktasıdır.
John T.

15
Aslında, sadece root kullanıcısı kilitli hesaba dava açabilirdi, fakat kişi zaten root erişimi aldıysa neden rahatsız ediyor? Bir kullanıcı bunu çalıştırabilir su -s /bin/bash usernameve atlayabilir zaman ve kabuk ayarı çok yapmaz .
John T

11
tartışmaya zaman ayırdığınız için teşekkürler, elbette haklısınız; ancak giriş yapmayan kullanıcıları, kabukları tanımlanmış olarak görmek beni üzüyor, tembel olarak beni etkiliyor ve birisinin sisteme aşina olmadığına inanıyorum, yanlışlıkla istenmeyen bir şey yapamamaları güzel; hacker farklı bir ırk zaten makinede bir kabuk var ise,, bittiğini temelde oyun olduğunu düşünüyorum
Lee Hambley

11
Bu yorumlar tam olarak öğrenmeyi umduğum şeyleri kapsıyordu, teşekkürler @ Beaks && John T
Rixius

220

useradd -r subversion

başına man useradd:

-r, --system create a system account

-R bayrağı bir sistem kullanıcısı oluşturacaktır - bir şifresi olmayan, bir ana sayfa dir ve giriş yapamayan.


1
bu komut aynı kullanıcı için bir grup bile yaratacaktır. Böylece "yıkılma" kullanıcısı "yıkılma" grubunda olacaktır. : "Yıkıcılık / yol / / klasör için sudo chown -R altüst etme" daha sonra yapmak istediğinizde Büyük
s3v1

49
yalnız -r ile yine de giriş yapabiliriz. kullanıcı kabuğunu devre dışı bırakmak için -s / bin / false komutuna ihtiyacımız var.
c4il

8
@ c4il Ancak bunlara giriş yapabilen tek şey kök değil mi? Yani, bir şifreleri yok, bu yüzden sadece root'un bunlara giriş yapabilmesini beklerdim.
Camilo Martin

ama yine de onlara şifre atayabiliriz, denedim passwd subversion.
Shayan

@rynop Makinemdeki bir kullanıcının sistem kullanıcısı olup olmadığını nasıl kontrol edebilirim? Herhangi bir yol var mı? Sanırım başlangıçlar için sudo'ers grubunda değiller.
Shayan

22

Aşağıdakileri kullanarak bir sistem kullanıcısı oluşturmak için başka bir çözüm adduser :

adduser --system --no-create-home --group yourusername

--groupKullanıcı adınızı gruplandırmanız gerekmiyorsa ve --no-create-homebu kullanıcı için bir eve ihtiyacınız varsa , kaldırabilirsiniz .

Yorumlarda py4on tarafından bahsedildiği gibi, bazı sistemlerde --disabled-loginbu kullanıcının oturum açmasını devre dışı bırakmak için seçeneği kullanmak gerekebilir . Yine de Debian'ın altındaki varsayılan davranış gibi görünüyor.

Kullanıcının sayısal kimliğinin bir sistem hesabında olacağına dikkat edin. --uidYine de , seçeneği kullanarak kullanıcı arayüzünü düzeltebilirsiniz .

Son olarak, bazı sistemlerde (örneğin, Fedora) adduserbunun bir useraddcevap olmadığını, bu durumda bu cevabın geçerli olmadığını unutmayın.


3
"Giriş yapabilen bir kullanıcı olmasını istemiyorum" u işaretlemek için, bayrağı --disabled-loginda ekleyin (önce yourusername)
toxefa

@ py4on: Bu seçenek kılavuzda belgelenmesine rağmen, en azından Debian altında varsayılan gibi görünüyor.
Skippy le Grand Gourou

15

Asıl soruya en net cevap, komutu çalıştırmaktır:

adduser subversion --shell=/bin/false

Ve ana dizini de istemiyorsanız:

adduser subversion --shell=/bin/false --no-create-home

veya daha kilitli bir sistem kullanıcısı istiyorsanız (Normalde bunun bir ev dizini oluşturmayacağı - bunun linux nane'de aşağıda bir yorum uyarınca hala bir ev dizini oluşturacağı bildirildi)

adduser subversion --system --group

Tüm bu komutlar kullanıcıyla aynı isimde bir grup oluşturacaktır.


Creating home directory '/home/nodejs' ...
Mint'te

11

Bunu yapmanın en güvenli şekli şöyle kullanmak olacaktır adduser:

$ adduser -r -s /bin/nologin subversion

NOT:-s /sbin/nologin Herhangi bir oturum açma kabuğunun hesapta kullanıma sunulmasını devre dışı bırakmayı dahil ettiğinizden emin olun .

Kurulum onayı

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

Ancak bir dizin yok:

$ ll /home | grep subversion
$

Hesabın başka şekilde kullanılabilir olduğunu onaylayın:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

uzaklaştırma

Bu hesabı kaldırmanız gerekirse:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

Ve onayla:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

1
adduser -r seçeneğini tanımıyor. Bence sen kastetmiştin.
17'de

@ felwithe hayır, yazdığım her cevap göndermeden önce her zaman test ediyorum. Kontrol ettim ve bu anahtar bir CentOS 6.x sisteminde görünüyor.
slm

İşte sonuç bir pastebin . Ubuntu 16 LTS'deyim. Hangi adduser versiyonunun kurulu olduğunu bilmiyorum ama zaman içerisinde veya sistemde çok fazla değişeceğini asla düşünmedim. Daha sonra bunun yerine - sistem bayrağıyla denedim, bu kullanıcı için bir homedir oluşturdu (bir tane istemedim). Sonunda adduser yerine useradd ile yaptım ve planlandığı gibi çalıştı. Bu yüzden, işe yaramaz olması gerektiğinde onu adduser olarak yanlış yazdığınızı varsaydım.
felwithe,

@ felwithe evet senden şüphe etmedim, sadece denediğimi bilmeni sağlıyorum 8-). Unix ve Linux sitesinde bir modum ve bu cmds ün olarak farklı s / b dağıtımları. OP sorusunda RHEL'den bahsetti, bu yüzden neden böyle cevapladım, ama bunu Q&A IMO'nun kargaşasının bir parçası olan kırmızı şapkaya özel olarak etiketlemediler.
slm,

1

CentOS 7 makinesinde

  • kullanıcı yoksa:
    useradd testuser --shell=/sbin/nologin

  • Mevcut bir kullanıcıyı değiştirmek istiyorsanız:
    usermod testuser --shell=/sbin/nologin


0

Yaparak, kullanıcı için maksimum 8 karakter uzunluğunda şifreli bir şifre oluşturarak başlayın:

openssl passwd -crypt new_password_less_than_eight_chars_long

O zaman yaparsın:

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username

0

Debian'da, bir sistem kullanıcısı (giriş dizini olmadan) ve giriş kabuğu oluşturabilirsiniz:

useradd --system --shell=/usr/sbin/nologin <username>

Senin Eğer nologinprogramı olduğunu /sbin/nologin, buna göre değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.