Linux’te kullanıcı nasıl değiştirilir?
Linux’te “kullanıcı değiştir” ifadesi, bazı geçici ve oturum tabanlı, diğerleri ise 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ı gidermek 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 veya farklı bir hesap ortamında bir şeyin nasıl davrandığını test etmek için. - Tek bir komutu başka bir kullanıcı olarak çalıştırmak
Bu, tam oturumunuzu değiştirmeden yalnızca bir görev (örneğin, bir hizmeti yeniden başlatmak veya bir veritabanı komutu çalıştırmak) 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, sürecin nasıl çalıştığını ve neye erişebileceğini etkiler. - Dosyaların ve dizinlerin sahipliğini değiştirmek
Dosya sahipliği erişimi kontrol eder. İzinler yanlışsa – taşımalar, geri yüklemeler veya dağıtımlar sonrasında yaygındır – doğru hesabın dosyaları okuyup/yazabilmesi için sahipliği yeniden atayarak “kullanıcıyı değiştirirsiniz”. - Kullanıcı kimliği niteliklerini değiştirmek (kullanıcı adı, UID, gruplar)
Bu, bir kullanıcıyı yeniden adlandırmak, UID’sini değiştirmek veya grup üyeliğini ayarlamak (örneğin, sudo erişimi vermek) gibi hesap yönetimidir. Bu değişiklikler oturum açma, izinler ve hizmet erişimini etkileyebilir.
Bu kılavuz tüm bu senaryoları kapsar, her yaklaşımın ne zaman kullanılacağını, nasıl güvenli bir şekilde yapılacağını ve hangi hatalardan kaçınılması 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 (karışık olabilir).
Root’a geçiş yapın:
Güvenlik notu: Birçok dağıtımda, su hedef kullanıcının parolasını gerektirir (örneğin, root parolası), bu genellikle devre dışı bırakılmıştır.
sudo -i (root/admin shell’leri için tercih edilen)
Size bir root giriş shell’i verir (su – ile benzer), sudo haklarınızı kullanarak root parolası 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 (ileri düzey 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:
doğru kullanıcı altında süreci 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ı incelemek için:
Veya:
Bir hizmetin hangi kullanıcı olarak çalıştığını değiştirin (systemd)
Çoğu üretim Linux, 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):
Ekleyin:
Uygulayın:
Doğrulayın:
Dosya sahipliğini değiştirin (dosyalar için “kullanıcı” değiştirme)
chown (sahip değişikliği)
Sahibi değiştirin:
Sahibi ve grubu değiştirin:
Recursive (dikkatli olun):
Sembolik bağlantıları koruyun (bağlantı hedeflerini değiştirmekten kaçının):
İleri düzey 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
Kim olduğunuzu doğrulayın
Kimlerin oturum açtığı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ı)
Ayrıca ana dizini taşıyın/yeniden adlandırın:
Grup adını da güncelleyin (isteğe bağlı):
UID’yi değiştirin
UID’yi değiştirdikten sonra, dosya sahipliğini düzeltin:
Bir kullanıcıyı bir gruba ekleyin (örneğin, sudo)
Doğrulayın:
Hızlı “not defteri”
Kullanıcıyı değiştirin:
Başka bir kullanıcı olarak komut çalıştırın:
Root shell’i çalıştırın:
Dosya sahibini değiştirin:
Hesap detaylarını değiştirin:
