Kullanıcı Kimliğinin Belirtilmesi
Önceki XXIX. Oylum - Kullanıcılar ve Gruplar Sonraki
Kullanıcı Kimliğinin Belirtilmesi
Bu kısımda bir sürecin gerçek ve/veya etkin kullanıcı kimliklerini değiştiren işlevlere yer verilmiştir. Bu oluşumları kullanabilmek için sys/types.h ve unistd.h başlık dosyalarını yazılımınıza dahil etmeniz gerekir.
int seteuid
(uid_t etkinkullkim)
işlev
Bu işlev bir sürecin etkin kullanıcı kimliğini, sürecin etkin kullanıcı kimliğini etkinkullkim olarak değiştirmesi mümkünse, etkinkullkim ile belirtilen kimliğe ayarlar. Bir ayrıcalıklı süreç (etkin kullanıcı kimliği sıfır olan süreç) kendi etkin kullanıcı kimliğini herhangi bir kullanıcı kimliği ile değiştirebilir. Bir ayrıcalıksız süreç ise kendi etkin kullanıcı kimliğini sadece kendi gerçek kullanıcı kimliğine ya da dosya kullanıcı kimliğine değiştirebilir. Aksi takdirde, sürecin etkin kullanıcı kimliği değişmeyecektir.
seteuid işlevi, kimliği değiştirebilmişse 0 ile döner. -1 dönüş değeri bir hata oluştuğunu gösterir. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EINVAL
etkinkullkim argümanının değeri geçersiz
EPERM
Süreç aidiyetini belirtilen kimlikle değiştiremez
_POSIX_SAVED_IDS özelliği olmayan eski sistemlerde bu işlev yoktur.
int setuid
(uid_t kullkim)
işlev
Bu işlevi çağıran sürecin yetkisi varsa, sürecin gerçek ve etkin kullanıcı kimliği kullkim yapılır. İşlev ayrıca sürecin dosya kullanıcı kimliğini varsa siler. kullkim sistemde geçerli herhangi bir kullanıcı kimliği olabilir. (İşlev eski etkin kullanıcı kimliği döndürmez, dolayısıyla bir kere değiştikten sonra tekrar eski etkin kullanıcı kimliğe dönmenin bir yolu yoktur.)
Süreç istenen işlemi yapmaya yetkili değilse ve sistemde _POSIX_SAVED_IDS özelliği yoksa bu işlev seteuid gibi davranır.
İşlevin dönüş değerleri ve hata durumları seteuid ile aynıdır.
int setreuid
(uid_t gerçekkullkim,
 uid_t etkinkullkim)
işlev
Bu işlev sürecin gerçek kullanıcı kimliğini gerçekkullkim ve etkin kullanıcı kimliğini etkinkullkim yapar. Eğer gerçekkullkim değeri -1 ise bu, gerçek kullanıcı kimliğin değiştirilmeyeceği anlamına gelir. Benzer şekilde etkinkullkim değeri -1 ise etkin kullanıcı kimliği değiştirilmez.
setreuid işlevi 4.3 BSD Unix ile uyumluluk adına vardır. Bu işlevi sürecin etkin ve gerçek kullanıcı kimliklerini takaslamak için kullanabilirsiniz. (Ayrıcalıklı süreçler için böyle bir sınırlama yoktur.) Dosya kimlikleri destekleniyorsa, bu işlev bunun için kullanılmaz. Bkz. Setuid Erişiminin Etkinleştirilmesi ve İptali.
İşlev başarılı ise 0 değilse -1 döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EPERM
Sürecin yetkileri işlem için yetersiz; belirtilen kimliğe geçiş için yetkili değilsiniz.
Önceki Üst Ana Başlık Sonraki
Bir Sürecin Aidiyetinin Okunması Başlangıç Grup Kimliğinin Belirtilmesi
Bir Linux Kitaplığı Sayfası