Ubuntu'da Kullanıcı Nasıl Değiştirilir: su, sudo ve Yetki Yükseltme
- 9 Kasım 2025
- 22:15
- Eğitimler

Giriş
Birden çok kullanıcı hesabını yönetmek ve aralarında geçiş yapmak Linux sistem yönetiminin temel bir parçasıdır. Dünyanın en yaygın Linux dağıtımı olan Ubuntu, aktif kullanıcıyı değiştirmek için her biri farklı kullanım senaryolarına ve güvenlik etkilerine sahip birkaç yöntem sunar. Bu mekanizmaları kavramak; verimli çoklu kullanıcı iş akışlarına, güvenli yönetim işlemlerine ve doğru yetki yönetimine olanak tanır.
Bu kapsamlı rehber; Ubuntu'da kullanıcı değiştirmenin tüm yöntemlerini, temel komut satırı yaklaşımlarından ileri düzey yetki yükseltme tekniklerine kadar inceler. Paylaşımlı sistemler, yönetim görevleri veya çoklu kiracı ortamları yönetiyor olun, kullanıcı geçişine hâkim olmak Ubuntu'yu güvenle kullanmanın temelidir.
Ubuntu kullanıcı yönetimini anlamak
Kullanıcı Hesap Türleri
Sıradan Kullanıcılar: Sınırlı ayrıcalıklara, kısıtlı dosya erişimine ve sistem yapılandırmasını değiştirme yetersizliğine sahip standart hesaplar.
Root Kullanıcı: Tüm sistem kaynaklarına sınırsız erişimi olan, tehlikeli olanlar dahil her işlemi yapabilen süper kullanıcı.
Sistem Kullanıcıları: Sistem hizmetleri için özel hesaplar (web sunucuları için www-data, veritabanları için mysql).
Sudo Kullanıcıları: sudo yapılandırması aracılığıyla devredilmiş süper kullanıcı ayrıcalıklarına sahip sıradan hesaplar.
Yetki Yükseltme
Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.
İlkeler: İşlemleri gereken minimum ayrıcalıklarla yürütün; yüksek erişim süresini en aza indirin; tüm ayrıcalıklı işlemleri denetleyin.
su (Switch User) komutu
Temel Sözdizimi
su [OPTIONS] [USERNAME]
Switching to Another Usersu john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).Yeni Ortam ile Kullanıcı Değiştirme
su - john
The hyphen (-) loads the complete environment of the target user, including:
-
Kullanıcının ev dizinini gösteren HOME değişkeni
-
Kullanıcının komut yollarıyla PATH değişkeni
-
Shell yapılandırma dosyaları (.bashrc, .profile)
-
Çalışma dizini kullanıcının ev dizinine değiştirildi
Best Practice: Always use su - to ensure proper environment configuration.
Root kullanıcısına geçmek
su -
Root kullanıcısına root'un tam ortamıyla geçer. Root parolasını sorar.
su Komut Seçenekleri
-c (Command): Execute single command as another user without full session
su - john -c "ls -la /home/john"-l (Login): Identical to using hyphen; creates login shell
su --login john
-s (Shell): Oturum için kabuğu belirt
su - john -s /bin/zsh
-m (Preserve environment): Keep current environment while switching
su -m johnsudo (Superuser Do) komutu
Temel Sözdizimi
sudo [OPTIONS] COMMAND
Yükseltilmiş Ayrıcalıklarla Komut Çalıştırma
sudo apt-get update # Update package lists (requires root)sudo systemctl restart ssh # Restart SSH servicesudo reboot # Reboot system
Etkileşimli Root Kabuğu Çalıştırma
sudo -i
Root olarak oturum açmadan etkileşimli root kabuğu başlatır.
Komutu Farklı Bir Kullanıcı Olarak Çalıştırma
sudo -u username commandKomutu belirtilen kullanıcının ayrıcalıklarıyla yürütür (yalnızca root değil).
sudo Komut Seçenekleri
-l (List): Display allowed commands
sudo -l
-k (Invalidate): Clear sudo credentials (requires password on next use)
sudo -k
-p (Prompt): Custom password prompt
sudo -p "Enter admin password: " apt-get update-v (Validate): Extend sudo timeoutsudo -v
-H (Home): Set HOME to target user’s home
sudo -H -u username commandsu – ile su arasındaki temel farklar
| Özellik | su | su – |
|---|---|---|
| Ortam | Üst kabuk ortamını korur | Hedef kullanıcının ortamını yükler |
| HOME Değişkeni | Orijinal kullanıcının ev dizininde kalır | Hedef kullanıcının ev dizinine geçer |
| PATH Değişkeni | Orijinal kullanıcının yollarını içerebilir | Hedef kullanıcının standart yollarını içerir |
| Shell Yapılandırması | ne .bashrc ne de .profile yüklemez | ~/.bashrc, ~/.profile yükler |
| Çalışma Dizini | Geçerli dizinde kalır | Kullanıcının ev dizinine geçer |
| Önerilen | Nadiren; karışıklık riski | Kullanıcı değiştirme için her zaman |
| Risk Düzeyi | Daha yüksek (karışık ortamlar) | Daha düşük (temiz ortam) |
Örnek Fark
# su Kullanma (BAD)
$ su johnPassword:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory# su Kullanma - (GOOD)
$ su - johnPassword:
$ echo $HOME
/home/john # Correct home directory$ pwd
/home/john # Correct directoryRoot kullanıcısına geçmek
su Kullanma
su -
Password: (enter root password)
root@hostname:~#su Kullanmado
sudo -i[sudo] password for john: (enter john's password)
root@hostname:~#su – ile sudo -i Arasındaki Farklar
| Yön | su – | sudo -i |
|---|---|---|
| Şifre Gerekli | Root parolası | Geçerli kullanıcının parolası |
| Günlükleme | Günlüklenmedi | sudo tarafından kaydedilir |
| Denetim İzi | Minimum | Tam denetim izi |
| Güvenlik | Daha düşük (root parolasının paylaşılmasını gerektirir) | Daha yüksek (bireysel hesap verebilirlik) |
| Tipik Kurumsal Kurulum | Önerilmez | Recommended |
Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.
Komutları başka bir kullanıcı olarak çalıştırmak
Tek Komut Yürüt
sudo -u apache /usr/bin/apache2ctl restartsu - testuser -c "python /home/testuser/script.py"
Birden Çok Komut Çalıştırma
sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"
Mevcut Dizini Koruyarak Komut Çalıştırma
sudo -u john pwd # Prints john's home (working directory changed)sudo -u john -C pwd # Prints current directory (with -C flag)Kullanıcı parolasını değiştirmek
Kendi Parolanı Değiştir
passwdÖnce mevcut parolayı, sonra yeni parolayı (onay için iki kez) ister.
Başka Bir Kullanıcının Parolasını Değiştir (Root Gerekir)
sudo passwd john
Mevcut parola gerekmez; yeni parolayı ister (root yetkisi).
Süresi Dolma Politikasını Ayarla
sudo chage -l john # View password aging infosudo chage -M 90 john # Force password change every 90 dayssudo chage -d 0 john # Force password change on next login
Kullanıcı izinleri ve gruplar
Kullanıcı Gruplarını Görüntüle
groups john # Show groups current user belongs togroups # Show own groupsid john # Detailed UID, GID, groupsKullanıcıyı Gruba Ekle
sudo usermod -aG groupname username
Example: Add user to sudo group
sudo usermod -aG sudo john
Kullanıcıyı Gruptan Kaldır
sudo deluser username groupname
Yeni Kullanıcı Oluştur
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Options:
-
-m: Create home directory -
-s: Specify shell -
-G: Gruplara ata
Pratik örnekler
Example 1: Administrative Task with Yetki Yükseltme
#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get updatesudo apt-get upgrade -y
echo "System update complete"
Örnek 2: Web Sunucusu Görevlerini Çalıştırma
# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/htmlÖrnek 3: Veritabanı Bakımını Çalıştırma
# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"
Örnek 4: Toplu Kullanıcı Yönetimi
#!/bin/bash# Create multiple usersfor user in user1 user2 user3; dosudo useradd -m -s /bin/bash "$user"echo "Please set password for $user:"sudo passwd "$user"done# Add all to sudo groupfor user in user1 user2 user3; dosudo usermod -aG sudo "$user"doneGüvenlik hususları
Parola Güvenliği
Root Parolası: Güvende tutun; güvenilmeyen kişilerle asla paylaşmayın
Sudo Yapılandırması: Tam root erişimi yerine belirli ayrıcalıkları devredin
Parola Yaşlandırma: Periyodik parola değişikliklerini zorunlu kılın
# Configure password agingsudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warningDenetim ve Günlükleme
All sudo commands are logged:
sudo grep COMMAND /var/log/auth.log
View detailed sudo history:
sudo journalctl _COMM=sudoRestricting Yetki Yükseltme
Configure sudoers file safely:
sudo visudo # Always use visudo for editing sudoers
Örnek sudoers yapılandırması (limiting what john can run):
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxjohn ALL=(ALL) /usr/bin/apt-getOturum Zaman Aşımı
# Set sudo timeoutsudo -v # Extend timeoutsudo -k # Invalidate sudo credentialsUzak altyapı neden kullanıcı değiştirmeyi kullanır
RDP ve SSH altyapısı sıklıkla şunları gerektirir:
-
Farklı ayrıcalık seviyelerine sahip birden çok yönetici kullanıcı
-
Otomatik süreçler için hizmet hesapları
-
Uyumluluk için denetim izleri (sudo günlükleme)
-
Yönetim görevleri için ayrıcalık yükseltme
RDP.Monster Aracılığıyla Altyapı Yönetimi
Managing Ubuntu systems remotely requires robust, secure access:
Komut Yürütme için SSH Erişimi
-
Kullanıcı değiştirme komutlarını uzaktan yürütme
-
Komut dosyaları aracılığıyla otomatik yönetim
-
Kullanıcı yönetimi üzerinde tam kontrol
Çoklu Kullanıcı Hesabı Desteği
-
Yönetici kullanıcılar oluştur
-
Ayrıcalıkları uygun şekilde devret
-
Denetim izlerini koru
Güvenli Uzaktan Yönetim
-
Tüm kullanıcı değiştirme işlemleri için SSH şifrelemesi
-
Programatik erişim için anahtar tabanlı kimlik doğrulama
-
Kapsamlı günlükleme ve izleme
RDP.Monster aracılığıyla güvenli kullanıcı yönetimi yetenekleriyle Ubuntu VPS altyapısı dağıtın
Sonuç
Kullanıcı değiştirme ve ayrıcalık yükseltme, temel Ubuntu yönetim becerileridir. su, sudo ve parola yönetimi arasındaki farkları anlamak, uygun ayrıcalık devri ve denetim izleri yoluyla güvenliği korurken etkili çok kullanıcılı sistem yönetimi sağlar.
Modern Ubuntu en iyi uygulamaları, ayrıcalık yükseltme için su yerine sudo'yu güçlü bir şekilde tercih eder; hesap verebilirlik ve kapsamlı günlüklemeyi mümkün kılarken root parolasının paylaşımını en aza indirir. Belirli ayrıcalıkları devreden uygun sudoers yapılandırması, kullanılabilirlik ve erişim arasında mükemmel bir güvenlik dengesi sağlar control.
Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.
Güçlü Ubuntu VPS barındırma
Linux VPS'lerimizle tam kontrolün ve şimşek hızında performansın tadını çıkarın. Uygulama barındırmak, sunucu yönetmek ve iş akışınızı optimize etmek için mükemmeldir.
Yüksek performanslı dedicated sunucular
Maksimum kontrol ve güç mü gerekiyor? Dedicated sunucularımız zorlu görevler için eşsiz performans sunar.
Sıkça sorulan sorular
su mu sudo mu kullanmalıyım?
Hesap verebilirliği sağlar, bireysel parola gerektirir ve eksiksiz denetim izleri sunar.
su komutum neden çalışmıyor?
Try sudo -u username instead if you have sudo privileges.
Parolasız kullanıcı değiştirebilir miyim?
su için hedef kullanıcının parolası her zaman gereklidir.
su - ile su --login arasındaki fark nedir?
sudo yetkisi ne kadar süre devam eder?
Başka bir kullanıcı olarak birden fazla komut çalıştırabilir miyim?
sudo yetkilerimi nasıl görebilirim?
Kullanıcı değiştirince PATH'im neden değişiyor?
İlgili yazılar




