Şifre olmadan normal kullanıcı olarak nasıl dava açarım?


1

Birisi bana senaryomda yardımcı olabilir mi merak ediyordum.

2 sunucum var. Bunları Sunucu A ve Sunucu B olarak çağıralım. Sunucu B'de yüklü olan ve A Sunucusundan çalıştırmak istediğim bir yazılımı var. A Sunucusunda yazılımı yükleyemiyorum.

Kullanıcıların A Sunucusunda başka bir yazılımı çalıştırmasına izin vermem gerekiyor, bu da daha sonra bir komutu çalıştırmak için Sunucu B'deki yazılımı çağırmak için bir komut dosyasını çağıracak.

Böylece, sunucu A ve sunucu B'de aktarım adı verilen bir kullanıcı yarattım. Transferin, kimlik doğrulama anahtarlarını kullanarak parolaya ihtiyaç duymadan B sunucusuna ssh yapabilmesine izin verdim.

Şimdi A Sunucusundan aktarım olarak su almaya çalışıyorum, Ssh Sunucusuna bağlanın ve komutu çalıştırın.

Bu kök olarak mükemmel çalışıyor. Ancak, kendim veya başka bir kullanıcı olduğumda, B Sunucusunda "aktar" kullanıcısı için parola soruyor.

İşte komut dizisi:

 #!/bin/bash
 su transfer -c 'ssh transfer@ServerB script $1 $2' 

B'deki şifreyi sormuyor; Unix çok kullanıcılı bir sistem olarak tasarlandığından su, kökten olmayan, A'nın çalıştığı yeni kullanıcının şifresini gerektirir . Bunu su transfer -c 'echo hi'görmeye çalış. Sen kullanabilirsiniz sudoseçilen kullanıcılar bu özel çalıştırmasına izin vermek için sshA, yoksa sadece bunları kullanmak için izin veren bir privatekey seçilen kullanıcılara verebilir ssherişmek için B olarak transferbir sahip .without transferkullanıcıyı bir hiç.
dave_thompson_085

Yanıtlar:


1

Uzak komutu çalıştıran bir kabuk betiği oluşturun:

% cat > /home/transfer/exec-remote-sw <<EOF
#!/bin/bash
ssh transfer@ServerB script $1 $2
EOF
% chmod 755 /home/transfer/exec-remote-sw

Bu betiği transferkullanıcı olarak çalıştırarak test edin :

% /home/transfer/exec-remote-sw  arg1  arg2

Şimdi root olarak bir Linux grubu oluşturun (örn. transfer), Sonra bu fonksiyonelliğe erişmesi gereken tüm kullanıcıları Unix grubuna ekleyin:

% groupadd transfer
% usermod -a -G transfer login1
% usermod -a -G transfer login2
...
% usermod -a -G transfer loginN

Kök olarak, aşağıdakileri /etc/sudoersçalıştırarak dosyaya ekleyin visudo:

%transfer   serverA = (transfer) NOPASSWD: /home/transfer/exec-remote-sw

Aktarma grubundaki kullanıcılardan biri olarak oturum açıp çalıştırarak test edin:

% sudo -u transfer /home/transfer/exec-remote-sw  arg1  arg2

Bunu kullanıcılarınız için basitleştirmek için, onların .profile dosyalarına aşağıdakini eklemelerini sağlayın (ya da herkes için / etc / profile ekleyin):

alias svrbexec="sudo -u transfer /home/transfer/exec-remote-sw"

Sonra kullanıcılar şunu yazabilir:

% svrbexec  arg1  arg2

ve uzak işlem, iki parametresi geçildiğinde gerçekleştirilmelidir.

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.