Linux’te kullanıcı nasıl değiştirilir?
Linux’te “kullanıcı değiştir” ifadesi, bazıları geçici ve oturum bazlı, diğerleri kalıcı ve sistem genelinde olmak üzere birkaç farklı eylemi tanımlayabilir. Linux, tasarımı gereği çok kullanıcılı bir işletim sistemi olduğundan, neyi başarmaya çalıştığınıza bağlı olarak kimlikleri ve izinleri değiştirmek için birden fazla yol sunar: bir sunucuyu yönetmek, sınırlı haklarla bir uygulama çalıştırmak, dosya erişim sorunlarını düzeltmek veya kullanıcı hesaplarını yeniden yapılandırmak.
Linux’ta “kullanıcı”yı değiştirmek, bağlama bağlı olarak birkaç farklı anlama gelebilir:
- Shell’de başka bir hesaba geçiş yapmak (örneğin, john’dan root’a)
Bu, başka bir kullanıcı olarak etkileşimli bir terminal oturumu gerektiğinde kullanılır—genellikle sistem yönetimi için veya bir şeyin farklı bir hesap ortamında nasıl davrandığını test etmek için. - Tek bir komutu başka bir kullanıcı olarak çalıştırmak
Tam oturumunuzu değiştirmeden yalnızca bir görev (bir hizmeti yeniden başlatmak veya bir veritabanı komutu çalıştırmak gibi) için yükseltilmiş ayrıcalıklara veya farklı bir kimliğe ihtiyaç duyduğunuzda idealdir.
- Shell’de başka bir hesaba geçiş yapmak (örneğin, john’dan root’a)
- Bir hizmet/proses için varsayılan giriş kullanıcısını değiştirmek
Hizmetler (web sunucuları, veritabanları, uygulamalar) genellikle güvenlik için özel, kök olmayan kullanıcılar altında çalışmalıdır. Hizmet kullanıcısını değiştirmek, işlemin nasıl çalıştığını ve neye erişebileceğini etkiler. - Dosya ve dizinlerin sahipliğini değiştirmek
Dosya sahipliği erişimi kontrol eder. İzinler yanlışsa—göçler, geri yüklemeler veya dağıtımlar sonrasında yaygındır—”kullanıcıyı değiştirirsiniz” ve sahipliği yeniden atayarak doğru hesabın dosyaları okuma/yazma yapabilmesini sağlarsınız. - Kullanıcı kimliği özelliklerini değiştirmek (kullanıcı adı, UID, gruplar)
Bu hesap yönetimidir: bir kullanıcıyı yeniden adlandırmak, UID’sini değiştirmek veya grup üyeliğini ayarlamak (örneğin, sudo erişimi vermek). Bu değişiklikler girişleri, izinleri ve hizmet erişimini etkileyebilir.
Bu kılavuz tüm bu senaryoları kapsar, her yaklaşımı ne zaman kullanacağınızı, bunu güvenli bir şekilde nasıl yapacağınızı ve hangi hatalardan kaçınmanız gerektiğini gösterir—böylece izinleri, hizmetleri veya erişimi bozmadan kullanıcıları güvenle değiştirebilirsiniz.
Başka bir kullanıcıya geçiş yapın (etkileşimli shell)
su (kullanıcı değiştir)
– (veya -l) hedef kullanıcının tam giriş ortamını yükler: ana dizin, PATH, shell profili.
– olmadan, mevcut ortamınızın çoğunu korursunuz (bu kafa karıştırıcı olabilir).
Root’a geçiş yapın:
Güvenlik notu: Birçok dağıtımda, su hedef kullanıcının şifresini (örneğin, root şifresi) gerektirir, bu genellikle devre dışı bırakılmıştır.
sudo -i (root/admin shell’leri için tercih edilir)
Size bir root giriş shell’i verir (su – ile benzer), sudo haklarınızı kullanarak root şifresi yerine.
Giriş shell’i ile başka bir kullanıcıya geçiş yapın:
Başka bir kullanıcı olarak tek bir komut çalıştırın (etkileşimli olmayan)
sudo -u
Temiz bir giriş benzeri ortamda çalıştırın:
Root olarak bir komut çalıştırın
Çalışan bir sürecin “etkili kullanıcısını” değiştirin (gelişmiş gerçeklik)
Linux, çoğu pratik senaryoda zaten çalışan bir sürecin “kullanıcısını değiştirmeye” izin vermez. Bunun yerine, genellikle:
süreci doğru kullanıcı altında yeniden başlatırsınız
veya kullanıcıyı tanımlamak için hizmet yöneticilerini (systemd) kullanırsınız
Bir sürecin hangi kullanıcı tarafından çalıştırıldığını kontrol etmek için:
Veya:
Bir hizmetin hangi kullanıcı olarak çalıştığını değiştirin (systemd)
Çoğu üretim Linux’u systemd kullanır. Hizmetler, özel, ayrıcalıksız kullanıcılar olarak çalışmalıdır.
Hizmet yapılandırmasını kontrol edin:
Şunları arayın:
User=Group=
Örnek geçersiz kılma (güvenli yöntem):
Ekle:
Uygula:
Doğrula:
Dosya sahipliğini değiştirin (dosyalar için “kullanıcı”yı değiştirme)
chown (sahip değişikliği)
Sahibi değiştirin:
Sahibi ve grubu değiştirin:
Rekürsif (dikkatli olun):
Sembolik bağlantıları koruyun (bağlantı hedeflerini değiştirmekten kaçının):
Gelişmiş ipucu: Büyük ağaçlar için önce önizleme yapın:
Mevcut shell kimliğinizi değiştirme ile hesabı değiştirme
Kimsiniz olduğunu doğrulayın
Kimlerin giriş yaptığını doğrulayın
Mevcut shell’i sudo ile hangi kullanıcının çalıştırdığını görün
Kullanıcı adını, UID’yi, grupları değiştirin (hesap değişikliği)
Bir kullanıcıyı yeniden adlandırın (kullanıcı adı)
Aynı zamanda ana dizini taşıyın/yeniden adlandırın:
Grup adını da güncelleyin (isteğe bağlı):
UID’yi değiştirin (gelişmiş; dosya sahipliğini etkiler)
UID’yi değiştirdikten sonra dosya sahipliğini düzeltin:
Bir kullanıcıyı bir gruba ekleyin (örneğin, sudo)
Doğrula:
Hızlı “not defteri”
Kullanıcı değiştir:
Başka bir kullanıcı olarak komut çalıştır:
Root shell çalıştır:
Dosya sahibini değiştir:
Hesap bilgilerini değiştir:
