15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Kodu kullanın:

Skills
Başlayın
02.01.2026

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.
  • 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)

su - username
  • – (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:

su -

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)

sudo -i

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:

sudo -iu username

Başka bir kullanıcı olarak tek bir komut çalıştırın (etkileşimli olmayan)

sudo -u

sudo -u username whoami
sudo -u postgres psql

Temiz bir giriş benzeri ortamda çalıştırın:

sudo -iu username

Root olarak bir komut çalıştırın

sudo systemctl restart nginx

Ç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:

ps -eo user,pid,cmd | grep nginx

Veya:

ps -p <PID> -o user,group,cmd

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:

systemctl cat myservice.service

Şunları arayın:

  • User=

  • Group=

Örnek geçersiz kılma (güvenli yöntem):

sudo systemctl edit myservice.service

Ekleyin:

[Service]
User=myuser
Group=mygroup

Uygulayın:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Doğrulayın:

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Dosya sahipliğini değiştirin (dosyalar için “kullanıcı” değiştirme)

chown (sahip değişikliği)

Sahibi değiştirin:

sudo chown username file.txt

Sahibi ve grubu değiştirin:

sudo chown username:groupname file.txt

Recursive (dikkatli olun):

sudo chown -R username:groupname /var/www/site

Sembolik bağlantıları koruyun (bağlantı hedeflerini değiştirmekten kaçının):

sudo chown -h username:group symlink

İleri düzey ipucu: Büyük ağaçlar için, önce önizleme yapın:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Mevcut shell kimliğinizi değiştirme ile hesabı değiştirme

Kim olduğunuzu doğrulayın

whoami
id

Kimlerin oturum açtığını doğrulayın

who
w

Mevcut shell’i sudo ile hangi kullanıcının çalıştırdığını görün

echo $USER
echo $SUDO_USER

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ı)

sudo usermod -l newname oldname

Ayrıca ana dizini taşıyın/yeniden adlandırın:

sudo usermod -d /home/newname -m newname

Grup adını da güncelleyin (isteğe bağlı):

sudo groupmod -n newname oldname

UID’yi değiştirin

sudo usermod -u 2001 username

UID’yi değiştirdikten sonra, dosya sahipliğini düzeltin:

sudo find / -user oldUID -exec chown -h username {} ;

Bir kullanıcıyı bir gruba ekleyin (örneğin, sudo)

sudo usermod -aG
sudo username # Debian/Ubuntu
sudo usermod -aG wheel username # RHEL/Alma/Rocky

Doğrulayın:

id username

Hızlı “not defteri”

Kullanıcıyı değiştirin:

su - user
sudo -iu user

Başka bir kullanıcı olarak komut çalıştırın:

sudo -u user command

Root shell’i çalıştırın:

sudo -i

Dosya sahibini değiştirin:

sudo chown -R user:group /path

Hesap detaylarını değiştirin:

sudo usermod -l new old
sudo usermod -d /home/new -m new
sudo usermod -aG
sudo user
15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Kodu kullanın:

Skills
Başlayın